From 7b401c4c37fbf923a971b18599ea27c008529eab Mon Sep 17 00:00:00 2001 From: chegar Date: Sat, 3 Sep 2011 07:46:35 +0100 Subject: [PATCH] 7084032: test/java/net/Inet6Address/B6558853.java fails on Windows XP/2003 if IPv6 Reviewed-by: chegar Contributed-by: kurchi.subhra.hazra@oracle.com --- src/windows/native/java/net/TwoStacksPlainSocketImpl.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/windows/native/java/net/TwoStacksPlainSocketImpl.c b/src/windows/native/java/net/TwoStacksPlainSocketImpl.c index 9c1ffee6c..4071b3f17 100644 --- a/src/windows/native/java/net/TwoStacksPlainSocketImpl.c +++ b/src/windows/native/java/net/TwoStacksPlainSocketImpl.c @@ -576,6 +576,7 @@ Java_java_net_TwoStacksPlainSocketImpl_socketAccept(JNIEnv *env, jobject this, { /* 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 @@ Java_java_net_TwoStacksPlainSocketImpl_socketAccept(JNIEnv *env, jobject this, 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 */ -- GitLab