Zebediah Figura (@zfigura) commented about server/sock.c:
+ +static struct rb_tree bound_addresses_tree = { addr_compare }; + +static int is_blocking_addr( struct sock *sock, const union unix_sockaddr *addr ) +{ + if (!is_tcp_socket( sock )) return 0; + + if (sock->family == WS_AF_INET) + { + if (addr->addr.sa_family != AF_INET) return 0; + if (!addr->in.sin_port) return 0; + return 1; + } + if (addr->addr.sa_family != AF_INET6) return 0; + if (!addr->in6.sin6_port) return 0; + return 1; I think it'd be clearer if you had an "else if (sock->family == WS_AF_INET6)" branch, even though it's more lines of code.
Also, do we really need those sa_family checks? It skips the address lookup, but that doesn't seem necessary, and it's a bit distracting. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/1111#note_12139