freebsd-ports/net/mDNSResponder/files/patch-mDNSPosix-mDNSPosix.c
Sunpoet Po-Chuan Hsieh f3f7084ad6 - Update to 567
- Cleanup Makefile
- Regenerate patch files
2015-04-26 12:27:39 +00:00

40 lines
1.5 KiB
C

--- mDNSPosix/mDNSPosix.c.orig 2015-03-02 19:24:41 UTC
+++ mDNSPosix/mDNSPosix.c
@@ -516,6 +516,7 @@ mDNSexport int ParseDNSServers(mDNS *m,
numOfServers++;
}
}
+ fclose(fp);
return (numOfServers > 0) ? 0 : -1;
}
@@ -740,7 +741,13 @@ mDNSlocal int SetupSocket(struct sockadd
{
struct ipv6_mreq imr6;
struct sockaddr_in6 bindAddr6;
- #if defined(IPV6_PKTINFO)
+ #if defined(IPV6_RECVPKTINFO)
+ if (err == 0)
+ {
+ err = setsockopt(*sktPtr, IPPROTO_IPV6, IPV6_RECVPKTINFO, &kOn, sizeof(kOn));
+ if (err < 0) { err = errno; perror("setsockopt - IPV6_RECVPKTINFO"); }
+ }
+ #elif defined(IPV6_PKTINFO)
if (err == 0)
{
err = setsockopt(*sktPtr, IPPROTO_IPV6, IPV6_2292_PKTINFO, &kOn, sizeof(kOn));
@@ -749,7 +756,13 @@ mDNSlocal int SetupSocket(struct sockadd
#else
#warning This platform has no way to get the destination interface information for IPv6 -- will only work for single-homed hosts
#endif
- #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));