]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network: introduce link_serialize_dhcp6_client()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 2 Oct 2020 11:15:44 +0000 (20:15 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 6 Oct 2020 17:50:50 +0000 (02:50 +0900)
src/network/networkd-dhcp6.c
src/network/networkd-dhcp6.h
src/network/networkd-link.c

index 4b99c5f30843b74441c6ea7295a311cb969c8c42..c835e5168f184e8e8d43c6ff52d236abfa29e116 100644 (file)
@@ -1472,6 +1472,27 @@ int dhcp6_configure(Link *link) {
         return 0;
 }
 
+int link_serialize_dhcp6_client(Link *link, FILE *f) {
+        _cleanup_free_ char *duid = NULL;
+        uint32_t iaid;
+        int r;
+
+        assert(link);
+
+        if (!link->dhcp6_client)
+                return 0;
+
+        r = sd_dhcp6_client_get_iaid(link->dhcp6_client, &iaid);
+        if (r >= 0)
+                fprintf(f, "DHCP6_CLIENT_IAID=0x%x\n", iaid);
+
+        r = sd_dhcp6_client_duid_as_string(link->dhcp6_client, &duid);
+        if (r >= 0)
+                fprintf(f, "DHCP6_CLIENT_DUID=%s\n", duid);
+
+        return 0;
+}
+
 int config_parse_dhcp6_pd_hint(
                 const char* unit,
                 const char *filename,
index 214456096da7f9440a3ade1d2ab64bd37ec34640..ae2cbcc988404192662ad647176b35de0b487ffd 100644 (file)
@@ -32,6 +32,8 @@ int dhcp6_configure(Link *link);
 int dhcp6_request_address(Link *link, int ir);
 int dhcp6_request_prefix_delegation(Link *link);
 
+int link_serialize_dhcp6_client(Link *link, FILE *f);
+
 CONFIG_PARSER_PROTOTYPE(config_parse_dhcp6_pd_hint);
 CONFIG_PARSER_PROTOTYPE(config_parse_dhcp6_mud_url);
 CONFIG_PARSER_PROTOTYPE(config_parse_dhcp6_client_start_mode);
index db0165469952fef3ac61734ac7207072a2ace861..864ad1d132bfd134de14f3a0f95a65aa92a50724 100644 (file)
@@ -3515,18 +3515,9 @@ int link_save(Link *link) {
         if (r < 0)
                 goto fail;
 
-        if (link->dhcp6_client) {
-                _cleanup_free_ char *duid = NULL;
-                uint32_t iaid;
-
-                r = sd_dhcp6_client_get_iaid(link->dhcp6_client, &iaid);
-                if (r >= 0)
-                        fprintf(f, "DHCP6_CLIENT_IAID=0x%x\n", iaid);
-
-                r = sd_dhcp6_client_duid_as_string(link->dhcp6_client, &duid);
-                if (r >= 0)
-                        fprintf(f, "DHCP6_CLIENT_DUID=%s\n", duid);
-        }
+        r = link_serialize_dhcp6_client(link, f);
+        if (r < 0)
+                goto fail;
 
         r = fflush_and_check(f);
         if (r < 0)