diff options
| author | Antoine Brodin <antoine@FreeBSD.org> | 2021-01-01 10:11:34 +0000 | 
|---|---|---|
| committer | Antoine Brodin <antoine@FreeBSD.org> | 2021-01-01 10:11:34 +0000 | 
| commit | 26b4c8f71f91d22e081b27814782686edde0c90a (patch) | |
| tree | 1c321c39372c25d8634e75b5c8e08edc676b296d /devel/electron4/files/patch-net_socket_udp__socket__posix.cc | |
| parent | New port: math/py-optuna: A hyperparameter optimization framework (diff) | |
Revert r559792 to unbreak INDEX and bulk -a
It seems a lot of reverse dependencies were missed
With hat:	portmgr
Diffstat (limited to 'devel/electron4/files/patch-net_socket_udp__socket__posix.cc')
| -rw-r--r-- | devel/electron4/files/patch-net_socket_udp__socket__posix.cc | 96 | 
1 files changed, 96 insertions, 0 deletions
| diff --git a/devel/electron4/files/patch-net_socket_udp__socket__posix.cc b/devel/electron4/files/patch-net_socket_udp__socket__posix.cc new file mode 100644 index 000000000000..0cd590ef675b --- /dev/null +++ b/devel/electron4/files/patch-net_socket_udp__socket__posix.cc @@ -0,0 +1,96 @@ +--- net/socket/udp_socket_posix.cc.orig	2019-03-15 06:37:30 UTC ++++ net/socket/udp_socket_posix.cc +@@ -68,7 +68,7 @@ const int kActivityMonitorMinimumSamplesForThroughputE + const base::TimeDelta kActivityMonitorMsThreshold = +     base::TimeDelta::FromMilliseconds(100); +  +-#if defined(OS_MACOSX) ++#if defined(OS_MACOSX) || defined(OS_BSD) + // When enabling multicast using setsockopt(IP_MULTICAST_IF) MacOS + // requires passing IPv4 address instead of interface index. This function + // resolves IPv4 address by interface index. The |address| is returned in +@@ -97,7 +97,7 @@ int GetIPv4AddressFromIndex(int socket, uint32_t index +   return OK; + } +  +-#endif  // OS_MACOSX ++#endif  // OS_MACOSX || OS_BSD +  + #if defined(OS_MACOSX) && !defined(OS_IOS) +  +@@ -632,13 +632,13 @@ int UDPSocketPosix::SetDoNotFragment() { + } +  + void UDPSocketPosix::SetMsgConfirm(bool confirm) { +-#if !defined(OS_MACOSX) && !defined(OS_IOS) ++#if !defined(OS_MACOSX) && !defined(OS_IOS) && !defined(OS_BSD) +   if (confirm) { +     sendto_flags_ |= MSG_CONFIRM; +   } else { +     sendto_flags_ &= ~MSG_CONFIRM; +   } +-#endif  // !defined(OS_MACOSX) && !defined(OS_IOS) ++#endif  // !defined(OS_MACOSX) && !defined(OS_IOS) && !defined(OS_BSD) + } +  + int UDPSocketPosix::AllowAddressReuse() { +@@ -653,17 +653,20 @@ int UDPSocketPosix::SetBroadcast(bool broadcast) { +   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); +   int value = broadcast ? 1 : 0; +   int rv; +-#if defined(OS_MACOSX) ++#if defined(OS_MACOSX) || defined(OS_BSD) +   // SO_REUSEPORT on OSX permits multiple processes to each receive +   // UDP multicast or broadcast datagrams destined for the bound +   // port. +   // This is only being set on OSX because its behavior is platform dependent +   // and we are playing it safe by only setting it on platforms where things +   // break. ++  rv = setsockopt(socket_, SOL_SOCKET, SO_REUSEADDR, &value, sizeof(value)); ++  if (rv != 0) ++    return MapSystemError(errno); +   rv = setsockopt(socket_, SOL_SOCKET, SO_REUSEPORT, &value, sizeof(value)); +   if (rv != 0) +     return MapSystemError(errno); +-#endif  // defined(OS_MACOSX) ++#endif  // defined(OS_MACOSX) || defined(OS_BSD) +   rv = setsockopt(socket_, SOL_SOCKET, SO_BROADCAST, &value, sizeof(value)); +  +   return rv == 0 ? OK : MapSystemError(errno); +@@ -901,19 +904,24 @@ int UDPSocketPosix::SetMulticastOptions() { +   if (multicast_interface_ != 0) { +     switch (addr_family_) { +       case AF_INET: { +-#if defined(OS_MACOSX) ++#if defined(OS_MACOSX) || defined(OS_BSD) +         ip_mreq mreq = {}; +         int error = GetIPv4AddressFromIndex(socket_, multicast_interface_, +                                             &mreq.imr_interface.s_addr); +         if (error != OK) +           return error; +-#else   //  defined(OS_MACOSX) ++#else   //  defined(OS_MACOSX) || defined(OS_BSD) +         ip_mreqn mreq = {}; +         mreq.imr_ifindex = multicast_interface_; +         mreq.imr_address.s_addr = htonl(INADDR_ANY); +-#endif  //  !defined(OS_MACOSX) ++#endif  //  !defined(OS_MACOSX) || defined(OS_BSD) +         int rv = setsockopt(socket_, IPPROTO_IP, IP_MULTICAST_IF, ++#ifdef defined(OS_BSD) ++                            reinterpret_cast<const char*>(&mreq.imr_interface.s_addr), ++                            sizeof(mreq.imr_interface.s_addr)); ++#else +                             reinterpret_cast<const char*>(&mreq), sizeof(mreq)); ++#endif +         if (rv) +           return MapSystemError(errno); +         break; +@@ -975,7 +983,7 @@ int UDPSocketPosix::JoinGroup(const IPAddress& group_a +       if (addr_family_ != AF_INET) +         return ERR_ADDRESS_INVALID; +  +-#if defined(OS_MACOSX) ++#if defined(OS_MACOSX) || defined(OS_BSD) +       ip_mreq mreq = {}; +       int error = GetIPv4AddressFromIndex(socket_, multicast_interface_, +                                           &mreq.imr_interface.s_addr); | 
