]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network: do not serialize/deserialize addresses
authorYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 28 Oct 2020 06:38:29 +0000 (15:38 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 28 Oct 2020 09:15:57 +0000 (18:15 +0900)
The link state file is always removed when networkd is stopping. So,
the deserialization logic does not work. Moreover, the ADDRESSES=
entry is not used by sd-network, so serialization is also not necessary.

src/network/networkd-address.c
src/network/networkd-address.h
src/network/networkd-link.c
test/test-network/systemd-networkd-tests.py

index 1bf6514a29316967e2c5f097452897cebefaf4ef..bf3c7b39a05ada8684f66a724f05d5e4fba9c4e6 100644 (file)
@@ -1248,60 +1248,6 @@ int manager_rtnl_process_address(sd_netlink *rtnl, sd_netlink_message *message,
         return 1;
 }
 
-int link_serialize_addresses(Link *link, FILE *f) {
-        bool space = false;
-        Address *a;
-
-        assert(link);
-
-        fputs("ADDRESSES=", f);
-        SET_FOREACH(a, link->addresses) {
-                _cleanup_free_ char *address_str = NULL;
-
-                if (in_addr_to_string(a->family, &a->in_addr, &address_str) < 0)
-                        continue;
-
-                fprintf(f, "%s%s/%u", space ? " " : "", address_str, a->prefixlen);
-                space = true;
-        }
-        fputc('\n', f);
-
-        return 0;
-}
-
-int link_deserialize_addresses(Link *link, const char *addresses) {
-        int r;
-
-        assert(link);
-
-        for (const char *p = addresses;; ) {
-                _cleanup_(address_freep) Address *tmp = NULL;
-                _cleanup_free_ char *address_str = NULL;
-
-                r = extract_first_word(&p, &address_str, NULL, 0);
-                if (r < 0)
-                        return log_link_debug_errno(link, r, "Failed to parse ADDRESSES=: %m");
-                if (r == 0)
-                        return 0;
-
-                r = address_new(&tmp);
-                if (r < 0)
-                        return log_oom();
-
-                r = in_addr_prefix_from_string_auto(address_str, &tmp->family, &tmp->in_addr, &tmp->prefixlen);
-                if (r < 0) {
-                        log_link_debug_errno(link, r, "Failed to parse address, ignoring: %s", address_str);
-                        continue;
-                }
-
-                r = address_add(link, tmp, NULL);
-                if (r < 0)
-                        log_link_debug_errno(link, r, "Failed to add address %s, ignoring: %m", address_str);
-        }
-
-        return 0;
-}
-
 static void static_address_on_acd(sd_ipv4acd *acd, int event, void *userdata) {
         _cleanup_free_ char *pretty = NULL;
         Address *address;
index 8b0fb9b0dfd3bcbe570f138667bd71fa57a92a68..22dcd081e7f782df716268586118ee981979c10f 100644 (file)
@@ -62,8 +62,6 @@ DEFINE_NETWORK_SECTION_FUNCTIONS(Address, address_free);
 int link_set_addresses(Link *link);
 int link_drop_addresses(Link *link);
 int link_drop_foreign_addresses(Link *link);
-int link_serialize_addresses(Link *link, FILE *f);
-int link_deserialize_addresses(Link *link, const char *addresses);
 bool link_address_is_dynamic(const Link *link, const Address *address);
 
 void ipv4_dad_unref(Link *link);
index 31f292043d6373d00db698f897bc5a489ba76bc3..5db118e77eb34b2e7cef296c3e01971b2df3bfbd 100644 (file)
@@ -2413,7 +2413,6 @@ int link_initialized(Link *link, sd_device *device) {
 
 static int link_load(Link *link) {
         _cleanup_free_ char *network_file = NULL,
-                            *addresses = NULL,
                             *routes = NULL;
         int r;
 
@@ -2421,7 +2420,6 @@ static int link_load(Link *link) {
 
         r = parse_env_file(NULL, link->state_file,
                            "NETWORK_FILE", &network_file,
-                           "ADDRESSES", &addresses,
                            "ROUTES", &routes);
         if (r < 0 && r != -ENOENT)
                 return log_link_error_errno(link, r, "Failed to read %s: %m", link->state_file);
@@ -2451,10 +2449,6 @@ static int link_load(Link *link) {
 
 network_file_fail:
 
-        r = link_deserialize_addresses(link, addresses);
-        if (r < 0)
-                log_link_warning_errno(link, r, "Failed to load addresses from %s, ignoring: %m", link->state_file);
-
         r = link_deserialize_routes(link, routes);
         if (r < 0)
                 log_link_warning_errno(link, r, "Failed to load routes from %s, ignoring: %m", link->state_file);
@@ -3139,12 +3133,6 @@ int link_save(Link *link) {
 
                 /************************************************************/
 
-                r = link_serialize_addresses(link, f);
-                if (r < 0)
-                        goto fail;
-
-                /************************************************************/
-
                 r = link_serialize_routes(link, f);
                 if (r < 0)
                         goto fail;
index 46c4bb7a95c6c1f6adc66f5f6929a0a071b162b8..bfc135a041c450969b9cd703358178bb056d1973 100755 (executable)
@@ -2891,7 +2891,6 @@ class NetworkdStateFileTests(unittest.TestCase, Utilities):
             self.assertRegex(data, r'LLMNR=no')
             self.assertRegex(data, r'MDNS=yes')
             self.assertRegex(data, r'DNSSEC=no')
-            self.assertRegex(data, r'ADDRESSES=192.168.(10.10|12.12)/24 192.168.(12.12|10.10)/24')
 
         check_output(*resolvectl_cmd, 'dns', 'dummy98', '10.10.10.12#ccc.com', '10.10.10.13', '1111:2222::3333', env=env)
         check_output(*resolvectl_cmd, 'domain', 'dummy98', 'hogehogehoge', '~foofoofoo', env=env)