Browse Source

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

pull/1078/head
Hamish Coleman 3 years ago
parent
commit
24c1569c88
  1. 16
      src/edge_utils.c

16
src/edge_utils.c

@ -1063,9 +1063,19 @@ static ssize_t sendto_fd (n2n_edge_t *eee, const void *buf,
* if the sendto had an error * if the sendto had an error
*/ */
err_out: err_out:
supernode_disconnect(eee); if(eee->conf.connect_tcp) {
eee->sn_wait = 1; supernode_disconnect(eee);
traceEvent(TRACE_DEBUG, "error in sendto_fd"); 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; return -1;
} }

Loading…
Cancel
Save