~mdw
/
secnet
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
secnet-wireshark.lua: Add a Wireshark dissector.
[secnet]
/
site.c
diff --git
a/site.c
b/site.c
index
6b09588
..
d0dd909
100644
(file)
--- a/
site.c
+++ b/
site.c
@@
-536,7
+536,13
@@
struct msg {
};
static int32_t wait_timeout(struct site *st) {
};
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)
}
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;
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;
}
*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)
{
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;
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) {
}
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;
}
if (st->local_mobile) return True;
if (st-> peer_mobile) return False;
}