Skip to content

Commit

Permalink
net/mDNSResponder: Fix build in IPv6 environment
Browse files Browse the repository at this point in the history
- Restore patch-mDNSPosix-mDNSPosix.c which was removed by accident in 1790.80.10 update
- Bump PORTREVISION for package change

PR:		270683, 270689
Reported by:	Matthieu Volat <mazhe@alkumuna.eu>, <dougs@dawnsign.com>
  • Loading branch information
sunpoet committed Apr 9, 2023
1 parent 0976359 commit 440c2c6
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 0 deletions.
1 change: 1 addition & 0 deletions net/mDNSResponder/Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
PORTNAME= mDNSResponder
PORTVERSION= 1790.80.10
PORTREVISION= 1
CATEGORIES= net dns
MASTER_SITES= https://opensource.apple.com/tarballs/mDNSResponder/

Expand Down
38 changes: 38 additions & 0 deletions net/mDNSResponder/files/patch-mDNSPosix-mDNSPosix.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
--- mDNSPosix/mDNSPosix.c.orig 2023-01-24 00:43:17 UTC
+++ mDNSPosix/mDNSPosix.c
@@ -1064,7 +1064,10 @@ mDNSlocal int SetupIPv6Socket(int fd)
{
int err;

- #if defined(IPV6_PKTINFO)
+ #if defined(IPV6_RECVPKTINFO)
+ err = setsockopt(fd, IPPROTO_IPV6, IPV6_RECVPKTINFO, &kOn, sizeof(kOn));
+ if (err < 0) { err = errno; perror("setsockopt - IPV6_RECVPKTINFO"); }
+ #elif defined(IPV6_PKTINFO)
err = setsockopt(fd, IPPROTO_IPV6, IPV6_2292_PKTINFO, &kOn, sizeof(kOn));
if (err < 0) { err = errno; perror("setsockopt - IPV6_PKTINFO"); }
#else
@@ -1135,7 +1138,7 @@ mDNSlocal int SetupSocket(struct sockaddr *intfAddr, m
// to bind to the socket. Our suggestion was to switch the order in which
// SO_REUSEPORT and SO_REUSEADDR was tested so that SO_REUSEADDR stays on
// top and SO_REUSEPORT to be used only if SO_REUSEADDR doesn't exist.
- #if defined(SO_REUSEADDR) && !defined(__MAC_OS_X_VERSION_MIN_REQUIRED)
+ #if defined(SO_REUSEADDR) && !defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && !defined(__FreeBSD__)
err = setsockopt(*sktPtr, SOL_SOCKET, SO_REUSEADDR, &kOn, sizeof(kOn));
#elif defined(SO_REUSEPORT)
err = setsockopt(*sktPtr, SOL_SOCKET, SO_REUSEPORT, &kOn, sizeof(kOn));
@@ -1224,7 +1227,13 @@ mDNSlocal int SetupSocket(struct sockaddr *intfAddr, m
if (err == 0) {
err = SetupIPv6Socket(*sktPtr);
}
- #if defined(IPV6_HOPLIMIT)
+ #if defined(IPV6_RECVHOPLIMIT)
+ if (err == 0)
+ {
+ err = setsockopt(*sktPtr, IPPROTO_IPV6, IPV6_RECVHOPLIMIT, &kOn, sizeof(kOn));
+ if (err < 0) { err = errno; perror("setsockopt - IPV6_RECVHOPLIMIT"); }
+ }
+ #elif defined(IPV6_HOPLIMIT)
if (err == 0)
{
err = setsockopt(*sktPtr, IPPROTO_IPV6, IPV6_2292_HOPLIMIT, &kOn, sizeof(kOn));

0 comments on commit 440c2c6

Please sign in to comment.