Zebediah Figura (@zfigura) commented about server/sock.c:
+ if (IN6_IS_ADDR_LOOPBACK(&in6->sin6_addr)) + { + v4addr->in.sin_addr.s_addr = INADDR_LOOPBACK; + return 1; + } + if (IN6_IS_ADDR_V4COMPAT(&in6->sin6_addr) || IN6_IS_ADDR_V4MAPPED(&in6->sin6_addr)) + { + memcpy( &v4addr->in.sin_addr.s_addr, &in6->sin6_addr.s6_addr[12], sizeof(v4addr->in.sin_addr.s_addr) ); + return 1; + } + return 0; +} + +static struct rb_tree bound_addresses_tree = { addr_compare }; + +static int is_blocking_addr( struct sock *sock, const union unix_sockaddr *addr ) Naming here is awkward, mostly because "blocking" usually means something else when we're talking about sockets. I don't have much better, though. Maybe "addr_can_conflict"?
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/1111#note_12138