]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sd-dhcp-server: add sd_dhcp_server_set_callback()
authorMarc-André Lureau <marcandre.lureau@redhat.com>
Fri, 22 May 2020 09:33:36 +0000 (11:33 +0200)
committerMarc-André Lureau <marcandre.lureau@redhat.com>
Thu, 4 Jun 2020 09:04:06 +0000 (11:04 +0200)
src/libsystemd-network/dhcp-server-internal.h
src/libsystemd-network/sd-dhcp-server.c
src/systemd/sd-dhcp-server.h

index 39899680a5756136a1828e585de8b1c0f0a14af0..64c18ed570750ac96f5fb55e211296c3b25384fa 100644 (file)
@@ -68,6 +68,9 @@ struct sd_dhcp_server {
         DHCPLease invalid_lease;
 
         uint32_t max_lease_time, default_lease_time;
+
+        sd_dhcp_server_callback_t callback;
+        void *callback_userdata;
 };
 
 typedef struct DHCPRequest {
index dce68aeb26af5e72a63b58e58e6ad158d2b06f11..b787aa21bf5eea6d227c6ae64fb84d4c85243886 100644 (file)
@@ -1202,3 +1202,12 @@ int sd_dhcp_server_add_vendor_option(sd_dhcp_server *server, sd_dhcp_option *v)
 
         return 1;
 }
+
+int sd_dhcp_server_set_callback(sd_dhcp_server *server, sd_dhcp_server_callback_t cb, void *userdata) {
+        assert_return(server, -EINVAL);
+
+        server->callback = cb;
+        server->callback_userdata = userdata;
+
+        return 0;
+}
index 1993bf12d3f973128f84280289be8e8250f7d30c..fe9ad91fe03ee578862a98f3c2460f9de72366c9 100644 (file)
@@ -40,6 +40,10 @@ int sd_dhcp_server_attach_event(sd_dhcp_server *client, sd_event *event, int64_t
 int sd_dhcp_server_detach_event(sd_dhcp_server *client);
 sd_event *sd_dhcp_server_get_event(sd_dhcp_server *client);
 
+typedef void (*sd_dhcp_server_callback_t)(sd_dhcp_server *server, uint64_t event, void *userdata);
+
+int sd_dhcp_server_set_callback(sd_dhcp_server *server, sd_dhcp_server_callback_t cb, void *userdata);
+
 int sd_dhcp_server_is_running(sd_dhcp_server *server);
 
 int sd_dhcp_server_start(sd_dhcp_server *server);