From: Guus Sliepen Date: Sat, 18 May 2013 14:11:30 +0000 (+0200) Subject: Send a new key when we receive packets from a node we don't have a valid key for. X-Git-Tag: import-tinc-1.1~144 X-Git-Url: https://git.meshlink.io/?a=commitdiff_plain;h=bc87b450034382858822b918f43bdf31ad8e6995;p=meshlink Send a new key when we receive packets from a node we don't have a valid key for. --- 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; }