mirror of
https://github.com/systemd/systemd.git
synced 2025-03-19 22:50:17 +03:00
network: introduce link_serialize_addresses()
This commit is contained in:
parent
32400c2ff0
commit
3b31e2b718
@ -1217,6 +1217,27 @@ 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;
|
||||
}
|
||||
|
||||
static void static_address_on_acd(sd_ipv4acd *acd, int event, void *userdata) {
|
||||
_cleanup_free_ char *pretty = NULL;
|
||||
Address *address;
|
||||
|
@ -77,6 +77,7 @@ 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 manager_rtnl_process_address(sd_netlink *nl, sd_netlink_message *message, Manager *m);
|
||||
|
||||
|
@ -3707,7 +3707,6 @@ int link_save(Link *link) {
|
||||
const char *admin_state, *oper_state, *carrier_state, *address_state;
|
||||
_cleanup_free_ char *temp_path = NULL;
|
||||
_cleanup_fclose_ FILE *f = NULL;
|
||||
Address *a;
|
||||
int r;
|
||||
|
||||
assert(link);
|
||||
@ -3925,19 +3924,9 @@ int link_save(Link *link) {
|
||||
|
||||
/************************************************************/
|
||||
|
||||
fputs("ADDRESSES=", f);
|
||||
space = false;
|
||||
SET_FOREACH(a, link->addresses) {
|
||||
_cleanup_free_ char *address_str = NULL;
|
||||
|
||||
r = in_addr_to_string(a->family, &a->in_addr, &address_str);
|
||||
if (r < 0)
|
||||
goto fail;
|
||||
|
||||
fprintf(f, "%s%s/%u", space ? " " : "", address_str, a->prefixlen);
|
||||
space = true;
|
||||
}
|
||||
fputc('\n', f);
|
||||
r = link_serialize_addresses(link, f);
|
||||
if (r < 0)
|
||||
goto fail;
|
||||
|
||||
/************************************************************/
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user