Annotation of embedaddon/dhcp/includes/minires/minires.h, revision 1.1.1.1
1.1 misho 1: /*
2: * Copyright (c) 2004,2007-2010 by Internet Systems Consortium, Inc. ("ISC")
3: * Copyright (c) 2001-2003 by Internet Software Consortium
4: *
5: * Permission to use, copy, modify, and distribute this software for any
6: * purpose with or without fee is hereby granted, provided that the above
7: * copyright notice and this permission notice appear in all copies.
8: *
9: * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
10: * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11: * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR
12: * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13: * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14: * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
15: * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16: *
17: * Internet Systems Consortium, Inc.
18: * 950 Charter Street
19: * Redwood City, CA 94063
20: * <info@isc.org>
21: * https://www.isc.org/
22: */
23: #ifndef MINIRES_H
24: #define MINIRES_H
25:
26: #include "cdefs.h"
27: #include "osdep.h"
28:
29: #define _ns_flagdata MR_ns_flagdata
30:
31: #include "minires/resolv.h"
32: #include "minires/res_update.h"
33: #include "isc-dhcp/result.h"
34:
35: /*
36: * Based on the Dynamic DNS reference implementation by Viraj Bais
37: * <viraj_bais@ccm.fm.intel.com>
38: */
39:
40: int minires_mkupdate (ns_updrec *, unsigned char *, unsigned);
41: int minires_update (ns_updrec *);
42: ns_updrec *minires_mkupdrec (int, const char *, unsigned int,
43: unsigned int, unsigned long);
44: void minires_freeupdrec (ns_updrec *);
45: int minires_nmkupdate (res_state, ns_updrec *, double *, unsigned *);
46: isc_result_t minires_nupdate (res_state, ns_updrec *);
47: int minires_ninit (res_state);
48: ns_rcode isc_rcode_to_ns (isc_result_t);
49:
50: int MRns_name_compress(const char *, u_char *, size_t, const unsigned char **,
51: const unsigned char **);
52: int MRns_name_unpack(const unsigned char *, const unsigned char *,
53: const unsigned char *, unsigned char *, size_t);
54: int MRns_name_ntop(const unsigned char *, char *, size_t);
55: int MRns_name_pton(const char *, u_char *, size_t);
56:
57: #if defined (MINIRES_LIB)
58: #define res_update minires_update
59: #define res_mkupdate minires_mkupdate
60: #define res_mkupdrec minires_mkupdrec
61: #define res_freeupdrec minires_freeupdrec
62: #define res_nmkupdate minires_nmkupdate
63: #define res_nupdate minires_nupdate
64: #define __p_type_syms MR__p_type_syms
65: #define dn_comp MRdn_comp
66: #define loc_aton MRloc_aton
67: #define sym_ston MRsym_ston
68: #define res_buildservicelist MRres_buildservicelist
69: #define res_destroyservicelist MRres_destroyservicelist
70: #define res_buildprotolist MRres_buildprotolist
71: #define res_destroyprotolist MRres_destroyprotolist
72: #define res_servicenumber MRres_servicenumber
73: #define res_protocolnumber MRres_protocolnumber
74: #define res_protocolname MRres_protocolname
75: #define res_servicename MRres_servicename
76: #define ns_datetosecs MRns_datetosecs
77: #define b64_pton MRb64_pton
78: #define res_ninit minires_ninit
79: #define res_randomid MRres_randomid
80: #define res_findzonecut MRres_findzonecut
81: #define res_nsend MRres_nsend
82: #define res_nsendsigned MRres_nsendsigned
83: #define ns_samename MRns_samename
84: #define res_nameinquery MRres_nameinquery
85: #define res_queriesmatch MRres_queriesmatch
86: #define dn_expand MRdn_expand
87: #define ns_get16 MRns_get16
88: #define res_close MRres_close
89: #define res_nclose MRres_nclose
90: #define res_ourserver_p MRres_ourserver_p
91: #define ns_sign MRns_sign
92: #define p_class MRp_class
93: #define p_section MRp_section
94: #define ns_makecanon MRns_makecanon
95: #define ns_parserr MRns_parserr
96: #define ns_samedomain MRns_samedomain
97: #define ns_name_uncompress MRns_name_uncompress
98: #define res_nmkquery MRres_nmkquery
99: #define ns_initparse MRns_initparse
100: #define res_nquery MRres_nquery
101: #define res_nsearch MRres_nsearch
102: #define res_hostalias MRres_hostalias
103: #define res_nquerydomain MRres_nquerydomain
104: #define ns_skiprr MRns_skiprr
105: #define dn_skipname MRdn_skipname
106: #define ns_name_ntol MRns_name_ntol
107: #define ns_sign_tcp_init MRns_sign_tcp_init
108: #define ns_sign_tcp MRns_sign_tcp
109: #define ns_name_ntop MRns_name_ntop
110: #define ns_name_pton MRns_name_pton
111: #define ns_name_unpack MRns_name_unpack
112: #define ns_name_pack MRns_name_pack
113: #define ns_name_compress MRns_name_compress
114: #define ns_name_skip MRns_name_skip
115: #define ns_subdomain MRns_subdomain
116: #define ns_find_tsig MRns_find_tsig
117: #define ns_verify MRns_verify
118: #define ns_verify_tcp_init MRns_verify_tcp_init
119: #define ns_verify_tcp MRns_verify_tcp
120: #define b64_ntop MRb64_ntop
121:
122: extern const struct res_sym __p_type_syms[];
123: extern struct timeval cur_tv;
124: #define cur_time cur_tv.tv_sec
125:
126: int dn_comp (const char *,
127: unsigned char *, unsigned, unsigned char **, unsigned char **);
128: int loc_aton (const char *, u_char *);
129: int sym_ston (const struct res_sym *, const char *, int *);
130: void res_buildservicelist (void);
131: void res_destroyservicelist (void);
132: void res_buildprotolist(void);
133: void res_destroyprotolist(void);
134: const char *res_protocolname(int);
135: const char *res_servicename(u_int16_t, const char *);
136: u_int32_t ns_datetosecs (const char *cp, int *errp);
137: int b64_pton (char const *, unsigned char *, size_t);
138: u_int res_randomid(void);
139: isc_result_t res_findzonecut (res_state, const char *, ns_class, int, char *,
140: size_t, struct in_addr *, int, int *, void *);
141: isc_result_t res_nsend (res_state,
142: double *, unsigned, double *, unsigned, unsigned *);
143: isc_result_t res_nsendsigned (res_state, double *, unsigned, ns_tsig_key *,
144: double *, unsigned, unsigned *);
145: int ns_samename (const char *, const char *);
146: int res_nameinquery (const char *, int, int,
147: const unsigned char *, const unsigned char *);
148: int res_queriesmatch (const unsigned char *, const unsigned char *,
149: const unsigned char *, const unsigned char *);
150: int dn_expand (const unsigned char *,
151: const unsigned char *, const unsigned char *, char *, unsigned);
152: unsigned int ns_get16 (const unsigned char *);
153: void res_close (void);
154: void res_nclose (res_state);
155: int res_ourserver_p (const res_state, const struct sockaddr_in *);
156: isc_result_t ns_sign (unsigned char *, unsigned *,
157: unsigned, int, void *, const unsigned char *,
158: unsigned, unsigned char *, unsigned *, time_t);
159: const char *p_class (int);
160: const char *p_section (int section, int opcode);
161: isc_result_t ns_makecanon (const char *, char *, size_t);
162: isc_result_t ns_parserr (ns_msg *, ns_sect, int, ns_rr *);
163: int ns_samedomain (const char *, const char *);
164: int ns_name_uncompress (const u_char *, const u_char *,
165: const u_char *, char *, size_t);
166: isc_result_t res_nmkquery (res_state, int, const char *, ns_class, ns_type,
167: const unsigned char *, unsigned,
168: const unsigned char *, double *,
169: unsigned, unsigned *);
170: isc_result_t ns_initparse (const unsigned char *, unsigned, ns_msg *);
171: isc_result_t res_nquery(res_state, const char *,
172: ns_class, ns_type, double *, unsigned, unsigned *);
173: isc_result_t res_nsearch(res_state, const char *,
174: ns_class, ns_type, double *, unsigned, unsigned *);
175: const char *res_hostalias (const res_state, const char *, char *, size_t);
176: isc_result_t res_nquerydomain(res_state, const char *, const char *,
177: ns_class class, ns_type type,
178: double *, unsigned, unsigned *);
179:
180: isc_result_t ns_skiprr(const unsigned char *,
181: const unsigned char *, ns_sect, int, int *);
182: int dn_skipname (const unsigned char *, const unsigned char *);
183: u_int32_t getULong (const unsigned char *);
184: int32_t getLong (const unsigned char *);
185: u_int32_t getUShort (const unsigned char *);
186: int32_t getShort (const unsigned char *);
187: u_int32_t getUChar (const unsigned char *);
188: void putULong (unsigned char *, u_int32_t);
189: void putLong (unsigned char *, int32_t);
190: void putUShort (unsigned char *, u_int32_t);
191: void putShort (unsigned char *, int32_t);
192: void putUChar (unsigned char *, u_int32_t);
193: int ns_name_ntol (const unsigned char *, unsigned char *, size_t);
194: isc_result_t ns_sign_tcp_init (void *, const unsigned char *,
195: unsigned, ns_tcp_tsig_state *);
196: isc_result_t ns_sign_tcp (unsigned char *,
197: unsigned *, unsigned, int, ns_tcp_tsig_state *, int);
198: int ns_name_pack (const unsigned char *, unsigned char *,
199: unsigned, const unsigned char **, const unsigned char **);
200: int ns_name_skip (const unsigned char **, const unsigned char *);
201: int ns_subdomain (const char *, const char *);
202: unsigned char *ns_find_tsig (unsigned char *, unsigned char *);
203: isc_result_t ns_verify (unsigned char *, unsigned *, void *,
204: const unsigned char *,
205: unsigned, unsigned char *, unsigned *, time_t *, int);
206: isc_result_t ns_verify_tcp_init (void *, const unsigned char *, unsigned,
207: ns_tcp_tsig_state *);
208: isc_result_t ns_verify_tcp (unsigned char *, unsigned *,
209: ns_tcp_tsig_state *, int);
210: int b64_ntop (unsigned char const *, size_t, char *, size_t);
211:
212: isc_result_t find_cached_zone (const char *, ns_class, char *,
213: size_t, struct in_addr *, int, int *, void *);
214: int find_tsig_key (ns_tsig_key **, const char *, void *);
215: int forget_zone (void *);
216: int repudiate_zone (void *);
217: void cache_found_zone (ns_class, char *, struct in_addr *, int);
218: isc_result_t uerr2isc (int);
219: isc_result_t ns_rcode_to_isc (int);
220:
221: #define DprintQ(a,b,c,d)
222: #define Dprint(a,b)
223: #define Perror(a, b, c, d)
224: #define Aerror(a, b, c, d, e)
225: #define DPRINTF(x)
226:
227: #define USE_MD5
228: #endif
229:
230: #if defined (TRACING)
231: void trace_mr_statp_setup (res_state);
232: #endif
233:
234: #endif /* MINIRES_H */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>