#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);
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;
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);
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,
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);