arp: Fix a handful of small warts
This fixes a number of harmless but slightly ugly warts in the ARP resolution code: * Use in4addr_any to represent 0.0.0.0 rather than hand constructing an example. * When comparing am->sip against 0.0.0.0 use sizeof(am->sip) instead of sizeof(am->tip) (same value, but makes more logical sense) * Described the guest's assigned address as such, rather than as "our address" - that's not usually what we mean by "our address" these days * Remove "we might have the same IP address" comment which I can't make sense of in context (possibly it's relating to the statement below, which already has its own comment?) Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
This commit is contained in:
parent
2d7f734c45
commit
f9d677bff6
1 changed files with 3 additions and 5 deletions
8
arp.c
8
arp.c
|
@ -59,14 +59,12 @@ int arp(const struct ctx *c, const struct pool *p)
|
||||||
ah->ar_op != htons(ARPOP_REQUEST))
|
ah->ar_op != htons(ARPOP_REQUEST))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
/* Discard announcements (but not 0.0.0.0 "probes"): we might have the
|
/* Discard announcements, but not 0.0.0.0 "probes" */
|
||||||
* same IP address, hide that.
|
if (memcmp(am->sip, &in4addr_any, sizeof(am->sip)) &&
|
||||||
*/
|
|
||||||
if (memcmp(am->sip, (unsigned char[4]){ 0 }, sizeof(am->tip)) &&
|
|
||||||
!memcmp(am->sip, am->tip, sizeof(am->sip)))
|
!memcmp(am->sip, am->tip, sizeof(am->sip)))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
/* Don't resolve our own address, either. */
|
/* Don't resolve the guest's assigned address, either. */
|
||||||
if (!memcmp(am->tip, &c->ip4.addr, sizeof(am->tip)))
|
if (!memcmp(am->tip, &c->ip4.addr, sizeof(am->tip)))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue