diff options
author | Joe Marcus Clarke <marcus@FreeBSD.org> | 2008-04-05 20:09:08 +0000 |
---|---|---|
committer | Joe Marcus Clarke <marcus@FreeBSD.org> | 2008-04-05 20:09:08 +0000 |
commit | 4a4ddf8f4aa58cd43a9f54b962d7d8aaa641c564 (patch) | |
tree | 85fa39ff1a9ecbfc092c157fc1f70b71231e16cd /net | |
parent | 009ec786da7019102fa0bb068bc68b5734d1ca3c (diff) | |
download | ports-4a4ddf8f4aa58cd43a9f54b962d7d8aaa641c564.tar.gz ports-4a4ddf8f4aa58cd43a9f54b962d7d8aaa641c564.zip |
Notes
Diffstat (limited to 'net')
-rw-r--r-- | net/avahi-app/Makefile | 2 | ||||
-rw-r--r-- | net/avahi-app/files/patch-avahi-core_iface-pfroute.c | 32 |
2 files changed, 33 insertions, 1 deletions
diff --git a/net/avahi-app/Makefile b/net/avahi-app/Makefile index 3bd79b734dd2..484d3b5bd80d 100644 --- a/net/avahi-app/Makefile +++ b/net/avahi-app/Makefile @@ -8,7 +8,7 @@ PORTNAME= avahi PORTVERSION= 0.6.22 -PORTREVISION?= 2 +PORTREVISION?= 3 CATEGORIES?= net dns MASTER_SITES= http://www.avahi.org/download/ PKGNAMESUFFIX?= -app diff --git a/net/avahi-app/files/patch-avahi-core_iface-pfroute.c b/net/avahi-app/files/patch-avahi-core_iface-pfroute.c new file mode 100644 index 000000000000..59b5f601f284 --- /dev/null +++ b/net/avahi-app/files/patch-avahi-core_iface-pfroute.c @@ -0,0 +1,32 @@ +--- avahi-core/iface-pfroute.c.orig 2008-04-05 15:54:11.000000000 -0400 ++++ avahi-core/iface-pfroute.c 2008-04-05 16:04:04.000000000 -0400 +@@ -172,6 +177,13 @@ static void rtm_addr(struct rt_msghdr *r + break; + case RTA_IFA: + memcpy(raddr.data.data, &((struct sockaddr_in6 *)sa)->sin6_addr, sizeof(struct in6_addr)); ++#ifdef __KAME__ ++ if (IN6_IS_ADDR_LINKLOCAL((struct in6_addr *)raddr.data.data)) ++ { ++ ((struct in6_addr *)raddr.data.data)->s6_addr[2] = 0; ++ ((struct in6_addr *)raddr.data.data)->s6_addr[3] = 0; ++ } ++#endif + raddr_valid = 1; + default: + break; +@@ -196,9 +207,12 @@ static void rtm_addr(struct rt_msghdr *r + if (!(addriface = avahi_interface_monitor_get_address(m, iface, &raddr))) + if (!(addriface = avahi_interface_address_new(m, iface, &raddr, prefixlen))) + return; /* OOM */ +- /* FIXME */ +- /* addriface->global_scope = ifaddrmsg->ifa_scope == RT_SCOPE_UNIVERSE || ifaddrmsg->ifa_scope == RT_SCOPE_SITE; */ +- addriface->global_scope = 1; ++ if (raddr.proto == AVAHI_PROTO_INET6) ++ { ++ addriface->global_scope = !(IN6_IS_ADDR_LINKLOCAL((struct in6_addr *)raddr.data.data) || IN6_IS_ADDR_MULTICAST((struct in6_addr *)raddr.data.data)); ++ } ++ else ++ addriface->global_scope = 1; + } + else + { |