chiark / gitweb /
logging: Move "starting" message earlier
[secnet.git] / site.c
diff --git a/site.c b/site.c
index 72cee24fc8d094d791a5ed8dab4b17ae71224671..a0715000285f5f65e4dd7a617726f2dcfe79922b 100644 (file)
--- a/site.c
+++ b/site.c
@@ -257,6 +257,7 @@ typedef struct {
 } transport_peers;
 
 /* Basic operations on transport peer address sets */
+static void transport_peers_init(struct site *st, transport_peers *peers);
 static void transport_peers_clear(struct site *st, transport_peers *peers);
 static int transport_peers_valid(transport_peers *peers);
 static void transport_peers_copy(struct site *st, transport_peers *dst,
@@ -2282,11 +2283,10 @@ static bool_t site_incoming(void *sst, struct buffer_if *buf,
     return False;
 }
 
-static void site_control(void *vst, bool_t run)
+static void site_startup(void *vst)
 {
     struct site *st=vst;
-    if (run) enter_state_run(st);
-    else enter_state_stop(st);
+    enter_state_run(st);
 }
 
 static void site_phase_hook(void *sst, uint32_t newphase)
@@ -2330,7 +2330,7 @@ static list_t *site_apply(closure_t *self, struct cloc loc, dict_t *context,
     st->cl.apply=NULL;
     st->cl.interface=&st->ops;
     st->ops.st=st;
-    st->ops.control=site_control;
+    st->ops.startup=site_startup;
     st->ops.status=site_status;
     st->peerkeys_path=0;
     st->peerkeys_tmpl.buffer=0;
@@ -2512,8 +2512,8 @@ static list_t *site_apply(closure_t *self, struct cloc loc, dict_t *context,
     st->chosen_transform=0;
     st->current.key_timeout=0;
     st->auxiliary_key.key_timeout=0;
-    transport_peers_clear(st,&st->peers);
-    transport_peers_clear(st,&st->setup_peers);
+    transport_peers_init(st,&st->peers);
+    transport_peers_init(st,&st->setup_peers);
     /* XXX mlock these */
     st->dhsecret=safe_malloc(st->dh->len,"site:dhsecret");
     st->sharedsecretlen=st->sharedsecretallocd=0;
@@ -2729,9 +2729,14 @@ static void transport_data_msgok(struct site *st, const struct comm_addr *a) {
 static int transport_peers_valid(transport_peers *peers) {
     return peers->npeers;
 }
+static void transport_peers_init(struct site *st, transport_peers *peers) {
+    peers->npeers= 0;
+}
 static void transport_peers_clear(struct site *st, transport_peers *peers) {
+    bool_t need_debug=!!peers->npeers;
     peers->npeers= 0;
-    transport_peers_debug(st,peers,"clear",0,0,0);
+    if (need_debug)
+       transport_peers_debug(st,peers,"clear",0,0,0);
 }
 static void transport_peers_copy(struct site *st, transport_peers *dst,
                                 const transport_peers *src) {