264 sizeof(arg)) < 0) { 265 JNU_ThrowByNameWithLastError(env, 266 JNU_JAVANETPKG "SocketException", 267 "Unable to set IPV6_MULTICAST_HOPS"); 268 close(fd); 269 return -1; 270 } 271 } 272 #endif 273 return fd; 274 } 275 276 JNIEXPORT void JNICALL 277 Java_sun_nio_ch_Net_bind0(JNIEnv *env, jclass clazz, jobject fdo, jboolean preferIPv6, 278 jboolean useExclBind, jobject iao, int port) 279 { 280 SOCKETADDRESS sa; 281 int sa_len = 0; 282 int rv = 0; 283 284 if (NET_InetAddressToSockaddr(env, iao, port, &sa, &sa_len, 285 preferIPv6) != 0) { 286 return; 287 } 288 289 rv = NET_Bind(fdval(env, fdo), &sa, sa_len); 290 if (rv != 0) { 291 handleSocketError(env, errno); 292 } 293 } 294 295 JNIEXPORT void JNICALL 296 Java_sun_nio_ch_Net_listen(JNIEnv *env, jclass cl, jobject fdo, jint backlog) 297 { 298 if (listen(fdval(env, fdo), backlog) < 0) 299 handleSocketError(env, errno); 300 } 301 302 JNIEXPORT jint JNICALL 303 Java_sun_nio_ch_Net_connect0(JNIEnv *env, jclass clazz, jboolean preferIPv6, 304 jobject fdo, jobject iao, jint port) 305 { | 264 sizeof(arg)) < 0) { 265 JNU_ThrowByNameWithLastError(env, 266 JNU_JAVANETPKG "SocketException", 267 "Unable to set IPV6_MULTICAST_HOPS"); 268 close(fd); 269 return -1; 270 } 271 } 272 #endif 273 return fd; 274 } 275 276 JNIEXPORT void JNICALL 277 Java_sun_nio_ch_Net_bind0(JNIEnv *env, jclass clazz, jobject fdo, jboolean preferIPv6, 278 jboolean useExclBind, jobject iao, int port) 279 { 280 SOCKETADDRESS sa; 281 int sa_len = 0; 282 int rv = 0; 283 284 if (NET_InetAddressToSockaddr0(env, iao, port, &sa, &sa_len, 285 preferIPv6, JNI_TRUE) != 0) { 286 return; 287 } 288 289 rv = NET_Bind(fdval(env, fdo), &sa, sa_len); 290 if (rv != 0) { 291 handleSocketError(env, errno); 292 } 293 } 294 295 JNIEXPORT void JNICALL 296 Java_sun_nio_ch_Net_listen(JNIEnv *env, jclass cl, jobject fdo, jint backlog) 297 { 298 if (listen(fdval(env, fdo), backlog) < 0) 299 handleSocketError(env, errno); 300 } 301 302 JNIEXPORT jint JNICALL 303 Java_sun_nio_ch_Net_connect0(JNIEnv *env, jclass clazz, jboolean preferIPv6, 304 jobject fdo, jobject iao, jint port) 305 { |