Fix UDP/MTU discovery in intermediate SPTPS UDP relays.
authorEtienne Dechamps <etienne@edechamps.fr>
Sun, 8 Mar 2015 14:32:01 +0000 (14:32 +0000)
committerEtienne Dechamps <etienne@edechamps.fr>
Sun, 8 Mar 2015 14:40:27 +0000 (14:40 +0000)
commitc23e50385d9de538af676706596f6508b2ceb01a
tree854dbc1763f966deb166788b73e81f91740cd053
parent0f8e2cc78cafe47a087d3fc9b480551b841aeb30
Fix UDP/MTU discovery in intermediate SPTPS UDP relays.

Refactoring commit 81578484dc74fd92f1b01f71f882016f120ab1de seems to
have introduced a regression as it moved discovery code away from
send_sptps_data_priv() and within send_packet(). The issue is,
send_packet() is not called when the node is simply relaying an UDP
SPTPS packet: indeed, send_sptps_data_priv() is called directly from
handle_incoming_vpn_data() in that case.

As a result, try_tx_sptps() is not called in the relaying case, which in
practice means that a relay doesn't initiate UDP/MTU discovery with the
next relay (unless some other activity compels it to do so). This can
result in packets getting sent over TCP instead of UDP from the relay.
src/net_packet.c