8174834: nio (ch): Remove #ifdef AF_INET6 guards in native coding
Reviewed-by: alanb, chegar
--- a/jdk/src/java.base/unix/native/libnio/ch/DatagramChannelImpl.c Wed Jul 05 22:50:10 2017 +0200
+++ b/jdk/src/java.base/unix/native/libnio/ch/DatagramChannelImpl.c Wed Feb 15 14:51:16 2017 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -90,29 +90,16 @@
#if defined(__solaris__)
rv = connect(fd, 0, 0);
#else
- int len;
SOCKETADDRESS sa;
+ socklen_t len = isIPv6 ? sizeof(struct sockaddr_in6) :
+ sizeof(struct sockaddr_in);
memset(&sa, 0, sizeof(sa));
-
-#ifdef AF_INET6
- if (isIPv6) {
#if defined(_ALLBSD_SOURCE)
- sa.sa6.sin6_family = AF_INET6;
+ sa.sa.sa_family = isIPv6 ? AF_INET6 : AF_INET;
#else
- sa.sa6.sin6_family = AF_UNSPEC;
+ sa.sa.sa_family = AF_UNSPEC;
#endif
- len = sizeof(struct sockaddr_in6);
- } else
-#endif
- {
-#if defined(_ALLBSD_SOURCE)
- sa.sa4.sin_family = AF_INET;
-#else
- sa.sa4.sin_family = AF_UNSPEC;
-#endif
- len = sizeof(struct sockaddr_in);
- }
rv = connect(fd, &sa.sa, len);
@@ -126,8 +113,9 @@
*/
if (rv < 0 && errno == EAFNOSUPPORT)
rv = errno = 0;
-#endif
-#endif
+#endif // defined(_ALLBSD_SOURCE) || defined(_AIX)
+
+#endif // defined(__solaris__)
if (rv < 0)
handleSocketError(env, errno);
--- a/jdk/src/java.base/unix/native/libnio/ch/InheritedChannel.c Wed Jul 05 22:50:10 2017 +0200
+++ b/jdk/src/java.base/unix/native/libnio/ch/InheritedChannel.c Wed Feb 15 14:51:16 2017 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -37,14 +37,8 @@
#include "sun_nio_ch_InheritedChannel.h"
-static int matchFamily(struct sockaddr *sa) {
- int family = sa->sa_family;
-#ifdef AF_INET6
- if (ipv6_available()) {
- return (family == AF_INET6);
- }
-#endif
- return (family == AF_INET);
+static int matchFamily(SOCKETADDRESS *sa) {
+ return (sa->sa.sa_family == (ipv6_available() ? AF_INET6 : AF_INET));
}
JNIEXPORT void JNICALL
@@ -63,7 +57,7 @@
jint remote_port;
if (getpeername(fd, &sa.sa, &len) == 0) {
- if (matchFamily(&sa.sa)) {
+ if (matchFamily(&sa)) {
remote_ia = NET_SockaddrToInetAddress(env, &sa, (int *)&remote_port);
}
}
@@ -71,7 +65,6 @@
return remote_ia;
}
-
JNIEXPORT jint JNICALL
Java_sun_nio_ch_InheritedChannel_peerPort0(JNIEnv *env, jclass cla, jint fd)
{
@@ -80,7 +73,7 @@
jint remote_port = -1;
if (getpeername(fd, &sa.sa, &len) == 0) {
- if (matchFamily(&sa.sa)) {
+ if (matchFamily(&sa)) {
NET_SockaddrToInetAddress(env, &sa, (int *)&remote_port);
}
}
@@ -92,7 +85,7 @@
Java_sun_nio_ch_InheritedChannel_soType0(JNIEnv *env, jclass cla, jint fd)
{
int sotype;
- socklen_t arglen=sizeof(sotype);
+ socklen_t arglen = sizeof(sotype);
if (getsockopt(fd, SOL_SOCKET, SO_TYPE, (void *)&sotype, &arglen) == 0) {
if (sotype == SOCK_STREAM)
return sun_nio_ch_InheritedChannel_SOCK_STREAM;
@@ -123,7 +116,7 @@
JNIEXPORT jint JNICALL
Java_sun_nio_ch_InheritedChannel_open0(JNIEnv *env, jclass cla, jstring path, jint oflag)
{
- const char* str;
+ const char *str;
int oflag_actual;
/* convert to OS specific value */
--- a/jdk/src/java.base/unix/native/libnio/ch/Net.c Wed Jul 05 22:50:10 2017 +0200
+++ b/jdk/src/java.base/unix/native/libnio/ch/Net.c Wed Feb 15 14:51:16 2017 +0100
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -101,23 +101,21 @@
* Copy IPv6 group, interface index, and IPv6 source address
* into group_source_req structure.
*/
-#ifdef AF_INET6
static void initGroupSourceReq(JNIEnv* env, jbyteArray group, jint index,
- jbyteArray source, struct group_source_req* req)
+ jbyteArray source, struct group_source_req *req)
{
struct sockaddr_in6* sin6;
req->gsr_interface = (uint32_t)index;
- sin6 = (struct sockaddr_in6*)&(req->gsr_group);
+ sin6 = (struct sockaddr_in6 *)&(req->gsr_group);
sin6->sin6_family = AF_INET6;
- COPY_INET6_ADDRESS(env, group, (jbyte*)&(sin6->sin6_addr));
+ COPY_INET6_ADDRESS(env, group, (jbyte *)&(sin6->sin6_addr));
- sin6 = (struct sockaddr_in6*)&(req->gsr_source);
+ sin6 = (struct sockaddr_in6 *)&(req->gsr_source);
sin6->sin6_family = AF_INET6;
- COPY_INET6_ADDRESS(env, source, (jbyte*)&(sin6->sin6_addr));
+ COPY_INET6_ADDRESS(env, source, (jbyte *)&(sin6->sin6_addr));
}
-#endif
#ifdef _AIX
@@ -199,18 +197,13 @@
{
int fd;
int type = (stream ? SOCK_STREAM : SOCK_DGRAM);
-#ifdef AF_INET6
int domain = (ipv6_available() && preferIPv6) ? AF_INET6 : AF_INET;
-#else
- int domain = AF_INET;
-#endif
fd = socket(domain, type, 0);
if (fd < 0) {
return handleSocketError(env, errno);
}
-#ifdef AF_INET6
/* Disable IPV6_V6ONLY to ensure dual-socket support */
if (domain == AF_INET6) {
int arg = 0;
@@ -223,7 +216,6 @@
return -1;
}
}
-#endif
if (reuse) {
int arg = 1;
@@ -250,9 +242,7 @@
return -1;
}
}
-#endif
-#if defined(__linux__) && defined(AF_INET6)
/* By default, Linux uses the route default */
if (domain == AF_INET6 && type == SOCK_DGRAM) {
int arg = 1;
@@ -569,7 +559,6 @@
Java_sun_nio_ch_Net_joinOrDrop6(JNIEnv *env, jobject this, jboolean join, jobject fdo,
jbyteArray group, jint index, jbyteArray source)
{
-#ifdef AF_INET6
struct ipv6_mreq mreq6;
struct group_source_req req;
int opt, n, optlen;
@@ -600,21 +589,16 @@
handleSocketError(env, errno);
}
return 0;
-#else
- JNU_ThrowInternalError(env, "Should not get here");
- return IOS_THROWN;
-#endif /* AF_INET6 */
}
JNIEXPORT jint JNICALL
Java_sun_nio_ch_Net_blockOrUnblock6(JNIEnv *env, jobject this, jboolean block, jobject fdo,
jbyteArray group, jint index, jbyteArray source)
{
-#ifdef AF_INET6
- #ifdef __APPLE__
+#ifdef __APPLE__
/* no IPv6 exclude-mode filtering for now */
return IOS_UNAVAILABLE;
- #else
+#else
struct group_source_req req;
int n;
int opt = (block) ? MCAST_BLOCK_SOURCE : MCAST_UNBLOCK_SOURCE;
@@ -629,10 +613,6 @@
handleSocketError(env, errno);
}
return 0;
- #endif
-#else
- JNU_ThrowInternalError(env, "Should not get here");
- return IOS_THROWN;
#endif
}