]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/systemd/sd-dhcp-server.h
Merge pull request #16057 from keszybz/resolvectl-sorted-no-nta
[thirdparty/systemd.git] / src / systemd / sd-dhcp-server.h
CommitLineData
53e1b683 1/* SPDX-License-Identifier: LGPL-2.1+ */
b44cd882
TG
2#ifndef foosddhcpserverhfoo
3#define foosddhcpserverhfoo
4
5/***
810adae9 6 Copyright © 2013 Intel Corporation. All rights reserved.
b44cd882
TG
7 systemd is free software; you can redistribute it and/or modify it
8 under the terms of the GNU Lesser General Public License as published by
9 the Free Software Foundation; either version 2.1 of the License, or
10 (at your option) any later version.
11
12 systemd is distributed in the hope that it will be useful, but
13 WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 Lesser General Public License for more details.
16
17 You should have received a copy of the GNU Lesser General Public License
18 along with systemd; If not, see <http://www.gnu.org/licenses/>.
19***/
20
04c01369 21#include <inttypes.h>
b44cd882
TG
22#include <netinet/in.h>
23
c8407baf 24#include "sd-dhcp-lease.h"
461dbb2f 25#include "sd-dhcp-option.h"
b44cd882 26#include "sd-event.h"
71d35b6b 27
04c01369
LP
28#include "_sd-common.h"
29
30_SD_BEGIN_DECLARATIONS;
b44cd882
TG
31
32typedef struct sd_dhcp_server sd_dhcp_server;
33
1a04db0f
LP
34int sd_dhcp_server_new(sd_dhcp_server **ret, int ifindex);
35
b44cd882
TG
36sd_dhcp_server *sd_dhcp_server_ref(sd_dhcp_server *server);
37sd_dhcp_server *sd_dhcp_server_unref(sd_dhcp_server *server);
38
32d20645 39int sd_dhcp_server_attach_event(sd_dhcp_server *client, sd_event *event, int64_t priority);
b44cd882
TG
40int sd_dhcp_server_detach_event(sd_dhcp_server *client);
41sd_event *sd_dhcp_server_get_event(sd_dhcp_server *client);
42
04c01369 43int sd_dhcp_server_is_running(sd_dhcp_server *server);
7c16313f 44
ff734080
TG
45int sd_dhcp_server_start(sd_dhcp_server *server);
46int sd_dhcp_server_stop(sd_dhcp_server *server);
47
90810f7a 48int sd_dhcp_server_configure_pool(sd_dhcp_server *server, const struct in_addr *address, unsigned char prefixlen, uint32_t offset, uint32_t size);
52750344 49
8eb9058d 50int sd_dhcp_server_set_timezone(sd_dhcp_server *server, const char *timezone);
c8407baf
ZJS
51int sd_dhcp_server_set_emit_router(sd_dhcp_server *server, int enabled);
52
53int sd_dhcp_server_set_servers(
54 sd_dhcp_server *server,
ddb82ec2 55 sd_dhcp_lease_server_type what,
c8407baf 56 const struct in_addr addresses[],
90810f7a
LP
57 size_t n_addresses);
58
59int sd_dhcp_server_set_lpr(sd_dhcp_server *server, const struct in_addr lpr[], size_t n);
60int sd_dhcp_server_set_dns(sd_dhcp_server *server, const struct in_addr dns[], size_t n);
61int sd_dhcp_server_set_ntp(sd_dhcp_server *server, const struct in_addr ntp[], size_t n);
62int sd_dhcp_server_set_sip(sd_dhcp_server *server, const struct in_addr sip[], size_t n);
63int sd_dhcp_server_set_pop3(sd_dhcp_server *server, const struct in_addr pop3_server[], size_t n);
64int sd_dhcp_server_set_smtp(sd_dhcp_server *server, const struct in_addr smtp_server[], size_t n);
8eb9058d 65
461dbb2f 66int sd_dhcp_server_add_option(sd_dhcp_server *server, sd_dhcp_option *v);
7354900d 67int sd_dhcp_server_add_vendor_option(sd_dhcp_server *server, sd_dhcp_option *v);
564ca984 68
586ac6f7
LP
69int sd_dhcp_server_set_max_lease_time(sd_dhcp_server *server, uint32_t t);
70int sd_dhcp_server_set_default_lease_time(sd_dhcp_server *server, uint32_t t);
71
52750344 72int sd_dhcp_server_forcerenew(sd_dhcp_server *server);
1a04db0f 73
4afd3348
LP
74_SD_DEFINE_POINTER_CLEANUP_FUNC(sd_dhcp_server, sd_dhcp_server_unref);
75
04c01369
LP
76_SD_END_DECLARATIONS;
77
b44cd882 78#endif