[prev in list] [next in list] [prev in thread] [next in thread]
List: freedesktop-avahi
Subject: [avahi] [PATCH] avahi-autoipd: only consider ARP Probe packets
From: Christian Hitz <christian.hitz () digitalstrom ! com>
Date: 2014-03-12 12:57:47
Message-ID: 532059CB.9050803 () digitalstrom ! com
[Download RAW message or body]
Hi,
we noticed that avahi-autoipd selects a new IP when it receives an ARP
request during the probe phase.
According to RFC3927, Section 2.2.1. Probe details:
> An ARP Request constructed this way with an all-zero 'sender IP
> address' is referred to as an "ARP Probe".
and
> In addition, if during this period [checking if an address is already
> in use] the host receives any ARP Probe where the packet's 'target IP
> address' is the address being probed for, and the packet's 'sender
> hardware address' is not the hardware address of the interface the
> host is attempting to configure, then the host MUST similarly treat
> this as an address conflict and select a new address as above.
When receiving an ARP packet during probe avahi-autoipd does not check
if the 'sender IP address' is all-zero and therefore if the packet is an
ARP Probe.
The attached patch adds this check.
Regards,
Christian
--
Christian Hitz digitalSTROM ag, Schlieren, Switzerland
Software Development http://www.digitalstrom.com
["avahi-autoipd-probe-check.patch" (text/x-patch)]
diff -Naur avahi-0.6.31-prog/avahi-autoipd/main.c avahi-0.6.31/avahi-autoipd/main.c
--- avahi-0.6.31-prog/avahi-autoipd/main.c 2010-08-26 02:51:38.961153000 +0200
+++ avahi-0.6.31/avahi-autoipd/main.c 2014-03-12 11:27:00.551821502 +0100
@@ -1230,7 +1230,7 @@
} 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); + conflict = \
info.target_ip_address == addr && memcmp(hw_address, info.sender_hw_address, \
ETHER_ADDRLEN) && info.sender_ip_address == 0;
if (conflict)
daemon_log(LOG_INFO, "Received conflicting probe ARP \
packet.");
_______________________________________________
avahi mailing list
avahi@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/avahi
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic