Handle UDP packets from different and ports than advertised.
authorGuus Sliepen <guus@sliepen.eu.org>
Thu, 2 Apr 2009 23:05:23 +0000 (01:05 +0200)
committerGuus Sliepen <guus@sliepen.eu.org>
Thu, 2 Apr 2009 23:05:23 +0000 (01:05 +0200)
commit3308d13e7e3bf20cfeaf6f2ab17228a9820cea66
tree60f6c97476a1e01e03ae370c1655d962bbc92080
parent43fa7283ac01f2ecc95381b519ef6b3342546f35
Handle UDP packets from different and ports than advertised.

Previously, tinc used a fixed address and port for each node for UDP packet
exchange.  The port was the one advertised by that node as its listening port.
However, due to NAT the port might be different.  Now, tinc sends a different
session key to each node. This way, the sending node can be determined from
incoming packets by checking the MAC against all session keys. If a match is
found, the address and port for that node are updated.
src/graph.c
src/net.c
src/net_packet.c
src/net_setup.c
src/netutl.c
src/node.c
src/node.h
src/protocol.h
src/protocol_key.c