< prev index next >

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

Print this page

        

*** 273,292 **** return fd; } JNIEXPORT void JNICALL Java_sun_nio_ch_Net_bind0(JNIEnv *env, jclass clazz, jobject fdo, jboolean preferIPv6, ! jboolean useExclBind, jobject iao, int port) { SOCKETADDRESS sa; int sa_len = 0; int rv = 0; if (NET_InetAddressToSockaddr(env, iao, port, &sa, &sa_len, preferIPv6) != 0) { return; } rv = NET_Bind(fdval(env, fdo), &sa, sa_len); if (rv != 0) { handleSocketError(env, errno); } --- 273,295 ---- return fd; } JNIEXPORT void JNICALL Java_sun_nio_ch_Net_bind0(JNIEnv *env, jclass clazz, jobject fdo, jboolean preferIPv6, ! jboolean useExclBind, jobject iao, int port, int scopeId) { SOCKETADDRESS sa; int sa_len = 0; int rv = 0; if (NET_InetAddressToSockaddr(env, iao, port, &sa, &sa_len, preferIPv6) != 0) { return; } + if (scopeId != -1) { // use the explicit scopeId, if there is one + ((struct sockaddr_in6 *)&sa.sa)->sin6_scope_id = scopeId; + } rv = NET_Bind(fdval(env, fdo), &sa, sa_len); if (rv != 0) { handleSocketError(env, errno); }
< prev index next >