aboutgitcodebugslistschat
diff options
context:
space:
mode:
-rw-r--r--conf.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/conf.c b/conf.c
index cc08de3..bc8851f 100644
--- a/conf.c
+++ b/conf.c
@@ -672,7 +672,7 @@ static void conf_ip(struct ctx *c)
memcpy(&c->addr4_seen, &c->addr4, sizeof(c->addr4_seen));
- if (!memcmp(c->mac, MAC_ZERO, ETH_ALEN))
+ if (MAC_IS_ZERO(c->mac))
nl_link(0, c->ifi4, c->mac, 0, 0);
}
@@ -691,17 +691,20 @@ static void conf_ip(struct ctx *c)
memcpy(&c->addr6_seen, &c->addr6, sizeof(c->addr6));
memcpy(&c->addr6_ll_seen, &c->addr6_ll, sizeof(c->addr6_ll));
+
+ if (MAC_IS_ZERO(c->mac))
+ nl_link(0, c->ifi6, c->mac, 0, 0);
}
- if (!c->gw4 || !c->addr4 ||
- !memcmp(c->mac, ((uint8_t [ETH_ALEN]){ 0 }), ETH_ALEN))
+ if (!c->gw4 || !c->addr4 || MAC_IS_ZERO(c->mac))
v4 = IP_VERSION_DISABLED;
else
v4 = IP_VERSION_ENABLED;
if (IN6_IS_ADDR_UNSPECIFIED(&c->gw6) ||
IN6_IS_ADDR_UNSPECIFIED(&c->addr6) ||
- IN6_IS_ADDR_UNSPECIFIED(&c->addr6_ll))
+ IN6_IS_ADDR_UNSPECIFIED(&c->addr6_ll) ||
+ MAC_IS_ZERO(c->mac))
v6 = IP_VERSION_DISABLED;
else
v6 = IP_VERSION_ENABLED;
@@ -905,12 +908,12 @@ static void conf_print(const struct ctx *c)
if (c->mode == MODE_PASTA)
info("Namespace interface: %s", c->pasta_ifn);
- if (c->v4) {
- info("ARP:");
- info(" address: %02x:%02x:%02x:%02x:%02x:%02x",
- c->mac[0], c->mac[1], c->mac[2],
- c->mac[3], c->mac[4], c->mac[5]);
+ info("MAC:");
+ info(" host: %02x:%02x:%02x:%02x:%02x:%02x",
+ c->mac[0], c->mac[1], c->mac[2],
+ c->mac[3], c->mac[4], c->mac[5]);
+ if (c->v4) {
if (!c->no_dhcp) {
info("DHCP:");
info(" assign: %s",