summaryrefslogtreecommitdiff
path: root/src/network/networkd-ipv4ll.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/network/networkd-ipv4ll.c')
-rw-r--r--src/network/networkd-ipv4ll.c77
1 files changed, 9 insertions, 68 deletions
diff --git a/src/network/networkd-ipv4ll.c b/src/network/networkd-ipv4ll.c
index 295abe866e..598af25de6 100644
--- a/src/network/networkd-ipv4ll.c
+++ b/src/network/networkd-ipv4ll.c
@@ -142,25 +142,6 @@ static void ipv4ll_handler(sd_ipv4ll *ll, int event, void *userdata) {
}
}
-static int ipv4ll_init(Link *link) {
- int r;
-
- assert(link);
-
- if (link->ipv4ll)
- return 0;
-
- r = sd_ipv4ll_new(&link->ipv4ll);
- if (r < 0)
- return r;
-
- r = sd_ipv4ll_attach_event(link->ipv4ll, link->manager->event, 0);
- if (r < 0)
- return r;
-
- return 0;
-}
-
int ipv4ll_configure(Link *link) {
uint64_t seed;
int r;
@@ -170,9 +151,15 @@ int ipv4ll_configure(Link *link) {
if (!link_ipv4ll_enabled(link, ADDRESS_FAMILY_IPV4 | ADDRESS_FAMILY_FALLBACK_IPV4))
return 0;
- r = ipv4ll_init(link);
- if (r < 0)
- return r;
+ if (!link->ipv4ll) {
+ r = sd_ipv4ll_new(&link->ipv4ll);
+ if (r < 0)
+ return r;
+
+ r = sd_ipv4ll_attach_event(link->ipv4ll, link->manager->event, 0);
+ if (r < 0)
+ return r;
+ }
if (link->sd_device &&
net_get_unique_predictable_data(link->sd_device, true, &seed) >= 0) {
@@ -224,52 +211,6 @@ int ipv4ll_update_mac(Link *link) {
return 0;
}
-int link_serialize_ipv4ll(Link *link, FILE *f) {
- struct in_addr address;
- int r;
-
- assert(link);
-
- if (!link->ipv4ll)
- return 0;
-
- r = sd_ipv4ll_get_address(link->ipv4ll, &address);
- if (r == -ENOENT)
- return 0;
- if (r < 0)
- return r;
-
- fputs("IPV4LL_ADDRESS=", f);
- serialize_in_addrs(f, &address, 1, false, NULL);
- fputc('\n', f);
-
- return 0;
-}
-
-int link_deserialize_ipv4ll(Link *link, const char *ipv4ll_address) {
- union in_addr_union address;
- int r;
-
- assert(link);
-
- if (isempty(ipv4ll_address))
- return 0;
-
- r = in_addr_from_string(AF_INET, ipv4ll_address, &address);
- if (r < 0)
- return log_link_debug_errno(link, r, "Failed to parse IPv4LL address: %s", ipv4ll_address);
-
- r = ipv4ll_init(link);
- if (r < 0)
- return log_link_debug_errno(link, r, "Failed to initialize IPv4LL client: %m");
-
- r = sd_ipv4ll_set_address(link->ipv4ll, &address.in);
- if (r < 0)
- return log_link_debug_errno(link, r, "Failed to set initial IPv4LL address %s: %m", ipv4ll_address);
-
- return 0;
-}
-
int config_parse_ipv4ll(
const char* unit,
const char *filename,