src/java.base/windows/native/libnet/TwoStacksPlainDatagramSocketImpl.c
Print this page
*** 43,52 ****
--- 43,53 ----
#include "java_net_SocketOptions.h"
#include "java_net_NetworkInterface.h"
#include "NetworkInterface.h"
#include "jvm.h"
+ #include "jdk_strerror.h"
#include "jni_util.h"
#include "net_util.h"
#define IN_CLASSD(i) (((long)(i) & 0xf0000000) == 0xe0000000)
#define IN_MULTICAST(i) IN_CLASSD(i)
*** 2166,2175 ****
--- 2167,2177 ----
Java_java_net_TwoStacksPlainDatagramSocketImpl_socketGetOption(JNIEnv *env, jobject this,
jint opt) {
int fd=-1, fd1=-1;
int level, optname, optlen;
+ char buf[1024];
union {
int i;
} optval = {0};
int ipv6_supported = ipv6_available();
*** 2209,2220 ****
fd = fd1; /* must be IPv6 only */
}
optlen = sizeof(optval.i);
if (NET_GetSockOpt(fd, level, optname, (void *)&optval, &optlen) < 0) {
! char errmsg[255];
! sprintf(errmsg, "error getting socket option: %s\n", strerror(errno));
JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException", errmsg);
return NULL;
}
switch (opt) {
--- 2211,2224 ----
fd = fd1; /* must be IPv6 only */
}
optlen = sizeof(optval.i);
if (NET_GetSockOpt(fd, level, optname, (void *)&optval, &optlen) < 0) {
! int size = 0;
! char errmsg[300];
! jdk_strerror(errno, buf, (size_t) 255);
! sprintf(errmsg, "error getting socket option: %s\n", buf);
JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException", errmsg);
return NULL;
}
switch (opt) {