Package: libavahi-core6 Version: 0.6.25-3 Severity: normal Tags: patch Patch "30_dont_reflect_link-local_addresses.patch" added in revision 0.6.25-3 introduced a regression that causes the mDNS response handler to completely ignore records with link-local addresses. To reproduce this bug just try to use avahi-resolve-host-name to lookup an host with a link-local IP address. The attached patch seems to resolve the bug.
The upstream bug report is at: http://avahi.org/ticket/300. Regards, Tommaso Colombo -- System Information: Debian Release: squeeze/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: amd64 (x86_64) Kernel: Linux 2.6.32-trunk-amd64 (SMP w/2 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages libavahi-core6 depends on: ii libavahi-common3 0.6.25-3 Avahi common library ii libc6 2.10.2-5 Embedded GNU C Library: Shared lib libavahi-core6 recommends no packages. libavahi-core6 suggests no packages. -- no debconf information
>From 43ea314b2c548da83cb8c5e3e1d8380bb7ef0e8d Mon Sep 17 00:00:00 2001 From: Tommaso Colombo <[email protected]> Date: Wed, 27 Jan 2010 02:43:11 +0100 Subject: [PATCH] core: Don't ignore records with link-local addresss Fix a regression introduced by commit 2ea7e99ed0dcfd371fef5aeecd3de77da1dfcd4f that caused the mDNS response handler to completely ignore records with link-local addresses. --- avahi-core/server.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/avahi-core/server.c b/avahi-core/server.c index 8955af9..aa3c6b5 100644 --- a/avahi-core/server.c +++ b/avahi-core/server.c @@ -666,10 +666,10 @@ static void handle_response_packet(AvahiServer *s, AvahiDnsPacket *p, AvahiInter break; } - if (!avahi_key_is_pattern(record->key) && !avahi_record_is_link_local_address(record)) { + if (!avahi_key_is_pattern(record->key)) { if (handle_conflict(s, i, record, cache_flush)) { - if (!from_local_iface) + if (!from_local_iface && !avahi_record_is_link_local_address(record)) reflect_response(s, i, record, cache_flush); avahi_cache_update(i->cache, record, cache_flush, a); avahi_response_scheduler_incoming(i->response_scheduler, record, cache_flush); -- 1.6.6

