chiark / gitweb /
sd-dhcp-client/net-util: make netmask_to_prefixlen generic
[elogind.git] / src / shared / net-util.c
index 887dae51251647a16a2e6d1115b7a9c69302fa94..630be18e56ecba042a0e751f326b2fa43f586afb 100644 (file)
@@ -58,6 +58,21 @@ bool net_match_config(const struct ether_addr *match_mac,
         return 1;
 }
 
+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;
+}
+
 int config_parse_ifname(const char *unit,
                         const char *filename,
                         unsigned line,