ISC DHCP
4.4.3-P1
A reference DHCPv4 and DHCPv6 implementation
Loading...
Searching...
No Matches
isclib.h
Go to the documentation of this file.
1
/* isclib.h
2
3
connections to the isc and dns libraries */
4
5
/*
6
* Copyright (C) 2009-2022 Internet Systems Consortium, Inc. ("ISC")
7
*
8
* This Source Code Form is subject to the terms of the Mozilla Public
9
* License, v. 2.0. If a copy of the MPL was not distributed with this
10
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
11
*
12
* THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
13
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
14
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR
15
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
16
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
17
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
18
* OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
19
*
20
* Internet Systems Consortium, Inc.
21
* PO Box 360
22
* Newmarket, NH 03857 USA
23
* <info@isc.org>
24
* http://www.isc.org/
25
*
26
*/
27
28
#ifndef ISCLIB_H
29
#define ISCLIB_H
30
31
#include "
config.h
"
32
33
#include <syslog.h>
34
35
#define MAXWIRE 256
36
37
#include <sys/types.h>
38
#include <sys/socket.h>
39
40
#include <netinet/in.h>
41
42
#include <arpa/inet.h>
43
44
#include <unistd.h>
45
#include <ctype.h>
46
#include <stdio.h>
47
#include <stdlib.h>
48
#include <string.h>
49
#include <netdb.h>
50
51
#include <isc/boolean.h>
52
#include <isc/int.h>
53
54
#include <isc/buffer.h>
55
#include <isc/lex.h>
56
#include <isc/lib.h>
57
#include <isc/app.h>
58
#include <isc/mem.h>
59
#include <isc/parseint.h>
60
#include <isc/socket.h>
61
#include <isc/sockaddr.h>
62
#include <isc/task.h>
63
#include <isc/timer.h>
64
#include <isc/heap.h>
65
#include <isc/random.h>
66
67
#include <irs/resconf.h>
68
69
#include <dns/client.h>
70
#include <dns/fixedname.h>
71
#include <dns/keyvalues.h>
72
#include <dns/lib.h>
73
#include <dns/name.h>
74
#include <dns/rdata.h>
75
#include <dns/rdataclass.h>
76
#include <dns/rdatalist.h>
77
#include <dns/rdataset.h>
78
#include <dns/rdatastruct.h>
79
#include <dns/rdatatype.h>
80
#include <dns/result.h>
81
#include <dns/secalg.h>
82
#include <dns/tsec.h>
83
84
#include <dst/dst.h>
85
86
#include "
result.h
"
87
88
89
/*
90
* DHCP context structure
91
* This holds the libisc information for a dhcp entity
92
*/
93
94
typedef
struct
dhcp_context
{
95
isc_mem_t
*
mctx
;
96
isc_appctx_t
*
actx
;
97
int
actx_started
;
// ISC_TRUE if ctxstart has been called
98
int
actx_running
;
// ISC_TRUE if ctxrun has been called
99
isc_taskmgr_t
*
taskmgr
;
100
isc_task_t
*
task
;
101
isc_socketmgr_t
*
socketmgr
;
102
isc_timermgr_t
*
timermgr
;
103
#if defined (NSUPDATE)
104
dns_client_t
*
dnsclient
;
105
int
use_local4
;
106
isc_sockaddr_t
local4_sockaddr
;
107
int
use_local6
;
108
isc_sockaddr_t
local6_sockaddr
;
109
#endif
110
}
dhcp_context_t
;
111
112
extern
dhcp_context_t
dhcp_gbl_ctx
;
113
114
#define DHCP_MAXDNS_WIRE 256
115
#define DHCP_MAXNS 3
116
#define DHCP_HMAC_MD5_NAME "HMAC-MD5.SIG-ALG.REG.INT."
117
#define DHCP_HMAC_SHA1_NAME "HMAC-SHA1.SIG-ALG.REG.INT."
118
#define DHCP_HMAC_SHA224_NAME "HMAC-SHA224.SIG-ALG.REG.INT."
119
#define DHCP_HMAC_SHA256_NAME "HMAC-SHA256.SIG-ALG.REG.INT."
120
#define DHCP_HMAC_SHA384_NAME "HMAC-SHA384.SIG-ALG.REG.INT."
121
#define DHCP_HMAC_SHA512_NAME "HMAC-SHA512.SIG-ALG.REG.INT."
122
123
isc_result_t
dhcp_isc_name
(
unsigned
char
*
namestr
,
124
dns_fixedname_t
*
namefix
,
125
dns_name_t
**name);
126
127
isc_result_t
128
isclib_make_dst_key
(
char
*
inname
,
129
char
*algorithm,
130
unsigned
char
*
secret
,
131
int
length,
132
dst_key_t
**
dstkey
);
133
134
#define DHCP_CONTEXT_PRE_DB 1
135
#define DHCP_CONTEXT_POST_DB 2
136
#define DHCP_DNS_CLIENT_LAZY_INIT 4
137
isc_result_t
dhcp_context_create
(
int
flags,
138
struct
in_addr
*
local4
,
139
struct
in6_addr
*
local6
);
140
void
isclib_cleanup
(
void
);
141
142
void
dhcp_signal_handler
(
int
signal
);
143
extern
int
shutdown_signal
;
144
145
#if defined (NSUPDATE)
146
isc_result_t
dns_client_init
();
147
#endif
/* defined NSUPDATE */
148
149
150
#endif
/* ISCLIB_H */
config.h
cur_time
#define cur_time
Definition
dhcpd.h:2126
dhcp_context_create
isc_result_t dhcp_context_create(int flags, struct in_addr *local4, struct in6_addr *local6)
Definition
isclib.c:167
dhcp_context_t
struct dhcp_context dhcp_context_t
shutdown_signal
int shutdown_signal
Definition
isclib.c:34
dhcp_isc_name
isc_result_t dhcp_isc_name(unsigned char *namestr, dns_fixedname_t *namefix, dns_name_t **name)
Definition
isclib.c:313
dhcp_signal_handler
void dhcp_signal_handler(int signal)
Definition
isclib.c:378
isclib_cleanup
void isclib_cleanup(void)
Definition
isclib.c:88
dhcp_gbl_ctx
dhcp_context_t dhcp_gbl_ctx
Definition
isclib.c:33
isclib_make_dst_key
isc_result_t isclib_make_dst_key(char *inname, char *algorithm, unsigned char *secret, int length, dst_key_t **dstkey)
Definition
isclib.c:332
result.h
dhcp_context
Definition
isclib.h:94
dhcp_context::actx_started
int actx_started
Definition
isclib.h:97
dhcp_context::socketmgr
isc_socketmgr_t * socketmgr
Definition
isclib.h:101
dhcp_context::actx
isc_appctx_t * actx
Definition
isclib.h:96
dhcp_context::timermgr
isc_timermgr_t * timermgr
Definition
isclib.h:102
dhcp_context::actx_running
int actx_running
Definition
isclib.h:98
dhcp_context::mctx
isc_mem_t * mctx
Definition
isclib.h:95
dhcp_context::task
isc_task_t * task
Definition
isclib.h:100
dhcp_context::taskmgr
isc_taskmgr_t * taskmgr
Definition
isclib.h:99
includes
omapip
isclib.h
Generated on Wed Jan 24 2024 00:00:00 for ISC DHCP by
1.10.0