@@ -1207,33 +1207,36 @@ repeats: false]]; address = of_socket_address_parse_ip( [[query nameServers] firstObject], 53); + switch (address.family) { #ifdef OF_HAVE_IPV6 - if (address.address.ss_family == AF_INET6) { + case OF_SOCKET_ADDRESS_FAMILY_IPV6: if (_IPv6Socket == nil) { _IPv6Socket = [[OFUDPSocket alloc] init]; [_IPv6Socket bindToHost: @"::" port: 0]; [_IPv6Socket setBlocking: false]; } sock = _IPv6Socket; - } else { + break; #endif + case OF_SOCKET_ADDRESS_FAMILY_IPV4: if (_IPv4Socket == nil) { _IPv4Socket = [[OFUDPSocket alloc] init]; [_IPv4Socket bindToHost: @"0.0.0.0" port: 0]; [_IPv4Socket setBlocking: false]; } sock = _IPv4Socket; -#ifdef OF_HAVE_IPV6 + break; + default: + @throw [OFInvalidArgumentException exception]; } -#endif [sock asyncSendBuffer: [[query queryData] items] length: [[query queryData] count] receiver: address target: self