]>
git.ipfire.org Git - thirdparty/systemd.git/blob - src/libsystemd-network/dhcp-server-internal.h
1 /* SPDX-License-Identifier: LGPL-2.1+ */
5 This file is part of systemd.
7 Copyright (C) 2013 Intel Corporation. All rights reserved.
8 Copyright (C) 2014 Tom Gundersen
11 #include "sd-dhcp-server.h"
14 #include "dhcp-internal.h"
19 typedef struct DHCPClientId
{
24 typedef struct DHCPLease
{
25 DHCPClientId client_id
;
33 struct sd_dhcp_server
{
38 sd_event_source
*receive_message
;
51 struct in_addr
*ntp
, *dns
;
52 unsigned n_ntp
, n_dns
;
56 Hashmap
*leases_by_client_id
;
57 DHCPLease
**bound_leases
;
58 DHCPLease invalid_lease
;
60 uint32_t max_lease_time
, default_lease_time
;
63 typedef struct DHCPRequest
{
64 /* received message */
68 DHCPClientId client_id
;
75 #define log_dhcp_server(client, fmt, ...) log_internal(LOG_DEBUG, 0, __FILE__, __LINE__, __func__, "DHCP SERVER: " fmt, ##__VA_ARGS__)
76 #define log_dhcp_server_errno(client, error, fmt, ...) log_internal(LOG_DEBUG, error, __FILE__, __LINE__, __func__, "DHCP SERVER: " fmt, ##__VA_ARGS__)
78 int dhcp_server_handle_message(sd_dhcp_server
*server
, DHCPMessage
*message
,
80 int dhcp_server_send_packet(sd_dhcp_server
*server
,
81 DHCPRequest
*req
, DHCPPacket
*packet
,
82 int type
, size_t optoffset
);
84 void client_id_hash_func(const void *p
, struct siphash
*state
);
85 int client_id_compare_func(const void *_a
, const void *_b
);