sd-dhcp-server: notify callback on lease changed
This commit is contained in:
parent
5b03043a75
commit
36d35f2259
|
@ -98,6 +98,9 @@ int sd_dhcp_server_configure_pool(
|
||||||
|
|
||||||
/* Drop any leases associated with the old address range */
|
/* Drop any leases associated with the old address range */
|
||||||
hashmap_clear(server->leases_by_client_id);
|
hashmap_clear(server->leases_by_client_id);
|
||||||
|
|
||||||
|
if (server->callback)
|
||||||
|
server->callback(server, SD_DHCP_SERVER_EVENT_LEASE_CHANGED, server->callback_userdata);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -899,6 +902,9 @@ int dhcp_server_handle_message(sd_dhcp_server *server, DHCPMessage *message,
|
||||||
hashmap_put(server->leases_by_client_id,
|
hashmap_put(server->leases_by_client_id,
|
||||||
&lease->client_id, lease);
|
&lease->client_id, lease);
|
||||||
|
|
||||||
|
if (server->callback)
|
||||||
|
server->callback(server, SD_DHCP_SERVER_EVENT_LEASE_CHANGED, server->callback_userdata);
|
||||||
|
|
||||||
return DHCP_ACK;
|
return DHCP_ACK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -935,6 +941,9 @@ int dhcp_server_handle_message(sd_dhcp_server *server, DHCPMessage *message,
|
||||||
server->bound_leases[pool_offset] = NULL;
|
server->bound_leases[pool_offset] = NULL;
|
||||||
hashmap_remove(server->leases_by_client_id, existing_lease);
|
hashmap_remove(server->leases_by_client_id, existing_lease);
|
||||||
dhcp_lease_free(existing_lease);
|
dhcp_lease_free(existing_lease);
|
||||||
|
|
||||||
|
if (server->callback)
|
||||||
|
server->callback(server, SD_DHCP_SERVER_EVENT_LEASE_CHANGED, server->callback_userdata);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -31,6 +31,10 @@ _SD_BEGIN_DECLARATIONS;
|
||||||
|
|
||||||
typedef struct sd_dhcp_server sd_dhcp_server;
|
typedef struct sd_dhcp_server sd_dhcp_server;
|
||||||
|
|
||||||
|
enum {
|
||||||
|
SD_DHCP_SERVER_EVENT_LEASE_CHANGED = 1 << 0,
|
||||||
|
};
|
||||||
|
|
||||||
int sd_dhcp_server_new(sd_dhcp_server **ret, int ifindex);
|
int sd_dhcp_server_new(sd_dhcp_server **ret, int ifindex);
|
||||||
|
|
||||||
sd_dhcp_server *sd_dhcp_server_ref(sd_dhcp_server *server);
|
sd_dhcp_server *sd_dhcp_server_ref(sd_dhcp_server *server);
|
||||||
|
|
Loading…
Reference in a new issue