diff options
Diffstat (limited to 'ext/socket/udpsocket.c')
-rw-r--r-- | ext/socket/udpsocket.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/ext/socket/udpsocket.c b/ext/socket/udpsocket.c index 5224e48a96..cf3eb6ab9a 100644 --- a/ext/socket/udpsocket.c +++ b/ext/socket/udpsocket.c @@ -88,9 +88,16 @@ udp_connect(VALUE sock, VALUE host, VALUE port) { struct udp_arg arg; VALUE ret; + int addrinfo_hints = 0; GetOpenFile(sock, arg.fptr); - arg.res = rsock_addrinfo(host, port, rsock_fd_family(arg.fptr->fd), SOCK_DGRAM, 0); + +#ifdef HAVE_CONST_AI_ADDRCONFIG + addrinfo_hints |= AI_ADDRCONFIG; +#endif + + arg.res = rsock_addrinfo(host, port, rsock_fd_family(arg.fptr->fd), SOCK_DGRAM, + addrinfo_hints); ret = rb_ensure(udp_connect_internal, (VALUE)&arg, rsock_freeaddrinfo, (VALUE)arg.res); if (!ret) rsock_sys_fail_host_port("connect(2)", host, port); |