diff options
author | Yu Watanabe <watanabe.yu+github@gmail.com> | 2021-06-06 16:59:41 +0900 |
---|---|---|
committer | Yu Watanabe <watanabe.yu+github@gmail.com> | 2021-06-09 04:59:23 +0900 |
commit | 68f5206349b90f4c33537751d0fc341ab64bb3d9 (patch) | |
tree | a5d8d9fb90eca6ab4d226072940a79a70b0c459d /src/network/networkd-queue.c | |
parent | aa9117c0c4e2e9c25395d1aca1232870f7dca034 (diff) | |
download | systemd-68f5206349b90f4c33537751d0fc341ab64bb3d9.tar.gz |
network: use request queue to handle bound_to list
Diffstat (limited to 'src/network/networkd-queue.c')
-rw-r--r-- | src/network/networkd-queue.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/network/networkd-queue.c b/src/network/networkd-queue.c index acda4994f0..dfb4a2bf12 100644 --- a/src/network/networkd-queue.c +++ b/src/network/networkd-queue.c @@ -49,6 +49,7 @@ static void request_free_object(RequestType type, void *object) { routing_policy_rule_free(object); break; case REQUEST_TYPE_SET_LINK: + case REQUEST_TYPE_UP_DOWN: break; default: assert_not_reached("invalid request type."); @@ -125,6 +126,8 @@ static void request_hash_func(const Request *req, struct siphash *state) { case REQUEST_TYPE_SET_LINK: siphash24_compress(&req->set_link_operation, sizeof(req->set_link_operation), state); break; + case REQUEST_TYPE_UP_DOWN: + break; default: assert_not_reached("invalid request type."); } @@ -170,6 +173,8 @@ static int request_compare_func(const struct Request *a, const struct Request *b return routing_policy_rule_compare_func(a->rule, b->rule); case REQUEST_TYPE_SET_LINK: return CMP(a->set_link_operation, b->set_link_operation); + case REQUEST_TYPE_UP_DOWN: + return 0; default: assert_not_reached("invalid request type."); } @@ -201,7 +206,8 @@ int link_queue_request( assert(IN_SET(type, REQUEST_TYPE_ACTIVATE_LINK, REQUEST_TYPE_DHCP_SERVER, - REQUEST_TYPE_SET_LINK) || + REQUEST_TYPE_SET_LINK, + REQUEST_TYPE_UP_DOWN) || object); assert(type == REQUEST_TYPE_DHCP_SERVER || netlink_handler); @@ -296,6 +302,9 @@ int manager_process_requests(sd_event_source *s, void *userdata) { case REQUEST_TYPE_SET_LINK: r = request_process_set_link(req); break; + case REQUEST_TYPE_UP_DOWN: + r = request_process_link_up_or_down(req); + break; default: return -EINVAL; } |