+ /* If we need an IPv4 socket, and don't have one, open it. */
+ if (need_v4 && !s_active(&res_socket_v4))
+ {
+ int fd = os_socket(&VirtualHost_dns_v4, SOCK_DGRAM, "Resolver UDPv4 socket", AF_INET);
+ if (fd >= 0)
+ socket_add(&res_socket_v4, res_readreply, NULL,
+ SS_DATAGRAM, SOCK_EVENT_READABLE, fd);
+ }
+
+#ifdef AF_INET6
+ /* If we need an IPv6 socket, and don't have one, open it. */
+ if (need_v6 && !s_active(&res_socket_v6))
+ {
+ int fd = os_socket(&VirtualHost_dns_v6, SOCK_DGRAM, "Resolver UDPv6 socket", AF_INET6);
+ if (fd >= 0)
+ socket_add(&res_socket_v6, res_readreply, NULL,
+ SS_DATAGRAM, SOCK_EVENT_READABLE, fd);
+ }