ISC DHCP
4.4.2b1
A reference DHCPv4 and DHCPv6 implementation
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-2019 by 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
* 950 Charter Street
22
* Redwood City, CA 94063
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 */
dhcp_signal_handler
void dhcp_signal_handler(int signal)
Definition:
isclib.c:378
dhcp_context::mctx
isc_mem_t * mctx
Definition:
isclib.h:95
dhcp_context_create
isc_result_t dhcp_context_create(int flags, struct in_addr *local4, struct in6_addr *local6)
Definition:
isclib.c:167
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
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_context::task
isc_task_t * task
Definition:
isclib.h:100
isclib_cleanup
void isclib_cleanup(void)
Definition:
isclib.c:88
dhcp_gbl_ctx
dhcp_context_t dhcp_gbl_ctx
Definition:
isclib.c:33
shutdown_signal
int shutdown_signal
Definition:
isclib.c:34
dhcp_context::taskmgr
isc_taskmgr_t * taskmgr
Definition:
isclib.h:99
dhcp_context::timermgr
isc_timermgr_t * timermgr
Definition:
isclib.h:102
result.h
dhcp_context::actx
isc_appctx_t * actx
Definition:
isclib.h:96
dhcp_context::actx_running
int actx_running
Definition:
isclib.h:98
dhcp_context::socketmgr
isc_socketmgr_t * socketmgr
Definition:
isclib.h:101
dhcp_context
Definition:
isclib.h:94
config.h
dhcp_context::actx_started
int actx_started
Definition:
isclib.h:97
dhcp_context_t
struct dhcp_context dhcp_context_t
includes
omapip
isclib.h
Generated on Thu May 27 2021 00:00:00 for ISC DHCP by
1.8.20