diff --git a/src/network/networkd-util.c b/src/network/networkd-util.c index ce9319d942..bae4ee5cba 100644 --- a/src/network/networkd-util.c +++ b/src/network/networkd-util.c @@ -151,3 +151,15 @@ int network_config_section_new(const char *filename, unsigned line, NetworkConfi void network_config_section_free(NetworkConfigSection *cs) { free(cs); } + +unsigned hashmap_find_free_section_line(Hashmap *hashmap) { + NetworkConfigSection *cs; + unsigned n = 0; + void *entry; + + HASHMAP_FOREACH_KEY(entry, cs, hashmap) + if (n < cs->line) + n = cs->line; + + return n + 1; +} diff --git a/src/network/networkd-util.h b/src/network/networkd-util.h index 2b6541d57e..ce169fa731 100644 --- a/src/network/networkd-util.h +++ b/src/network/networkd-util.h @@ -5,7 +5,7 @@ #include "sd-netlink.h" #include "conf-parser.h" -#include "hash-funcs.h" +#include "hashmap.h" #include "log.h" #include "macro.h" #include "string-util.h" @@ -52,6 +52,7 @@ int network_config_section_new(const char *filename, unsigned line, NetworkConfi void network_config_section_free(NetworkConfigSection *network); DEFINE_TRIVIAL_CLEANUP_FUNC(NetworkConfigSection*, network_config_section_free); extern const struct hash_ops network_config_hash_ops; +unsigned hashmap_find_free_section_line(Hashmap *hashmap); static inline bool section_is_invalid(NetworkConfigSection *section) { /* If this returns false, then it does _not_ mean the section is valid. */