Hi,

>>>>> On Fri, 04 Apr 2008 11:20:43 +0530
>>>>> Ashish Shukla आशीष शुक्ल <[EMAIL PROTECTED]> said:

wahjava> I noticed that avahi-resolve is returning incorrect IPv6 link-local
wahjava> address for a local interface.

wahjava> I tried looking up for the issue myself, but I'm not familiar with the
wahjava> interface, avahi is using to lookup interface's address.

wahjava> ---->8---->8----
wahjava> [EMAIL PROTECTED] ~/ports/avahi-app]$ ifconfig rl0
wahjava> rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 
1500
wahjava>         options=8<VLAN_MTU>
wahjava>         ether 00:1b:38:ea:5c:76
wahjava>         inet6 fe80::21b:38ff:feea:5c76%rl0 prefixlen 64 scopeid 0x1 
wahjava>         inet 172.16.0.7 netmask 0xffffffe0 broadcast 172.16.0.31
wahjava>         inet6 fdxx:xxxx:xxxx::yyyy prefixlen 48 
wahjava>         media: Ethernet autoselect (100baseTX <full-duplex>)
wahjava>         status: active
wahjava> [EMAIL PROTECTED] ~/ports/avahi-app]$ avahi-resolve -6 -n 
monte-cristo.local
wahjava> monte-cristo.local      fe80:1::21b:38ff:feea:5c76
wahjava> [EMAIL PROTECTED] ~/ports/avahi-app]$ uname -a
wahjava> FreeBSD monte-cristo.fr 7.0-RELEASE FreeBSD 7.0-RELEASE #0: Sun Mar 30
wahjava> 12:05:36 IST 2008     [EMAIL PROTECTED]:/usr/obj/usr/src/sys/ULE
wahjava> amd64 
wahjava> ----8<----8<----

wahjava> Can anyone else confirm this ? Or problem with my configuration, 
hmm...?

It seems a KAME specific embedded scope-id is exposed.  Pleased try
the attached patch.

Sincerely,
Index: avahi-core/iface-pfroute.c
diff -u -p avahi-core/iface-pfroute.c.orig avahi-core/iface-pfroute.c
--- avahi-core/iface-pfroute.c.orig	2007-09-03 21:32:41.000000000 +0900
+++ avahi-core/iface-pfroute.c	2008-04-06 03:06:24.000000000 +0900
@@ -172,6 +172,12 @@ 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;
--
Hajimu UMEMOTO @ Internet Mutual Aid Society Yokohama, Japan
[EMAIL PROTECTED]  [EMAIL PROTECTED],jp.}FreeBSD.org
http://www.imasy.org/~ume/
_______________________________________________
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to