jdk/src/solaris/native/sun/nio/ch/Net.c
changeset 25170 f58832169add
parent 23016 1805013d2034
equal deleted inserted replaced
25169:365cba5326f9 25170:f58832169add
   433     return (jint)result;
   433     return (jint)result;
   434 }
   434 }
   435 
   435 
   436 JNIEXPORT void JNICALL
   436 JNIEXPORT void JNICALL
   437 Java_sun_nio_ch_Net_setIntOption0(JNIEnv *env, jclass clazz, jobject fdo,
   437 Java_sun_nio_ch_Net_setIntOption0(JNIEnv *env, jclass clazz, jobject fdo,
   438                                   jboolean mayNeedConversion, jint level, jint opt, jint arg)
   438                                   jboolean mayNeedConversion, jint level,
       
   439                                   jint opt, jint arg, jboolean isIPv6)
   439 {
   440 {
   440     int result;
   441     int result;
   441     struct linger linger;
   442     struct linger linger;
   442     u_char carg;
   443     u_char carg;
   443     void *parg;
   444     void *parg;
   476     if (n < 0) {
   477     if (n < 0) {
   477         JNU_ThrowByNameWithLastError(env,
   478         JNU_ThrowByNameWithLastError(env,
   478                                      JNU_JAVANETPKG "SocketException",
   479                                      JNU_JAVANETPKG "SocketException",
   479                                      "sun.nio.ch.Net.setIntOption");
   480                                      "sun.nio.ch.Net.setIntOption");
   480     }
   481     }
       
   482 #ifdef __linux__
       
   483     if (level == IPPROTO_IPV6 && opt == IPV6_TCLASS && isIPv6) {
       
   484         // set the V4 option also
       
   485         setsockopt(fdval(env, fdo), IPPROTO_IP, IP_TOS, parg, arglen);
       
   486     }
       
   487 #endif
   481 }
   488 }
   482 
   489 
   483 JNIEXPORT jint JNICALL
   490 JNIEXPORT jint JNICALL
   484 Java_sun_nio_ch_Net_joinOrDrop4(JNIEnv *env, jobject this, jboolean join, jobject fdo,
   491 Java_sun_nio_ch_Net_joinOrDrop4(JNIEnv *env, jobject this, jboolean join, jobject fdo,
   485                                 jint group, jint interf, jint source)
   492                                 jint group, jint interf, jint source)