diff options
author | David Gibson <david@gibson.dropbear.id.au> | 2024-10-18 12:35:50 +1100 |
---|---|---|
committer | Stefano Brivio <sbrivio@redhat.com> | 2024-10-18 20:27:04 +0200 |
commit | f9d677bff6af48b50f3655224e8b0eb8820d3e89 (patch) | |
tree | a4e82af5f4ac755eb910015bc75201c17ff58fb9 | |
parent | 2d7f734c45c64e9d5ddc408a1e13de7d9942bf42 (diff) | |
download | passt-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.c | 8 |
1 files changed, 3 insertions, 5 deletions
@@ -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; |