]>
git.ipfire.org Git - thirdparty/systemd.git/blob - src/libsystemd-network/dhcp-server-internal.h
d69b4870799f0304ec985678d4dcab16911a133a
1 /* SPDX-License-Identifier: LGPL-2.1+ */
5 Copyright (C) 2013 Intel Corporation. All rights reserved.
6 Copyright (C) 2014 Tom Gundersen
9 #include "sd-dhcp-server.h"
12 #include "dhcp-internal.h"
17 typedef struct DHCPClientId
{
22 typedef struct DHCPLease
{
23 DHCPClientId client_id
;
31 struct sd_dhcp_server
{
36 sd_event_source
*receive_message
;
49 struct in_addr
*ntp
, *dns
;
50 unsigned n_ntp
, n_dns
;
54 Hashmap
*leases_by_client_id
;
55 DHCPLease
**bound_leases
;
56 DHCPLease invalid_lease
;
58 uint32_t max_lease_time
, default_lease_time
;
61 typedef struct DHCPRequest
{
62 /* received message */
66 DHCPClientId client_id
;
73 #define log_dhcp_server(client, fmt, ...) log_internal(LOG_DEBUG, 0, __FILE__, __LINE__, __func__, "DHCP SERVER: " fmt, ##__VA_ARGS__)
74 #define log_dhcp_server_errno(client, error, fmt, ...) log_internal(LOG_DEBUG, error, __FILE__, __LINE__, __func__, "DHCP SERVER: " fmt, ##__VA_ARGS__)
76 int dhcp_server_handle_message(sd_dhcp_server
*server
, DHCPMessage
*message
,
78 int dhcp_server_send_packet(sd_dhcp_server
*server
,
79 DHCPRequest
*req
, DHCPPacket
*packet
,
80 int type
, size_t optoffset
);
82 void client_id_hash_func(const void *p
, struct siphash
*state
);
83 int client_id_compare_func(const void *_a
, const void *_b
);