conf: Given IPv4 address and no netmask, assign RFC 790-style classes
Provide a sane default, instead of /0, if an address is given, and it doesn't correspond to any host address we could find via netlink. Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
This commit is contained in:
parent
eb18f862cb
commit
01ae772dcc
1 changed files with 10 additions and 10 deletions
20
conf.c
20
conf.c
|
@ -468,17 +468,17 @@ static void conf_ip(struct ctx *c)
|
||||||
|
|
||||||
nl_addr(0, c->ifi, AF_INET, &c->addr4, &mask_len, NULL);
|
nl_addr(0, c->ifi, AF_INET, &c->addr4, &mask_len, NULL);
|
||||||
c->mask4 = htonl(0xffffffff << (32 - mask_len));
|
c->mask4 = htonl(0xffffffff << (32 - mask_len));
|
||||||
|
}
|
||||||
|
|
||||||
if (!c->mask4) {
|
if (!c->mask4) {
|
||||||
if (IN_CLASSA(ntohl(c->addr4)))
|
if (IN_CLASSA(ntohl(c->addr4)))
|
||||||
c->mask4 = htonl(IN_CLASSA_NET);
|
c->mask4 = htonl(IN_CLASSA_NET);
|
||||||
else if (IN_CLASSB(ntohl(c->addr4)))
|
else if (IN_CLASSB(ntohl(c->addr4)))
|
||||||
c->mask4 = htonl(IN_CLASSB_NET);
|
c->mask4 = htonl(IN_CLASSB_NET);
|
||||||
else if (IN_CLASSC(ntohl(c->addr4)))
|
else if (IN_CLASSC(ntohl(c->addr4)))
|
||||||
c->mask4 = htonl(IN_CLASSC_NET);
|
c->mask4 = htonl(IN_CLASSC_NET);
|
||||||
else
|
else
|
||||||
c->mask4 = 0xffffffff;
|
c->mask4 = 0xffffffff;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
memcpy(&c->addr4_seen, &c->addr4, sizeof(c->addr4_seen));
|
memcpy(&c->addr4_seen, &c->addr4, sizeof(c->addr4_seen));
|
||||||
|
|
Loading…
Reference in a new issue