src/java.base/windows/native/libnio/ch/Net.c

Print this page




  64 
  65 /**
  66  * Copy IPv6 address as jbytearray to target
  67  */
  68 #define COPY_INET6_ADDRESS(env, source, target) \
  69     (*env)->GetByteArrayRegion(env, source, 0, 16, target)
  70 
  71 /**
  72  * Enable or disable receipt of WSAECONNRESET errors.
  73  */
  74 static void setConnectionReset(SOCKET s, BOOL enable) {
  75     DWORD bytesReturned = 0;
  76     WSAIoctl(s, SIO_UDP_CONNRESET, &enable, sizeof(enable),
  77              NULL, 0, &bytesReturned, NULL, NULL);
  78 }
  79 
  80 
  81 JNIEXPORT void JNICALL
  82 Java_sun_nio_ch_Net_initIDs(JNIEnv *env, jclass clazz)
  83 {
  84     /* nothing to do */
  85 }
  86 
  87 JNIEXPORT jboolean JNICALL
  88 Java_sun_nio_ch_Net_isIPv6Available0(JNIEnv* env, jclass cl)
  89 {
  90     /*
  91      * Return true if Windows Vista or newer, and IPv6 is configured
  92      */
  93     OSVERSIONINFO ver;
  94     ver.dwOSVersionInfoSize = sizeof(ver);
  95     GetVersionEx(&ver);
  96     if ((ver.dwPlatformId == VER_PLATFORM_WIN32_NT) &&
  97         (ver.dwMajorVersion >= 6)  && ipv6_available())
  98     {
  99         return JNI_TRUE;
 100     }
 101     return JNI_FALSE;
 102 }
 103 
 104 JNIEXPORT jint JNICALL




  64 
  65 /**
  66  * Copy IPv6 address as jbytearray to target
  67  */
  68 #define COPY_INET6_ADDRESS(env, source, target) \
  69     (*env)->GetByteArrayRegion(env, source, 0, 16, target)
  70 
  71 /**
  72  * Enable or disable receipt of WSAECONNRESET errors.
  73  */
  74 static void setConnectionReset(SOCKET s, BOOL enable) {
  75     DWORD bytesReturned = 0;
  76     WSAIoctl(s, SIO_UDP_CONNRESET, &enable, sizeof(enable),
  77              NULL, 0, &bytesReturned, NULL, NULL);
  78 }
  79 
  80 
  81 JNIEXPORT void JNICALL
  82 Java_sun_nio_ch_Net_initIDs(JNIEnv *env, jclass clazz)
  83 {
  84     initInetAddressIDs(env);
  85 }
  86 
  87 JNIEXPORT jboolean JNICALL
  88 Java_sun_nio_ch_Net_isIPv6Available0(JNIEnv* env, jclass cl)
  89 {
  90     /*
  91      * Return true if Windows Vista or newer, and IPv6 is configured
  92      */
  93     OSVERSIONINFO ver;
  94     ver.dwOSVersionInfoSize = sizeof(ver);
  95     GetVersionEx(&ver);
  96     if ((ver.dwPlatformId == VER_PLATFORM_WIN32_NT) &&
  97         (ver.dwMajorVersion >= 6)  && ipv6_available())
  98     {
  99         return JNI_TRUE;
 100     }
 101     return JNI_FALSE;
 102 }
 103 
 104 JNIEXPORT jint JNICALL