< prev index next >
src/java.base/unix/native/libnet/PlainDatagramSocketImpl.c
Print this page
rev 59383 : [mq]: final
*** 1,7 ****
/*
! * Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
--- 1,7 ----
/*
! * Copyright (c) 1997, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
*** 25,38 ****
#include <errno.h>
#include <stdlib.h>
#include <string.h>
#include <sys/ioctl.h>
- #if defined(__solaris__)
- #include <sys/filio.h>
- #endif
-
#include "net_util.h"
#include "java_net_PlainDatagramSocketImpl.h"
#include "java_net_InetAddress.h"
#include "java_net_NetworkInterface.h"
--- 25,34 ----
*** 50,65 ****
#ifndef IP_MULTICAST_ALL
#define IP_MULTICAST_ALL 49
#endif
#endif // __linux__
- #ifdef __solaris__
- #ifndef BSD_COMP
- #define BSD_COMP
- #endif
- #endif
-
#ifndef IPTOS_TOS_MASK
#define IPTOS_TOS_MASK 0x1e
#endif
#ifndef IPTOS_PREC_MASK
#define IPTOS_PREC_MASK 0xe0
--- 46,55 ----
*** 496,513 ****
}
n = NET_RecvFrom(fd, buf, 1, MSG_PEEK, &rmtaddr.sa, &slen);
if (n == -1) {
-
- #ifdef __solaris__
- if (errno == ECONNREFUSED) {
- int orig_errno = errno;
- recv(fd, buf, 1, 0);
- errno = orig_errno;
- }
- #endif
if (errno == ECONNREFUSED) {
JNU_ThrowByName(env, JNU_JAVANETPKG "PortUnreachableException",
"ICMP Port Unreachable");
} else {
if (errno == EBADF) {
--- 486,495 ----
*** 630,647 ****
/* truncate the data if the packet's length is too small */
if (n > packetBufferLen) {
n = packetBufferLen;
}
if (n == -1) {
-
- #ifdef __solaris__
- if (errno == ECONNREFUSED) {
- int orig_errno = errno;
- (void) recv(fd, fullPacket, 1, 0);
- errno = orig_errno;
- }
- #endif
(*env)->SetIntField(env, packet, dp_offsetID, 0);
(*env)->SetIntField(env, packet, dp_lengthID, 0);
if (errno == ECONNREFUSED) {
JNU_ThrowByName(env, JNU_JAVANETPKG "PortUnreachableException",
"ICMP Port Unreachable");
--- 612,621 ----
*** 1851,1864 ****
*
* On Linux with IPv6 if we wish to join/leave an IPv4 multicast group then
* we must use the IPv4 socket options. This is because the IPv6 socket options
* don't support IPv4-mapped addresses. This is true as per 2.2.19 and 2.4.7
* kernel releases. In the future it's possible that IP_ADD_MEMBERSHIP
! * will be updated to return ENOPROTOOPT if uses with an IPv6 socket (Solaris
! * already does this). Thus to cater for this we first try with the IPv4
! * socket options and if they fail we use the IPv6 socket options. This
! * seems a reasonable failsafe solution.
*/
static void mcast_join_leave(JNIEnv *env, jobject this,
jobject iaObj, jobject niObj,
jboolean join) {
--- 1825,1837 ----
*
* On Linux with IPv6 if we wish to join/leave an IPv4 multicast group then
* we must use the IPv4 socket options. This is because the IPv6 socket options
* don't support IPv4-mapped addresses. This is true as per 2.2.19 and 2.4.7
* kernel releases. In the future it's possible that IP_ADD_MEMBERSHIP
! * will be updated to return ENOPROTOOPT if uses with an IPv6 socket. Thus to
! * cater for this we first try with the IPv4 socket options and if they fail we
! * use the IPv6 socket options. This seems a reasonable failsafe solution.
*/
static void mcast_join_leave(JNIEnv *env, jobject this,
jobject iaObj, jobject niObj,
jboolean join) {
< prev index next >