From c5ef344e39fd7e169a31e2353ba09a8870768502 Mon Sep 17 00:00:00 2001 From: Nathaniel McCallum Date: Fri, 25 Jun 2010 21:18:14 +0200 Subject: [PATCH] autoipd: don't consider packets with out own MAC as source as conflicting. See #265 --- avahi-autoipd/main.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/avahi-autoipd/main.c b/avahi-autoipd/main.c index 380ab94..edf2cd1 100644 --- a/avahi-autoipd/main.c +++ b/avahi-autoipd/main.c @@ -1242,9 +1242,14 @@ static int loop(int iface, uint32_t addr) { int conflict = 0; if (info.sender_ip_address == addr) { - /* Normal conflict */ - conflict = 1; - daemon_log(LOG_INFO, "Received conflicting normal ARP packet."); + + if (memcmp(hw_address, info.sender_hw_address, ETHER_ADDRLEN)) { + /* Normal conflict */ + conflict = 1; + daemon_log(LOG_INFO, "Received conflicting normal ARP packet."); + } else + daemon_log(LOG_DEBUG, "Received ARP packet back on source interface. Ignoring."); + } else if (state == STATE_WAITING_PROBE || state == STATE_PROBING || state == STATE_WAITING_ANNOUNCE) { /* Probe conflict */ conflict = info.target_ip_address == addr && memcmp(hw_address, info.sender_hw_address, ETHER_ADDRLEN); -- 2.39.5