src/windows/native/java/net/TwoStacksPlainDatagramSocketImpl.c
Print this page
@@ -351,11 +351,11 @@
while(1) {
if (select(/*ignored*/fd+1, &tbl, 0, 0, &t) <= 0) {
break;
}
if (recvfrom(fd, buf, 1, MSG_PEEK,
- (struct sockaddr *)&rmtaddr, &addrlen) != JVM_IO_ERR) {
+ (struct sockaddr *)&rmtaddr, &addrlen) != SOCKET_ERROR) {
break;
}
if (WSAGetLastError() != WSAECONNRESET) {
/* some other error - we don't care here */
break;
@@ -506,11 +506,11 @@
if (fd == -1) {
/* must be an IPV6 only socket. */
fd = fd1;
}
if (getsockname(fd, (struct sockaddr *)&lcladdr, &lcladdrlen) == -1) {
- NET_ThrowCurrent(env, "JVM_GetSockName");
+ NET_ThrowCurrent(env, "getsockname");
return;
}
port = ntohs((u_short) GET_PORT (&lcladdr));
}
(*env)->SetIntField(env, this, pdsi_localPortID, port);
@@ -698,11 +698,11 @@
if (packetBufferLen > MAX_PACKET_LEN) {
packetBufferLen = MAX_PACKET_LEN;
}
if (connected) {
- addrp = 0; /* arg to JVM_Sendto () null in this case */
+ addrp = 0; /* arg to sendto () null in this case */
addrlen = 0;
} else {
if (NET_InetAddressToSockaddr(env, iaObj, packetPort, (struct sockaddr *)&rmtaddr, &addrlen, JNI_FALSE) != 0) {
return;
}
@@ -755,19 +755,13 @@
fullPacket = &(BUF[0]);
}
(*env)->GetByteArrayRegion(env, packetBuffer, packetBufferOffset, packetBufferLen,
(jbyte *)fullPacket);
- switch (sendto(fd, fullPacket, packetBufferLen, 0,
- (struct sockaddr *)addrp, addrlen)) {
- case JVM_IO_ERR:
+ if (sendto(fd, fullPacket, packetBufferLen, 0,
+ (struct sockaddr *)addrp, addrlen) == SOCKET_ERROR) {
NET_ThrowCurrent(env, "Datagram send failed");
- break;
-
- case JVM_IO_INTR:
- JNU_ThrowByName(env, JNU_JAVAIOPKG "InterruptedIOException",
- "operation interrupted");
}
if (packetBufferLen > MAX_BUFFER_LEN) {
free(fullPacket);
}
@@ -849,25 +843,21 @@
ret = NET_Timeout (fd, timeout);
if (ret == 0) {
JNU_ThrowByName(env, JNU_JAVANETPKG "SocketTimeoutException",
"Peek timed out");
return ret;
- } else if (ret == JVM_IO_ERR) {
+ } else if (ret == -1) {
NET_ThrowCurrent(env, "timeout in datagram socket peek");
return ret;
- } else if (ret == JVM_IO_INTR) {
- JNU_ThrowByName(env, JNU_JAVAIOPKG "InterruptedIOException",
- "operation interrupted");
- return ret;
}
}
/* now try the peek */
n = recvfrom(fd, buf, 1, MSG_PEEK,
(struct sockaddr *)&remote_addr, &remote_addrsize);
- if (n == JVM_IO_ERR) {
+ if (n == SOCKET_ERROR) {
if (WSAGetLastError() == WSAECONNRESET) {
jboolean connected;
/*
* An icmp port unreachable - we must receive this as Windows
@@ -903,18 +893,14 @@
retry = TRUE;
}
}
} while (retry);
- if (n == JVM_IO_ERR && WSAGetLastError() != WSAEMSGSIZE) {
+ if (n == SOCKET_ERROR && WSAGetLastError() != WSAEMSGSIZE) {
NET_ThrowCurrent(env, "Datagram peek failed");
return 0;
}
- if (n == JVM_IO_INTR) {
- JNU_ThrowByName(env, JNU_JAVAIOPKG "InterruptedIOException", 0);
- return 0;
- }
setInetAddress_addr(env, addressObj, ntohl(remote_addr.sin_addr.s_addr));
setInetAddress_family(env, addressObj, IPv4);
/* return port */
return ntohs(remote_addr.sin_port);
@@ -1033,15 +1019,12 @@
* for this call to peek() */
if (ret <= 0) {
if (ret == 0) {
JNU_ThrowByName(env,JNU_JAVANETPKG "SocketTimeoutException",
"Peek timed out");
- } else if (ret == JVM_IO_ERR) {
+ } else if (ret == -1) {
NET_ThrowCurrent(env, "timeout in datagram socket peek");
- } else if (ret == JVM_IO_INTR) {
- JNU_ThrowByName(env, JNU_JAVAIOPKG "InterruptedIOException",
- "operation interrupted");
}
if (packetBufferLen > MAX_BUFFER_LEN) {
free(fullPacket);
}
return -1;
@@ -1057,16 +1040,13 @@
ret = NET_Timeout (fduse, timeout);
if (ret <= 0) {
if (ret == 0) {
JNU_ThrowByName(env,JNU_JAVANETPKG "SocketTimeoutException",
"Receive timed out");
- } else if (ret == JVM_IO_ERR) {
+ } else if (ret == -1) {
JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException",
"Socket closed");
- } else if (ret == JVM_IO_INTR) {
- JNU_ThrowByName(env, JNU_JAVAIOPKG "InterruptedIOException",
- "operation interrupted");
}
if (packetBufferLen > MAX_BUFFER_LEN) {
free(fullPacket);
}
return -1;
@@ -1075,11 +1055,11 @@
/* receive the packet */
n = recvfrom(fduse, fullPacket, packetBufferLen, MSG_PEEK,
(struct sockaddr *)&remote_addr, &remote_addrsize);
port = (int) ntohs ((u_short) GET_PORT((SOCKETADDRESS *)&remote_addr));
- if (n == JVM_IO_ERR) {
+ if (n == SOCKET_ERROR) {
if (WSAGetLastError() == WSAECONNRESET) {
jboolean connected;
/*
* An icmp port unreachable - we must receive this as Windows
@@ -1242,16 +1222,13 @@
fduse = checkLastFD (env, this, fd, fd1);
} else if (ret <= 0) {
if (ret == 0) {
JNU_ThrowByName(env, JNU_JAVANETPKG "SocketTimeoutException",
"Receive timed out");
- } else if (ret == JVM_IO_ERR) {
+ } else if (ret == -1) {
JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException",
"Socket closed");
- } else if (ret == JVM_IO_INTR) {
- JNU_ThrowByName(env, JNU_JAVAIOPKG "InterruptedIOException",
- "operation interrupted");
}
return;
}
}
} else if (!ipv6_supported) {
@@ -1322,16 +1299,13 @@
ret = NET_Timeout(fduse, timeout);
if (ret <= 0) {
if (ret == 0) {
JNU_ThrowByName(env, JNU_JAVANETPKG "SocketTimeoutException",
"Receive timed out");
- } else if (ret == JVM_IO_ERR) {
+ } else if (ret == -1) {
JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException",
"Socket closed");
- } else if (ret == JVM_IO_INTR) {
- JNU_ThrowByName(env, JNU_JAVAIOPKG "InterruptedIOException",
- "operation interrupted");
}
if (packetBufferLen > MAX_BUFFER_LEN) {
free(fullPacket);
}
return;
@@ -1346,11 +1320,11 @@
/* receive the packet */
n = recvfrom(fduse, fullPacket, packetBufferLen, 0,
(struct sockaddr *)&remote_addr, &remote_addrsize);
- if (n == JVM_IO_ERR) {
+ if (n == SOCKET_ERROR) {
if (WSAGetLastError() == WSAECONNRESET) {
/*
* An icmp port unreachable has been received - consume any other
* outstanding packets.
*/
@@ -1390,16 +1364,13 @@
if (ret <= 0) {
if (ret == 0) {
JNU_ThrowByName(env, JNU_JAVANETPKG "SocketTimeoutException",
"Receive timed out");
- } else if (ret == JVM_IO_ERR) {
+ } else if (ret == -1) {
JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException",
"Socket closed");
- } else if (ret == JVM_IO_INTR) {
- JNU_ThrowByName(env, JNU_JAVAIOPKG "InterruptedIOException",
- "operation interrupted");
}
if (packetBufferLen > MAX_BUFFER_LEN) {
free(fullPacket);
}
return;
@@ -1498,11 +1469,11 @@
JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException", "Socket closed");
return;
} else {
fd = (int) socket (AF_INET, SOCK_DGRAM, 0);
}
- if (fd == JVM_IO_ERR) {
+ if (fd == SOCKET_ERROR) {
NET_ThrowCurrent(env, "Socket creation failed");
return;
}
SetHandleInformation((HANDLE)(UINT_PTR)fd, HANDLE_FLAG_INHERIT, FALSE);
(*env)->SetIntField(env, fdObj, IO_fd_fdID, fd);
@@ -1516,11 +1487,11 @@
*/
t = FALSE;
WSAIoctl(fd,SIO_UDP_CONNRESET,&t,sizeof(t),&x1,sizeof(x1),&x2,0,0);
t = TRUE;
fd1 = socket (AF_INET6, SOCK_DGRAM, 0);
- if (fd1 == JVM_IO_ERR) {
+ if (fd1 == SOCKET_ERROR) {
NET_ThrowCurrent(env, "Socket creation failed");
return;
}
NET_SetSockOpt(fd1, SOL_SOCKET, SO_BROADCAST, (char*)&t, sizeof(BOOL));
t = FALSE;