It appears that supernode_disconnect() might only be called in the original code in the TCP case, so add that test - even though the function appear to work in either caes

This commit is contained in:
Hamish Coleman 2022-05-19 23:11:36 +01:00
parent 9e98023a3f
commit 24c1569c88

View File

@ -1063,9 +1063,19 @@ static ssize_t sendto_fd (n2n_edge_t *eee, const void *buf,
* if the sendto had an error
*/
err_out:
if(eee->conf.connect_tcp) {
supernode_disconnect(eee);
eee->sn_wait = 1;
traceEvent(TRACE_DEBUG, "error in sendto_fd");
}
/*
* If we got an error and are using UDP, this is still an error
* case. The only caller of sendto_fd() checks the return only
* in the TCP case.
*
* Thus, we can safely return an error code for any error.
*/
return -1;
}