equal
deleted
inserted
replaced
185 */ |
185 */ |
186 NET_ThrowNew(env, errno, "can't create socket"); |
186 NET_ThrowNew(env, errno, "can't create socket"); |
187 return; |
187 return; |
188 } |
188 } |
189 |
189 |
190 /* Disable IPV6_V6ONLY to ensure dual-socket support */ |
190 /* |
191 if (domain == AF_INET6) { |
191 * If IPv4 is available, disable IPV6_V6ONLY to ensure dual-socket support. |
|
192 */ |
|
193 if (domain == AF_INET6 && ipv4_available()) { |
192 int arg = 0; |
194 int arg = 0; |
193 if (setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, (char*)&arg, |
195 if (setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, (char*)&arg, |
194 sizeof(int)) < 0) { |
196 sizeof(int)) < 0) { |
195 NET_ThrowNew(env, errno, "cannot set IPPROTO_IPV6"); |
197 NET_ThrowNew(env, errno, "cannot set IPPROTO_IPV6"); |
196 close(fd); |
198 close(fd); |