mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 15:24:43 +02:00
8233307: MulticastSocket getOption(IP_MULTICAST_IF) returns interface when not set
The MulticastSocket method getOption has been changed to conform to the behavior described in StandardSocketOptions.IP_MULTICAST_IF. Reviewed-by: chegar, dfuchs
This commit is contained in:
parent
558aadf608
commit
55da7d34c9
4 changed files with 150 additions and 67 deletions
|
@ -1494,25 +1494,7 @@ jobject getMulticastInterface(JNIEnv *env, jobject this, int fd, jint opt) {
|
|||
if (ni) {
|
||||
return ni;
|
||||
}
|
||||
|
||||
/*
|
||||
* The address doesn't appear to be bound at any known
|
||||
* NetworkInterface. Therefore we construct a NetworkInterface
|
||||
* with this address.
|
||||
*/
|
||||
ni = (*env)->NewObject(env, ni_class, ni_ctrID, 0);
|
||||
CHECK_NULL_RETURN(ni, NULL);
|
||||
|
||||
(*env)->SetIntField(env, ni, ni_indexID, -1);
|
||||
addrArray = (*env)->NewObjectArray(env, 1, inet4_class, NULL);
|
||||
CHECK_NULL_RETURN(addrArray, NULL);
|
||||
(*env)->SetObjectArrayElement(env, addrArray, 0, addr);
|
||||
(*env)->SetObjectField(env, ni, ni_addrsID, addrArray);
|
||||
ni_name = (*env)->NewStringUTF(env, "");
|
||||
if (ni_name != NULL) {
|
||||
(*env)->SetObjectField(env, ni, ni_nameID, ni_name);
|
||||
}
|
||||
return ni;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
|
@ -1619,19 +1601,6 @@ jobject getMulticastInterface(JNIEnv *env, jobject this, int fd, jint opt) {
|
|||
if (opt == java_net_SocketOptions_IP_MULTICAST_IF) {
|
||||
return addr;
|
||||
}
|
||||
|
||||
ni = (*env)->NewObject(env, ni_class, ni_ctrID, 0);
|
||||
CHECK_NULL_RETURN(ni, NULL);
|
||||
(*env)->SetIntField(env, ni, ni_indexID, -1);
|
||||
addrArray = (*env)->NewObjectArray(env, 1, ia_class, NULL);
|
||||
CHECK_NULL_RETURN(addrArray, NULL);
|
||||
(*env)->SetObjectArrayElement(env, addrArray, 0, addr);
|
||||
(*env)->SetObjectField(env, ni, ni_addrsID, addrArray);
|
||||
ni_name = (*env)->NewStringUTF(env, "");
|
||||
if (ni_name != NULL) {
|
||||
(*env)->SetObjectField(env, ni, ni_nameID, ni_name);
|
||||
}
|
||||
return ni;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue