OpenJDK / amber / amber
changeset 10426:90d1b830cdd6
7084032: test/java/net/Inet6Address/B6558853.java fails on Windows XP/2003 if IPv6
Reviewed-by: chegar
Contributed-by: kurchi.subhra.hazra@oracle.com
author | chegar |
---|---|
date | Sat, 03 Sep 2011 07:46:35 +0100 |
parents | 7903cf45f96f |
children | c255e1803e4d |
files | jdk/src/windows/native/java/net/TwoStacksPlainSocketImpl.c |
diffstat | 1 files changed, 6 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/jdk/src/windows/native/java/net/TwoStacksPlainSocketImpl.c Fri Sep 02 16:06:08 2011 -0700 +++ b/jdk/src/windows/native/java/net/TwoStacksPlainSocketImpl.c Sat Sep 03 07:46:35 2011 +0100 @@ -576,6 +576,7 @@ { /* fields on this */ jint port; + jint scope; jint timeout = (*env)->GetIntField(env, this, psi_timeoutID); jobject fdObj = (*env)->GetObjectField(env, this, psi_fdID); jobject fd1Obj = (*env)->GetObjectField(env, this, psi_fd1ID); @@ -755,7 +756,11 @@ addr = (*env)->GetObjectField (env, socketAddressObj, ia6_ipaddressID); (*env)->SetByteArrayRegion (env, addr, 0, 16, (const char *)&him.him6.sin6_addr); (*env)->SetIntField(env, socketAddressObj, ia_familyID, IPv6); - (*env)->SetIntField(env, socketAddressObj, ia6_scopeidID, him.him6.sin6_scope_id); + scope = him.him6.sin6_scope_id; + (*env)->SetIntField(env, socketAddressObj, ia6_scopeidID, scope); + if(scope>0) { + (*env)->SetBooleanField(env, socketAddressObj, ia6_scopeidsetID, JNI_TRUE); + } } /* fields common to AF_INET and AF_INET6 */