]> git.ipfire.org Git - location/libloc.git/commitdiff
network: Add function to return the prefix
authorMichael Tremer <michael.tremer@ipfire.org>
Fri, 20 Nov 2020 18:38:47 +0000 (18:38 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 20 Nov 2020 18:38:47 +0000 (18:38 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libloc.sym
src/loc/network.h
src/network.c

index 56cada8e0028f150a410d99429c002824c0f6b46..9f41c89ad1a02a79b1a98d6668fe823816560feb 100644 (file)
@@ -125,6 +125,7 @@ global:
        loc_network_new;
        loc_network_new_from_string;
        loc_network_overlaps;
+       loc_network_prefix;
        loc_network_ref;
        loc_network_set_asn;
        loc_network_set_country_code;
index d67ec54a47d7e07d334c7b2fb3bbfa54dc7a77d5..7b2ae4c6fc3c1718fa9f103cc4895f899c61c2ce 100644 (file)
@@ -38,6 +38,7 @@ struct loc_network* loc_network_ref(struct loc_network* network);
 struct loc_network* loc_network_unref(struct loc_network* network);
 char* loc_network_str(struct loc_network* network);
 int loc_network_address_family(struct loc_network* network);
+unsigned int loc_network_prefix(struct loc_network* network);
 
 const struct in6_addr* loc_network_get_first_address(struct loc_network* network);
 char* loc_network_format_first_address(struct loc_network* network);
index ff9c1eb9373ef70e3eb760e39c9b41903f87a6de..4720503cef893e26a2edd1a827e0f3105cad36e9 100644 (file)
@@ -310,6 +310,18 @@ LOC_EXPORT int loc_network_address_family(struct loc_network* network) {
        return network->family;
 }
 
+LOC_EXPORT unsigned int loc_network_prefix(struct loc_network* network) {
+       switch (network->family) {
+               case AF_INET6:
+                       return network->prefix;
+
+               case AF_INET:
+                       return network->prefix - 96;
+       }
+
+       return 0;
+}
+
 static char* loc_network_format_address(struct loc_network* network, const struct in6_addr* address) {
        const size_t length = INET6_ADDRSTRLEN;