summaryrefslogtreecommitdiff
path: root/src/network/networkd-address.h
diff options
context:
space:
mode:
authorTom Gundersen <teg@jklm.no>2015-09-30 14:01:44 +0200
committerTom Gundersen <teg@jklm.no>2015-10-21 02:35:31 +0200
commitadda1ed94a04742ddacdc76dfa311816e1ed9f68 (patch)
treec29e5b9867a54e80baf83505f9c353f96e453017 /src/network/networkd-address.h
parentfcf50cff129c1b0c6c415428e659da40c3053e6e (diff)
downloadsystemd-adda1ed94a04742ddacdc76dfa311816e1ed9f68.tar.gz
networkd: address - distinguish between addresses added by us and by others
We only keep the addresses that we added ourselves in link->addresses, and introduce a new set link->addresses_foreign to keep addresses of unknown origin. Only functional change is that "foreign" addresses no longer prevent a link from entering "configured" state.
Diffstat (limited to 'src/network/networkd-address.h')
-rw-r--r--src/network/networkd-address.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/network/networkd-address.h b/src/network/networkd-address.h
index cb29acc7be..fd309bebb6 100644
--- a/src/network/networkd-address.h
+++ b/src/network/networkd-address.h
@@ -52,7 +52,8 @@ struct Address {
union in_addr_union in_addr;
union in_addr_union in_addr_peer;
- bool ip_masquerade_done;
+ bool added:1;
+ bool ip_masquerade_done:1;
LIST_FIELDS(Address, addresses);
};
@@ -60,7 +61,7 @@ struct Address {
int address_new_static(Network *network, unsigned section, Address **ret);
int address_new(Address **ret);
void address_free(Address *address);
-int address_add(Link *link, int family, const union in_addr_union *in_addr, unsigned char prefixlen, Address **ret);
+int address_add_foreign(Link *link, int family, const union in_addr_union *in_addr, unsigned char prefixlen, Address **ret);
int address_get(Link *link, int family, const union in_addr_union *in_addr, unsigned char prefixlen, Address **ret);
int address_update(Address *address, unsigned char flags, unsigned char scope, struct ifa_cacheinfo *cinfo);
int address_drop(Address *address);