From bc87b450034382858822b918f43bdf31ad8e6995 Mon Sep 17 00:00:00 2001 From: Guus Sliepen Date: Sat, 18 May 2013 16:11:30 +0200 Subject: [PATCH] Send a new key when we receive packets from a node we don't have a valid key for. --- src/net_packet.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/net_packet.c b/src/net_packet.c index 9024f262..26e49071 100644 --- a/src/net_packet.c +++ b/src/net_packet.c @@ -332,13 +332,21 @@ static void receive_udppacket(node_t *n, vpn_packet_t *inpkt) { size_t outlen; if(n->status.sptps) { + if(!n->sptps.state) { + if(!n->status.waitingforkey) { + logger(DEBUG_TRAFFIC, LOG_DEBUG, "Got packet from %s (%s) but we haven't exchanged keys yet", n->name, n->hostname); + send_req_key(n); + } else { + logger(DEBUG_TRAFFIC, LOG_DEBUG, "Got packet from %s (%s) but he hasn't got our key yet", n->name, n->hostname); + } + return; + } sptps_receive_data(&n->sptps, (char *)&inpkt->seqno, inpkt->len); return; } if(!cipher_active(n->incipher)) { - logger(DEBUG_TRAFFIC, LOG_DEBUG, "Got packet from %s (%s) but he hasn't got our key yet", - n->name, n->hostname); + logger(DEBUG_TRAFFIC, LOG_DEBUG, "Got packet from %s (%s) but he hasn't got our key yet", n->name, n->hostname); return; } -- 2.20.1