src/windows/native/java/net/DualStackPlainDatagramSocketImpl.c

Print this page

        

*** 53,63 **** 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) { break; } if (WSAGetLastError() != WSAECONNRESET) { /* some other error - we don't care here */ break; --- 53,63 ---- while(1) { if (select(/*ignored*/fd+1, &tbl, 0, 0, &t) <= 0) { break; } if (recvfrom(fd, buf, 1, MSG_PEEK, ! (struct sockaddr *)&rmtaddr, &addrlen) != SOCKET_ERROR) { break; } if (WSAGetLastError() != WSAECONNRESET) { /* some other error - we don't care here */ break;
*** 199,209 **** (JNIEnv *env, jclass clazz, jint fd) { SOCKETADDRESS sa; int len = sizeof(sa); if (getsockname(fd, (struct sockaddr *)&sa, &len) == SOCKET_ERROR) { ! NET_ThrowNew(env, WSAGetLastError(), "JVM_GetSockName"); return -1; } return (int) ntohs((u_short)GET_PORT(&sa)); } --- 199,209 ---- (JNIEnv *env, jclass clazz, jint fd) { SOCKETADDRESS sa; int len = sizeof(sa); if (getsockname(fd, (struct sockaddr *)&sa, &len) == SOCKET_ERROR) { ! NET_ThrowNew(env, WSAGetLastError(), "getsockname"); return -1; } return (int) ntohs((u_short)GET_PORT(&sa)); }
*** 282,297 **** rv = NET_Timeout(fd, timeout); if (rv <= 0) { if (rv == 0) { JNU_ThrowByName(env,JNU_JAVANETPKG "SocketTimeoutException", "Receive timed out"); ! } else if (rv == JVM_IO_ERR) { JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException", "Socket closed"); - } else if (rv == JVM_IO_INTR) { - JNU_ThrowByName(env, JNU_JAVAIOPKG "InterruptedIOException", - "operation interrupted"); } if (packetBufferLen > MAX_BUFFER_LEN) { free(fullPacket); } return -1; --- 282,294 ---- rv = NET_Timeout(fd, timeout); if (rv <= 0) { if (rv == 0) { JNU_ThrowByName(env,JNU_JAVANETPKG "SocketTimeoutException", "Receive timed out"); ! } else if (rv == -1) { JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException", "Socket closed"); } if (packetBufferLen > MAX_BUFFER_LEN) { free(fullPacket); } return -1;
*** 407,417 **** char BUF[MAX_BUFFER_LEN]; char *fullPacket; int rv; if (connected) { ! sap = 0; /* arg to JVM_Sendto () null in this case */ sa_len = 0; } else { if (NET_InetAddressToSockaddr(env, iaObj, port, (struct sockaddr *)&sa, &sa_len, JNI_TRUE) != 0) { return; --- 404,414 ---- char BUF[MAX_BUFFER_LEN]; char *fullPacket; int rv; if (connected) { ! sap = 0; /* arg to sendto () null in this case */ sa_len = 0; } else { if (NET_InetAddressToSockaddr(env, iaObj, port, (struct sockaddr *)&sa, &sa_len, JNI_TRUE) != 0) { return;
*** 436,450 **** (*env)->GetByteArrayRegion(env, data, offset, length, (jbyte *)fullPacket); rv = sendto(fd, fullPacket, length, 0, (struct sockaddr *)sap, sa_len); if (rv == SOCKET_ERROR) { ! if (rv == JVM_IO_ERR) { NET_ThrowNew(env, WSAGetLastError(), "Datagram send failed"); - } else if (rv == JVM_IO_INTR) { - JNU_ThrowByName(env, JNU_JAVAIOPKG "InterruptedIOException", - "operation interrupted"); } } if (length > MAX_BUFFER_LEN) { free(fullPacket); --- 433,444 ---- (*env)->GetByteArrayRegion(env, data, offset, length, (jbyte *)fullPacket); rv = sendto(fd, fullPacket, length, 0, (struct sockaddr *)sap, sa_len); if (rv == SOCKET_ERROR) { ! if (rv == -1) { NET_ThrowNew(env, WSAGetLastError(), "Datagram send failed"); } } if (length > MAX_BUFFER_LEN) { free(fullPacket);