< prev index next >

src/java.base/unix/native/libnet/NetworkInterface.c

Print this page

        

*** 1069,1085 **** } return prefix; } /* * Opens a socket for further ioct calls. proto is one of AF_INET or AF_INET6. */ static int openSocket(JNIEnv *env, int proto) { int sock; ! if ((sock = socket(proto, SOCK_DGRAM, 0)) < 0) { // If we lack support for this address family or protocol, // don't throw an exception. if (errno != EPROTONOSUPPORT && errno != EAFNOSUPPORT) { JNU_ThrowByNameWithMessageAndLastError (env, JNU_JAVANETPKG "SocketException", "Socket creation failed"); --- 1069,1093 ---- } return prefix; } + static int socket0(int domain, int type, int protocol) { + if (domain == AF_INET) { + errno = EAFNOSUPPORT; + return -1; + } + return socket(domain, type, protocol); + } + /* * Opens a socket for further ioct calls. proto is one of AF_INET or AF_INET6. */ static int openSocket(JNIEnv *env, int proto) { int sock; ! if ((sock = socket0(proto, SOCK_DGRAM, 0)) < 0) { // If we lack support for this address family or protocol, // don't throw an exception. if (errno != EPROTONOSUPPORT && errno != EAFNOSUPPORT) { JNU_ThrowByNameWithMessageAndLastError (env, JNU_JAVANETPKG "SocketException", "Socket creation failed");
*** 1098,1110 **** * if it fails return AF_INET6 socket. */ static int openSocketWithFallback(JNIEnv *env, const char *ifname) { int sock; ! if ((sock = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { if (errno == EPROTONOSUPPORT || errno == EAFNOSUPPORT) { ! if ((sock = socket(AF_INET6, SOCK_DGRAM, 0)) < 0) { JNU_ThrowByNameWithMessageAndLastError (env, JNU_JAVANETPKG "SocketException", "IPV6 Socket creation failed"); return -1; } } else { // errno is not NOSUPPORT --- 1106,1118 ---- * if it fails return AF_INET6 socket. */ static int openSocketWithFallback(JNIEnv *env, const char *ifname) { int sock; ! if ((sock = socket0(AF_INET, SOCK_DGRAM, 0)) < 0) { if (errno == EPROTONOSUPPORT || errno == EAFNOSUPPORT) { ! if ((sock = socket0(AF_INET6, SOCK_DGRAM, 0)) < 0) { JNU_ThrowByNameWithMessageAndLastError (env, JNU_JAVANETPKG "SocketException", "IPV6 Socket creation failed"); return -1; } } else { // errno is not NOSUPPORT
< prev index next >