chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
sd-dhcp-client/networkd: add interface MTU support
[elogind.git]
/
src
/
network
/
networkd-bridge.c
diff --git
a/src/network/networkd-bridge.c
b/src/network/networkd-bridge.c
index fa87d3e24ceb583bad890e470907706a4814421b..ce48878991be24f5a336fd5efaad76a26e11ecb4 100644
(file)
--- a/
src/network/networkd-bridge.c
+++ b/
src/network/networkd-bridge.c
@@
-55,9
+55,6
@@
int bridge_get(Manager *manager, const char *name, Bridge **ret) {
assert(name);
assert(ret);
assert(name);
assert(ret);
- if (manager_should_reload(manager))
- manager_load_config(manager);
-
bridge = hashmap_get(manager->bridges, name);
if (!bridge) {
*ret = NULL;
bridge = hashmap_get(manager->bridges, name);
if (!bridge) {
*ret = NULL;
@@
-108,12
+105,17
@@
static int bridge_join_ready(Bridge *bridge, Link* link, sd_rtnl_message_handler
return r;
}
return r;
}
+ log_debug_bridge(bridge, "joining link %s to bridge", link->ifname);
+
return 0;
}
static int bridge_enter_ready(Bridge *bridge) {
bridge_join_callback *callback;
return 0;
}
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");
bridge->state = BRIDGE_STATE_READY;
log_info_bridge(bridge, "bridge ready");
@@
-131,7
+133,7
@@
static int bridge_create_handler(sd_rtnl *rtnl, sd_rtnl_message *m, void *userda
Bridge *bridge = userdata;
int r;
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) {
r = sd_rtnl_message_get_errno(m);
if (r < 0) {
@@
-141,11
+143,6
@@
static int bridge_create_handler(sd_rtnl *rtnl, sd_rtnl_message *m, void *userda
return 1;
}
return 1;
}
- if (bridge->link)
- bridge_enter_ready(bridge);
- else
- bridge->state = BRIDGE_STATE_CREATED;
-
return 1;
}
return 1;
}
@@
-235,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 bridge_set_link(Manager *m, Link *link) {
Bridge *bridge;
+ int r;
-
bridge = hashmap_get(m->bridges, link->ifnam
e);
- if (
!bridge
)
- return
-ENOENT
;
+
r = bridge_get(m, link->ifname, &bridg
e);
+ if (
r < 0
)
+ return
r
;
if (bridge->link && bridge->link != link)
return -EEXIST;
bridge->link = link;
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;
}
return 0;
}