]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network: make fdb_entry_free() return NULL
authorYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 29 Sep 2020 16:53:16 +0000 (01:53 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 6 Oct 2020 17:44:42 +0000 (02:44 +0900)
src/network/networkd-fdb.c
src/network/networkd-fdb.h

index 628c3988accd5db2d1b7f2d6c3c16844179e7e00..43aaebb285c7784c1174c3a1d2f06bc38df2853b 100644 (file)
@@ -30,6 +30,26 @@ static const char* const fdb_ntf_flags_table[_NEIGHBOR_CACHE_ENTRY_FLAGS_MAX] =
 
 DEFINE_STRING_TABLE_LOOKUP(fdb_ntf_flags, NeighborCacheEntryFlags);
 
+/* remove and FDB entry. */
+FdbEntry *fdb_entry_free(FdbEntry *fdb_entry) {
+        if (!fdb_entry)
+                return NULL;
+
+        if (fdb_entry->network) {
+                LIST_REMOVE(static_fdb_entries, fdb_entry->network->static_fdb_entries, fdb_entry);
+                assert(fdb_entry->network->n_static_fdb_entries > 0);
+                fdb_entry->network->n_static_fdb_entries--;
+
+                if (fdb_entry->section)
+                        hashmap_remove(fdb_entry->network->fdb_entries_by_section, fdb_entry->section);
+        }
+
+        network_config_section_free(fdb_entry->section);
+        return mfree(fdb_entry);
+}
+
+DEFINE_NETWORK_SECTION_FUNCTIONS(FdbEntry, fdb_entry_free);
+
 /* create a new FDB entry or get an existing one. */
 static int fdb_entry_new_static(
                 Network *network,
@@ -171,24 +191,6 @@ int fdb_entry_configure(Link *link, FdbEntry *fdb_entry) {
         return 1;
 }
 
-/* remove and FDB entry. */
-void fdb_entry_free(FdbEntry *fdb_entry) {
-        if (!fdb_entry)
-                return;
-
-        if (fdb_entry->network) {
-                LIST_REMOVE(static_fdb_entries, fdb_entry->network->static_fdb_entries, fdb_entry);
-                assert(fdb_entry->network->n_static_fdb_entries > 0);
-                fdb_entry->network->n_static_fdb_entries--;
-
-                if (fdb_entry->section)
-                        hashmap_remove(fdb_entry->network->fdb_entries_by_section, fdb_entry->section);
-        }
-
-        network_config_section_free(fdb_entry->section);
-        free(fdb_entry);
-}
-
 /* parse the HW address from config files. */
 int config_parse_fdb_hwaddr(
                 const char *unit,
index f607dfc70f0db9612b09aabad6f97ed9414341a8..521376cb864053245339e948d39318f263343ad8 100644 (file)
@@ -43,11 +43,9 @@ struct FdbEntry {
         LIST_FIELDS(FdbEntry, static_fdb_entries);
 };
 
-void fdb_entry_free(FdbEntry *fdb_entry);
+FdbEntry *fdb_entry_free(FdbEntry *fdb_entry);
 int fdb_entry_configure(Link *link, FdbEntry *fdb_entry);
 
-DEFINE_NETWORK_SECTION_FUNCTIONS(FdbEntry, fdb_entry_free);
-
 const char* fdb_ntf_flags_to_string(NeighborCacheEntryFlags i) _const_;
 NeighborCacheEntryFlags fdb_ntf_flags_from_string(const char *s) _pure_;