network: use request queue to configure DHCP server

This commit is contained in:
Yu Watanabe
2021-06-08 06:33:27 +09:00
parent 1319c7e044
commit 1d28a3cf6c
7 changed files with 83 additions and 22 deletions
+10 -2
View File
@@ -2,6 +2,7 @@
#include "networkd-address.h"
#include "networkd-bridge-fdb.h"
#include "networkd-dhcp-server.h"
#include "networkd-manager.h"
#include "networkd-neighbor.h"
#include "networkd-nexthop.h"
@@ -17,6 +18,8 @@ static void request_free_object(RequestType type, void *object) {
case REQUEST_TYPE_BRIDGE_FDB:
bridge_fdb_free(object);
break;
case REQUEST_TYPE_DHCP_SERVER:
break;
case REQUEST_TYPE_NEIGHBOR:
neighbor_free(object);
break;
@@ -73,8 +76,10 @@ int link_queue_request(
assert(link);
assert(link->manager);
assert(type >= 0 && type < _REQUEST_TYPE_MAX);
assert(object);
assert(netlink_handler);
if (type != REQUEST_TYPE_DHCP_SERVER) {
assert(object);
assert(netlink_handler);
}
req = new(Request, 1);
if (!req) {
@@ -126,6 +131,9 @@ int manager_process_requests(sd_event_source *s, void *userdata) {
case REQUEST_TYPE_BRIDGE_FDB:
r = request_process_bridge_fdb(req);
break;
case REQUEST_TYPE_DHCP_SERVER:
r = request_process_dhcp_server(req);
break;
case REQUEST_TYPE_NEIGHBOR:
r = request_process_neighbor(req);
break;