summaryrefslogtreecommitdiff
path: root/src/network/networkd-bridge-fdb.c
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2022-02-28 10:55:51 +0900
committerYu Watanabe <watanabe.yu+github@gmail.com>2022-03-11 14:20:31 +0900
commit09d09207dece533ced25c91024ce7a1c0ed660d8 (patch)
tree386d5fc738c98f696d928aa399d4ea98fdfbae7c /src/network/networkd-bridge-fdb.c
parent4c8b81caa518df34d4e69f6660fc4fbdf0b42ce4 (diff)
downloadsystemd-09d09207dece533ced25c91024ce7a1c0ed660d8.tar.gz
network: re-design request queue
This makes Request object takes hash, compare, free, and process functions. With this change, the logic in networkd-queue.c can be mostly independent of the type of the request or the object (e.g. Address) assigned to the request, and it becomes simpler.
Diffstat (limited to 'src/network/networkd-bridge-fdb.c')
-rw-r--r--src/network/networkd-bridge-fdb.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/network/networkd-bridge-fdb.c b/src/network/networkd-bridge-fdb.c
index cc02213c28..803e27cdae 100644
--- a/src/network/networkd-bridge-fdb.c
+++ b/src/network/networkd-bridge-fdb.c
@@ -208,7 +208,7 @@ static bool bridge_fdb_is_ready_to_configure(BridgeFDB *fdb, Link *link) {
return true;
}
-int bridge_fdb_process_request(Request *req, Link *link, void *userdata) {
+static int bridge_fdb_process_request(Request *req, Link *link, void *userdata) {
BridgeFDB *fdb = ASSERT_PTR(userdata);
int r;
@@ -235,8 +235,14 @@ int link_request_static_bridge_fdb(Link *link) {
link->static_bridge_fdb_configured = false;
HASHMAP_FOREACH(fdb, link->network->bridge_fdb_entries_by_section) {
- r = link_queue_request(link, REQUEST_TYPE_BRIDGE_FDB, fdb, false,
- &link->static_bridge_fdb_messages, bridge_fdb_configure_handler, NULL);
+ r = link_queue_request_full(link, REQUEST_TYPE_BRIDGE_FDB,
+ fdb, NULL,
+ trivial_hash_func,
+ trivial_compare_func,
+ bridge_fdb_process_request,
+ &link->static_bridge_fdb_messages,
+ bridge_fdb_configure_handler,
+ NULL);
if (r < 0)
return log_link_error_errno(link, r, "Failed to request static bridge FDB entry: %m");
}