X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fshared%2Fnet-util.c;h=ba21ae437f3da968aae980c584a32c07a0ffca1c;hp=630be18e56ecba042a0e751f326b2fa43f586afb;hb=b6e2f3293d0f9a821819d96038eec2a19062151f;hpb=377a218f876507fb8be9c21ef4121fa2576ec317 diff --git a/src/shared/net-util.c b/src/shared/net-util.c index 630be18e5..ba21ae437 100644 --- a/src/shared/net-util.c +++ b/src/shared/net-util.c @@ -59,18 +59,9 @@ bool net_match_config(const struct ether_addr *match_mac, } unsigned net_netmask_to_prefixlen(const struct in_addr *addr) { - unsigned len = 0; - uint32_t mask; - assert(addr); - mask = be32toh(addr->s_addr); - while (mask) { - len++; - mask = mask << 1; - } - - return len; + return 32 - u32ctz(be32toh(addr->s_addr)); } int config_parse_ifname(const char *unit,