mirror of
https://github.com/systemd/systemd.git
synced 2025-03-11 20:58:27 +03:00
network: do not serialize/deserialize addresses
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.
This commit is contained in:
parent
ca97e7cda0
commit
7b829a7b3b
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user