jdk/src/java.base/unix/native/libnet/net_util_md.c
changeset 36115 0676e37a0b9c
parent 31711 cca718f2fcf0
child 38459 6cf90640c38c
equal deleted inserted replaced
36114:a5ed9456c9be 36115:0676e37a0b9c
     1 /*
     1 /*
     2  * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.  Oracle designates this
     7  * published by the Free Software Foundation.  Oracle designates this
   436         return JNI_TRUE;
   436         return JNI_TRUE;
   437     }
   437     }
   438 #endif /* AF_INET6 */
   438 #endif /* AF_INET6 */
   439 }
   439 }
   440 #endif /* DONT_ENABLE_IPV6 */
   440 #endif /* DONT_ENABLE_IPV6 */
       
   441 
       
   442 jint reuseport_supported()
       
   443 {
       
   444     /* Do a simple dummy call, and try to figure out from that */
       
   445     int one = 1;
       
   446     int rv, s;
       
   447     s = socket(PF_INET, SOCK_STREAM, 0);
       
   448     if (s < 0) {
       
   449         return JNI_FALSE;
       
   450     }
       
   451     rv = setsockopt(s, SOL_SOCKET, SO_REUSEPORT, (void *)&one, sizeof(one));
       
   452     if (rv != 0) {
       
   453         rv = JNI_FALSE;
       
   454     } else {
       
   455         rv = JNI_TRUE;
       
   456     }
       
   457     close(s);
       
   458     return rv;
       
   459 }
   441 
   460 
   442 void NET_ThrowUnknownHostExceptionWithGaiError(JNIEnv *env,
   461 void NET_ThrowUnknownHostExceptionWithGaiError(JNIEnv *env,
   443                                                const char* hostname,
   462                                                const char* hostname,
   444                                                int gai_error)
   463                                                int gai_error)
   445 {
   464 {
  1012         { java_net_SocketOptions_SO_LINGER,             SOL_SOCKET,     SO_LINGER },
  1031         { java_net_SocketOptions_SO_LINGER,             SOL_SOCKET,     SO_LINGER },
  1013         { java_net_SocketOptions_SO_SNDBUF,             SOL_SOCKET,     SO_SNDBUF },
  1032         { java_net_SocketOptions_SO_SNDBUF,             SOL_SOCKET,     SO_SNDBUF },
  1014         { java_net_SocketOptions_SO_RCVBUF,             SOL_SOCKET,     SO_RCVBUF },
  1033         { java_net_SocketOptions_SO_RCVBUF,             SOL_SOCKET,     SO_RCVBUF },
  1015         { java_net_SocketOptions_SO_KEEPALIVE,          SOL_SOCKET,     SO_KEEPALIVE },
  1034         { java_net_SocketOptions_SO_KEEPALIVE,          SOL_SOCKET,     SO_KEEPALIVE },
  1016         { java_net_SocketOptions_SO_REUSEADDR,          SOL_SOCKET,     SO_REUSEADDR },
  1035         { java_net_SocketOptions_SO_REUSEADDR,          SOL_SOCKET,     SO_REUSEADDR },
       
  1036         { java_net_SocketOptions_SO_REUSEPORT,          SOL_SOCKET,     SO_REUSEPORT },
  1017         { java_net_SocketOptions_SO_BROADCAST,          SOL_SOCKET,     SO_BROADCAST },
  1037         { java_net_SocketOptions_SO_BROADCAST,          SOL_SOCKET,     SO_BROADCAST },
  1018         { java_net_SocketOptions_IP_TOS,                IPPROTO_IP,     IP_TOS },
  1038         { java_net_SocketOptions_IP_TOS,                IPPROTO_IP,     IP_TOS },
  1019         { java_net_SocketOptions_IP_MULTICAST_IF,       IPPROTO_IP,     IP_MULTICAST_IF },
  1039         { java_net_SocketOptions_IP_MULTICAST_IF,       IPPROTO_IP,     IP_MULTICAST_IF },
  1020         { java_net_SocketOptions_IP_MULTICAST_IF2,      IPPROTO_IP,     IP_MULTICAST_IF },
  1040         { java_net_SocketOptions_IP_MULTICAST_IF2,      IPPROTO_IP,     IP_MULTICAST_IF },
  1021         { java_net_SocketOptions_IP_MULTICAST_LOOP,     IPPROTO_IP,     IP_MULTICAST_LOOP },
  1041         { java_net_SocketOptions_IP_MULTICAST_LOOP,     IPPROTO_IP,     IP_MULTICAST_LOOP },