src/java.base/unix/native/libnet/PlainDatagramSocketImpl.c
Print this page
@@ -916,10 +916,11 @@
JNIEXPORT void JNICALL
Java_java_net_PlainDatagramSocketImpl_datagramSocketCreate(JNIEnv *env,
jobject this) {
jobject fdObj = (*env)->GetObjectField(env, this, pdsi_fdID);
int arg, fd, t = 1;
+ char tmpbuf[1024];
#ifdef AF_INET6
int domain = ipv6_available() ? AF_INET6 : AF_INET;
#else
int domain = AF_INET;
#endif
@@ -951,37 +952,39 @@
#ifdef __APPLE__
arg = 65507;
if (setsockopt(fd, SOL_SOCKET, SO_SNDBUF,
(char *)&arg, sizeof(arg)) < 0) {
- JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException",
- strerror(errno));
+ getErrorString(errno, tmpbuf, sizeof(tmpbuf));
+ JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException", tmpbuf);
close(fd);
return;
}
if (setsockopt(fd, SOL_SOCKET, SO_RCVBUF,
(char *)&arg, sizeof(arg)) < 0) {
- JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException",
- strerror(errno));
+ getErrorString(errno, tmpbuf, sizeof(tmpbuf));
+ JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException", tmpbuf);
close(fd);
return;
}
#endif /* __APPLE__ */
if (setsockopt(fd, SOL_SOCKET, SO_BROADCAST, (char*) &t, sizeof (int)) < 0) {
- JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException", strerror(errno));
+ getErrorString(errno, tmpbuf, sizeof(tmpbuf));
+ JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException", tmpbuf);
close(fd);
return;
}
#if defined(__linux__)
arg = 0;
int level = (domain == AF_INET6) ? IPPROTO_IPV6 : IPPROTO_IP;
if ((setsockopt(fd, level, IP_MULTICAST_ALL, (char*)&arg, sizeof(arg)) < 0) &&
- (errno != ENOPROTOOPT)) {
- JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException",
- strerror(errno));
+ (errno != ENOPROTOOPT))
+ {
+ getErrorString(errno, tmpbuf, sizeof(tmpbuf));
+ JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException", tmpbuf);
close(fd);
return;
}
#endif
@@ -992,11 +995,12 @@
*/
if (domain == AF_INET6) {
int ttl = 1;
if (setsockopt(fd, IPPROTO_IPV6, IPV6_MULTICAST_HOPS, (char *) &ttl,
sizeof (ttl)) < 0) {
- JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException", strerror(errno));
+ getErrorString(errno, tmpbuf, sizeof(tmpbuf));
+ JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException", tmpbuf);
close(fd);
return;
}
}
#endif /* __linux__ */