summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/network/networkd-bridge.c20
-rw-r--r--src/network/networkd.h1
2 files changed, 9 insertions, 12 deletions
diff --git a/src/network/networkd-bridge.c b/src/network/networkd-bridge.c
index 7de754635..ce4887899 100644
--- a/src/network/networkd-bridge.c
+++ b/src/network/networkd-bridge.c
@@ -113,6 +113,9 @@ static int bridge_join_ready(Bridge *bridge, Link* link, sd_rtnl_message_handler
static int bridge_enter_ready(Bridge *bridge) {
bridge_join_callback *callback;
+ assert(bridge);
+ assert(bridge->name);
+
bridge->state = BRIDGE_STATE_READY;
log_info_bridge(bridge, "bridge ready");
@@ -130,7 +133,7 @@ static int bridge_create_handler(sd_rtnl *rtnl, sd_rtnl_message *m, void *userda
Bridge *bridge = userdata;
int r;
- assert(bridge->state == BRIDGE_STATE_CREATING);
+ assert(bridge->state != _BRIDGE_STATE_INVALID);
r = sd_rtnl_message_get_errno(m);
if (r < 0) {
@@ -140,11 +143,6 @@ static int bridge_create_handler(sd_rtnl *rtnl, sd_rtnl_message *m, void *userda
return 1;
}
- if (bridge->link)
- bridge_enter_ready(bridge);
- else
- bridge->state = BRIDGE_STATE_CREATED;
-
return 1;
}
@@ -234,18 +232,18 @@ int bridge_join(Bridge *bridge, Link *link, sd_rtnl_message_handler_t callback)
int bridge_set_link(Manager *m, Link *link) {
Bridge *bridge;
+ int r;
- bridge = hashmap_get(m->bridges, link->ifname);
- if (!bridge)
- return -ENOENT;
+ r = bridge_get(m, link->ifname, &bridge);
+ if (r < 0)
+ return r;
if (bridge->link && bridge->link != link)
return -EEXIST;
bridge->link = link;
- if (bridge->state == BRIDGE_STATE_CREATED)
- bridge_enter_ready(bridge);
+ bridge_enter_ready(bridge);
return 0;
}
diff --git a/src/network/networkd.h b/src/network/networkd.h
index 4f44f7865..55181f2bb 100644
--- a/src/network/networkd.h
+++ b/src/network/networkd.h
@@ -52,7 +52,6 @@ struct bridge_join_callback {
typedef enum BridgeState {
BRIDGE_STATE_FAILED,
BRIDGE_STATE_CREATING,
- BRIDGE_STATE_CREATED,
BRIDGE_STATE_READY,
_BRIDGE_STATE_MAX,
_BRIDGE_STATE_INVALID = -1,