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;
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);
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);
/************************************************************/
- 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;
/************************************************************/