X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=secnet.git;a=blobdiff_plain;f=site.c;h=d360699214bdd5b54bffa8738193ce06099b9a5d;hp=ecb45bf150b58bf10b15aa9ef08b59eb3e3b90bf;hb=2093fb5ca832669236d9e4e8b6475a14b96b3d2a;hpb=0f27325c8c760ab048600e36320551d1f4f22c97 diff --git a/site.c b/site.c index ecb45bf..d360699 100644 --- a/site.c +++ b/site.c @@ -40,7 +40,6 @@ #define DEFAULT_MOBILE_WAIT_TIME (10*1000) /* [ms] */ #define DEFAULT_MOBILE_PEER_EXPIRY (2*60) /* [s] */ -#define DEFAULT_PEERS_MAX 3 /* send at most this many copies (default) */ /* Each site can be in one of several possible states. */ @@ -144,9 +143,6 @@ static struct flagstr log_event_table[]={ /* Details of "mobile peer" semantics: - | Note: this comment is wishful thinking right now. It will be - | implemented in subsequent commits. - - We use the same data structure for the different configurations, but manage it with different algorithms. @@ -1968,7 +1964,7 @@ static list_t *site_apply(closure_t *self, struct cloc loc, dict_t *context, const char *peerskey= st->peer_mobile ? "mobile-peers-max" : "static-peers-max"; st->transport_peers_max= dict_read_number( - dict,peerskey,False,"site",loc,DEFAULT_PEERS_MAX); + dict,peerskey,False,"site",loc, st->address ? 4 : 3); if (st->transport_peers_max<1 || st->transport_peers_max>MAX_PEER_ADDRS) { cfgfatal(loc,"site", "%s must be in range 1.." @@ -2092,11 +2088,6 @@ static void transport_peers_debug(struct site *st, transport_peers *dst, } } -static bool_t transport_addrs_equal(const struct comm_addr *a, - const struct comm_addr *b) { - return !memcmp(a,b,sizeof(*a)); -} - static void transport_peers_expire(struct site *st, transport_peers *peers) { /* peers must be sorted first */ int previous_peers=peers->npeers; @@ -2120,7 +2111,7 @@ static bool_t transport_peer_record_one(struct site *st, transport_peers *peers, return 0; for (search=0; searchnpeers; search++) - if (transport_addrs_equal(&peers->peers[search].addr, ca)) + if (comm_addr_equal(&peers->peers[search].addr, ca)) return 1; peers->peers[peers->npeers].addr = *ca; @@ -2139,7 +2130,7 @@ static void transport_record_peers(struct site *st, transport_peers *peers, * Caller must first call transport_peers_expire. */ if (naddrs==1 && peers->npeers>=1 && - transport_addrs_equal(&addrs[0], &peers->peers[0].addr)) { + comm_addr_equal(&addrs[0], &peers->peers[0].addr)) { /* optimisation, also avoids debug for trivial updates */ peers->peers[0].last = *tv_now; return;