aboutgitcodebugslistschat
diff options
context:
space:
mode:
authorDavid Gibson <david@gibson.dropbear.id.au>2024-10-18 12:35:50 +1100
committerStefano Brivio <sbrivio@redhat.com>2024-10-18 20:27:04 +0200
commitf9d677bff6af48b50f3655224e8b0eb8820d3e89 (patch)
treea4e82af5f4ac755eb910015bc75201c17ff58fb9
parent2d7f734c45c64e9d5ddc408a1e13de7d9942bf42 (diff)
downloadpasst-f9d677bff6af48b50f3655224e8b0eb8820d3e89.tar
passt-f9d677bff6af48b50f3655224e8b0eb8820d3e89.tar.gz
passt-f9d677bff6af48b50f3655224e8b0eb8820d3e89.tar.bz2
passt-f9d677bff6af48b50f3655224e8b0eb8820d3e89.tar.lz
passt-f9d677bff6af48b50f3655224e8b0eb8820d3e89.tar.xz
passt-f9d677bff6af48b50f3655224e8b0eb8820d3e89.tar.zst
passt-f9d677bff6af48b50f3655224e8b0eb8820d3e89.zip
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>
-rw-r--r--arp.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/arp.c b/arp.c
index 53334da..fc482bb 100644
--- a/arp.c
+++ b/arp.c
@@ -59,14 +59,12 @@ int arp(const struct ctx *c, const struct pool *p)
ah->ar_op != htons(ARPOP_REQUEST))
return 1;
- /* Discard announcements (but not 0.0.0.0 "probes"): we might have the
- * same IP address, hide that.
- */
- if (memcmp(am->sip, (unsigned char[4]){ 0 }, sizeof(am->tip)) &&
+ /* Discard announcements, but not 0.0.0.0 "probes" */
+ if (memcmp(am->sip, &in4addr_any, sizeof(am->sip)) &&
!memcmp(am->sip, am->tip, sizeof(am->sip)))
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)))
return 1;