Don't send KEY_CHANGED messages if we don't support the legacy protocol.

KEY_CHANGED messages are only useful to invalidate keys for non-SPTPS nodes;
SPTPS nodes use a different internal mechanism (forced KEX) for that purpose.
Therefore, if we know we can't talk to legacy nodes, there's no point in
sending them these messages.
This commit is contained in:
Etienne Dechamps 2015-05-17 19:23:12 +01:00
parent 30e839b0a1
commit 2cb216d83d

View file

@ -36,6 +36,7 @@
static bool mykeyused = false; static bool mykeyused = false;
void send_key_changed(void) { void send_key_changed(void) {
#ifndef DISABLE_LEGACY
send_request(everyone, "%d %x %s", KEY_CHANGED, rand(), myself->name); send_request(everyone, "%d %x %s", KEY_CHANGED, rand(), myself->name);
/* Immediately send new keys to directly connected nodes to keep UDP mappings alive */ /* Immediately send new keys to directly connected nodes to keep UDP mappings alive */
@ -43,6 +44,7 @@ void send_key_changed(void) {
for list_each(connection_t, c, connection_list) for list_each(connection_t, c, connection_list)
if(c->edge && c->node && c->node->status.reachable && !c->node->status.sptps) if(c->edge && c->node && c->node->status.reachable && !c->node->status.sptps)
send_ans_key(c->node); send_ans_key(c->node);
#endif
/* Force key exchange for connections using SPTPS */ /* Force key exchange for connections using SPTPS */