Don't send KEY_CHANGED messages if we don't support the legacy protocol.
authorEtienne Dechamps <etienne@edechamps.fr>
Sun, 17 May 2015 18:23:12 +0000 (19:23 +0100)
committerEtienne Dechamps <etienne@edechamps.fr>
Sun, 17 May 2015 18:27:20 +0000 (19:27 +0100)
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.

src/protocol_key.c

index c183ac45cf77bb457440a01df6a71d5f9a5d528c..6721aa44463e90aeb44396a6a9e8d204b3c32ef3 100644 (file)
@@ -36,6 +36,7 @@
 static bool mykeyused = false;
 
 void send_key_changed(void) {
+#ifndef DISABLE_LEGACY
        send_request(everyone, "%d %x %s", KEY_CHANGED, rand(), myself->name);
 
        /* 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)
                if(c->edge && c->node && c->node->status.reachable && !c->node->status.sptps)
                        send_ans_key(c->node);
+#endif
 
        /* Force key exchange for connections using SPTPS */