diff --git a/src/apps/relay/ns_ioalib_engine_impl.c b/src/apps/relay/ns_ioalib_engine_impl.c index 989074f..1a12dbb 100644 --- a/src/apps/relay/ns_ioalib_engine_impl.c +++ b/src/apps/relay/ns_ioalib_engine_impl.c @@ -1826,9 +1826,10 @@ ioa_addr* get_local_addr_from_ioa_socket(ioa_socket_handle s) { if (s && (s->magic == SOCKET_MAGIC) && !(s->done)) { - if(s->parent_s) { - return get_local_addr_from_ioa_socket(s->parent_s); - } else if (s->local_addr_known) { + if(s->parent_s) + s = s->parent_s; + + if (s->local_addr_known) { return &(s->local_addr); } else if (s->bound && (addr_get_port(&(s->local_addr)) > 0)) { s->local_addr_known = 1; @@ -1871,7 +1872,7 @@ int get_local_mtu_ioa_socket(ioa_socket_handle s) { if(s) { if(s->parent_s) - return get_local_mtu_ioa_socket(s->parent_s); + s = s->parent_s; return get_socket_mtu(s->fd, s->family, (s->e && eve(s->e->verbose))); }