chiark / gitweb /
credits: Make debian/copyright be a symlink
[secnet.git] / site.c
diff --git a/site.c b/site.c
index 191c36463da7cf7bd1d6186a1a1f51ebb0484877..89837964b757ec5b7759fbfbfeec213c4a2df0f0 100644 (file)
--- a/site.c
+++ b/site.c
@@ -2344,6 +2344,9 @@ static list_t *site_apply(closure_t *self, struct cloc loc, dict_t *context,
     st->peerkeys_tmpl.buffer=0;
     st->peerkeys_current=st->peerkeys_kex=0;
 
+    buffer_new(&st->scratch,SETUP_BUFFER_LEN);
+    BUF_ALLOC(&st->scratch,"site:scratch");
+
     /* First parameter must be a dict */
     item=list_elem(args,0);
     if (!item || item->type!=t_dict)
@@ -2408,7 +2411,7 @@ static list_t *site_apply(closure_t *self, struct cloc loc, dict_t *context,
            cfgfatal(loc,"site","%s is not a closure\n",dictkey);       \
        closure_t *cl=item->data.closure;                               \
        if (cl->type!=CL_TYPE)                                          \
-           cfgfatal(loc,"site","%s closure wrong type\n",dictkey);     \
+           cfgfatal_cl_type(loc,"site",cl,CL_TYPE,dictkey);            \
        st->things[i]=cl->interface;                                    \
     }                                                                  \
 }while(0)
@@ -2508,9 +2511,6 @@ static list_t *site_apply(closure_t *self, struct cloc loc, dict_t *context,
 
     buffer_new(&st->buffer,SETUP_BUFFER_LEN);
 
-    buffer_new(&st->scratch,SETUP_BUFFER_LEN);
-    BUF_ALLOC(&st->scratch,"site:scratch");
-
     /* We are interested in poll(), but only for timeouts. We don't have
        any fds of our own. */
     register_for_poll(st, site_beforepoll, site_afterpoll, "site");