8200181: Remove superflous non-IPv4 code from Java_java_net_TwoStacksPlainSocketImpl_socketListen

Reviewed-by: alanb
This commit is contained in:
Chris Hegarty 2018-03-23 21:39:54 +00:00
parent 1155614f99
commit 22af725681

View File

@ -396,40 +396,21 @@ Java_java_net_TwoStacksPlainSocketImpl_socketListen
{ {
/* this FileDescriptor fd field */ /* this FileDescriptor fd field */
jobject fdObj = (*env)->GetObjectField(env, this, psi_fdID); jobject fdObj = (*env)->GetObjectField(env, this, psi_fdID);
jobject address;
/* fdObj's int fd field */ /* fdObj's int fd field */
int fd = INVALID_SOCKET; int fd;
SOCKETADDRESS addr;
int addrlen;
if (IS_NULL(fdObj)) { if (IS_NULL(fdObj)) {
JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException", JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException",
"socket closed"); "socket closed");
return; return;
} } else {
if (!IS_NULL(fdObj)) {
fd = (*env)->GetIntField(env, fdObj, IO_fd_fdID); fd = (*env)->GetIntField(env, fdObj, IO_fd_fdID);
} }
address = (*env)->GetObjectField(env, this, psi_addressID);
if (IS_NULL(address)) { if (listen(fd, count) == -1) {
JNU_ThrowNullPointerException(env, "socket address"); NET_ThrowCurrent(env, "listen failed");
return;
}
if (NET_InetAddressToSockaddr(env, address, 0, &addr, &addrlen,
JNI_FALSE) != 0) {
return;
} }
if (addr.sa.sa_family == AF_INET) {
/* listen on v4 */
if (listen(fd, count) == -1) {
NET_ThrowCurrent(env, "listen failed");
}
} else {
NET_SocketClose(fd);
(*env)->SetObjectField(env, this, psi_fdID, NULL);
}
} }
/* /*