X-Git-Url: https://git.distorted.org.uk/~mdw/secnet/blobdiff_plain/f7a8623441a2c8076b24c2bde941b70b2b7330c9..refs/heads/master:/site.c diff --git a/site.c b/site.c index 6b09588..d0dd909 100644 --- a/site.c +++ b/site.c @@ -536,7 +536,13 @@ struct msg { }; static int32_t wait_timeout(struct site *st) { - return st->wait_timeout_mean; + int32_t t = st->wait_timeout_mean; + int8_t factor; + if (t < INT_MAX/2) { + st->random->generate(st->random->st,sizeof(factor),&factor); + t += (t / 256) * factor; + } + return t; } static _Bool set_new_transform(struct site *st, char *pk) @@ -761,7 +767,7 @@ static bool_t check_msg(struct site *st, uint32_t type, struct msg *m, return False; } if (type==LABEL_MSG2) return True; - if (!consttime_memeq(m->nR,st->remoteN,NONCELEN)!=0) { + if (!consttime_memeq(m->nR,st->remoteN,NONCELEN)) { *error="wrong remotely-generated nonce"; return False; } @@ -1470,7 +1476,8 @@ static void set_link_quality(struct site *st) static void enter_state_run(struct site *st) { - slog(st,LOG_STATE,"entering state RUN"); + slog(st,LOG_STATE,"entering state RUN%s", + current_valid(st) ? " (keyed)" : " (unkeyed)"); st->state=SITE_RUN; st->timeout=0; @@ -1774,8 +1781,8 @@ static bool_t named_for_us(struct site *st, const struct buffer_if *buf_in, } static bool_t we_have_priority(struct site *st, const struct msg *m) { - if ((st->local_capabilities & m->remote_capabilities) - && CAPAB_PRIORITY_MOBILE) { + if (st->local_capabilities & m->remote_capabilities & + CAPAB_PRIORITY_MOBILE) { if (st->local_mobile) return True; if (st-> peer_mobile) return False; }