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;