summaryrefslogtreecommitdiff
path: root/src/network
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2020-09-30 05:40:14 +0900
committerYu Watanabe <watanabe.yu+github@gmail.com>2020-10-07 02:44:42 +0900
commit064dfb05f0c69800e731d1d2e8acbf09cac36136 (patch)
tree7451d969af948867b94a06b35860271143e8f290 /src/network
parent87851e0feb7e8f164487cb3c8c770583b52a8c57 (diff)
downloadsystemd-064dfb05f0c69800e731d1d2e8acbf09cac36136.tar.gz
network: make prefix_free() and route_prefix_free() return NULL
Diffstat (limited to 'src/network')
-rw-r--r--src/network/networkd-radv.c46
-rw-r--r--src/network/networkd-radv.h9
2 files changed, 27 insertions, 28 deletions
diff --git a/src/network/networkd-radv.c b/src/network/networkd-radv.c
index 003a50b68b..3382fa1f5a 100644
--- a/src/network/networkd-radv.c
+++ b/src/network/networkd-radv.c
@@ -16,9 +16,9 @@
#include "string-table.h"
#include "strv.h"
-void prefix_free(Prefix *prefix) {
+Prefix *prefix_free(Prefix *prefix) {
if (!prefix)
- return;
+ return NULL;
if (prefix->network) {
LIST_REMOVE(prefixes, prefix->network->static_prefixes, prefix);
@@ -33,9 +33,11 @@ void prefix_free(Prefix *prefix) {
network_config_section_free(prefix->section);
sd_radv_prefix_unref(prefix->radv_prefix);
- free(prefix);
+ return mfree(prefix);
}
+DEFINE_NETWORK_SECTION_FUNCTIONS(Prefix, prefix_free);
+
static int prefix_new(Prefix **ret) {
_cleanup_(prefix_freep) Prefix *prefix = NULL;
@@ -101,24 +103,9 @@ static int prefix_new_static(Network *network, const char *filename,
return 0;
}
-static int route_prefix_new(RoutePrefix **ret) {
- _cleanup_(route_prefix_freep) RoutePrefix *prefix = NULL;
-
- prefix = new0(RoutePrefix, 1);
- if (!prefix)
- return -ENOMEM;
-
- if (sd_radv_route_prefix_new(&prefix->radv_route_prefix) < 0)
- return -ENOMEM;
-
- *ret = TAKE_PTR(prefix);
-
- return 0;
-}
-
-void route_prefix_free(RoutePrefix *prefix) {
+RoutePrefix *route_prefix_free(RoutePrefix *prefix) {
if (!prefix)
- return;
+ return NULL;
if (prefix->network) {
LIST_REMOVE(route_prefixes, prefix->network->static_route_prefixes, prefix);
@@ -133,7 +120,24 @@ void route_prefix_free(RoutePrefix *prefix) {
network_config_section_free(prefix->section);
sd_radv_route_prefix_unref(prefix->radv_route_prefix);
- free(prefix);
+ return mfree(prefix);
+}
+
+DEFINE_NETWORK_SECTION_FUNCTIONS(RoutePrefix, route_prefix_free);
+
+static int route_prefix_new(RoutePrefix **ret) {
+ _cleanup_(route_prefix_freep) RoutePrefix *prefix = NULL;
+
+ prefix = new0(RoutePrefix, 1);
+ if (!prefix)
+ return -ENOMEM;
+
+ if (sd_radv_route_prefix_new(&prefix->radv_route_prefix) < 0)
+ return -ENOMEM;
+
+ *ret = TAKE_PTR(prefix);
+
+ return 0;
}
static int route_prefix_new_static(Network *network, const char *filename,
diff --git a/src/network/networkd-radv.h b/src/network/networkd-radv.h
index 496ef97adc..7addf45e94 100644
--- a/src/network/networkd-radv.h
+++ b/src/network/networkd-radv.h
@@ -42,13 +42,8 @@ struct RoutePrefix {
LIST_FIELDS(RoutePrefix, route_prefixes);
};
-void prefix_free(Prefix *prefix);
-
-DEFINE_NETWORK_SECTION_FUNCTIONS(Prefix, prefix_free);
-
-void route_prefix_free(RoutePrefix *prefix);
-
-DEFINE_NETWORK_SECTION_FUNCTIONS(RoutePrefix, route_prefix_free);
+Prefix *prefix_free(Prefix *prefix);
+RoutePrefix *route_prefix_free(RoutePrefix *prefix);
int radv_emit_dns(Link *link);
int radv_configure(Link *link);