source: trunk/server/source4/dns_server/dlz_minimal.h

Last change on this file was 745, checked in by Silvan Scherrer, 13 years ago

Samba Server: updated trunk to 3.6.0

File size: 4.3 KB
Line 
1/*
2 * Copyright (C) 2010 Andrew Tridgell
3 *
4 * Permission to use, copy, modify, and distribute this software for any
5 * purpose with or without fee is hereby granted, provided that the
6 * above copyright notice and this permission notice appear in all
7 * copies.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR
10 * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
11 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
12 * THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR
13 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
14 * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
15 * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE
16 * USE OR PERFORMANCE OF THIS SOFTWARE.
17 */
18
19/*
20 This header provides a minimal set of defines and typedefs needed
21 for building an external DLZ module for bind9. When creating a new
22 external DLZ driver, please copy this header into your own source
23 tree.
24 */
25typedef unsigned int isc_result_t;
26typedef bool isc_boolean_t;
27typedef uint32_t dns_ttl_t;
28
29#define DLZ_DLOPEN_VERSION 1
30
31/* return this in flags to dlz_version() if thread safe */
32#define DNS_SDLZFLAG_THREADSAFE 0x00000001U
33
34/* result codes */
35#define ISC_R_SUCCESS 0
36#define ISC_R_NOMEMORY 1
37#define ISC_R_NOTFOUND 23
38#define ISC_R_FAILURE 25
39
40/* log levels */
41#define ISC_LOG_INFO (-1)
42#define ISC_LOG_NOTICE (-2)
43#define ISC_LOG_WARNING (-3)
44#define ISC_LOG_ERROR (-4)
45#define ISC_LOG_CRITICAL (-5)
46
47/* some opaque structures */
48typedef void *dns_sdlzlookup_t;
49typedef void *dns_sdlzallnodes_t;
50typedef void *dns_view_t;
51
52/*
53 * prototypes for the functions you can include in your driver
54 */
55
56
57/*
58 * dlz_version() is required for all DLZ external drivers. It should
59 * return DLZ_DLOPEN_VERSION
60 */
61int dlz_version(unsigned int *flags);
62
63/*
64 * dlz_create() is required for all DLZ external drivers.
65 */
66isc_result_t dlz_create(const char *dlzname, unsigned int argc, char *argv[], void **dbdata, ...);
67
68/*
69 * dlz_destroy() is optional, and will be called when the driver is
70 * unloaded if supplied
71 */
72void dlz_destroy(void *dbdata);
73
74/*
75 dlz_findzonedb is required for all DLZ external drivers
76 */
77isc_result_t dlz_findzonedb(void *dbdata, const char *name);
78
79/*
80 dlz_lookup is required for all DLZ external drivers
81 */
82isc_result_t dlz_lookup(const char *zone, const char *name,
83 void *dbdata, dns_sdlzlookup_t *lookup);
84
85/*
86 dlz_allowzonexfr() is optional, and should be supplied if you want
87 to support zone transfers
88 */
89isc_result_t dlz_allowzonexfr(void *dbdata, const char *name, const char *client);
90
91
92/*
93 dlz_allnodes() is optional, but must be supplied if supply a
94 dlz_allowzonexfr() function
95 */
96isc_result_t dlz_allnodes(const char *zone, void *dbdata, dns_sdlzallnodes_t *allnodes);
97
98/*
99 dlz_newversion() is optional. It should be supplied if you want to
100 support dynamic updates.
101 */
102isc_result_t dlz_newversion(const char *zone, void *dbdata, void **versionp);
103
104/*
105 dlz_closeversion() is optional, but must be supplied if you supply
106 a dlz_newversion() function
107 */
108void dlz_closeversion(const char *zone, isc_boolean_t commit, void *dbdata, void **versionp);
109
110/*
111 dlz_configure() is optional, but must be supplied if you want to
112 support dynamic updates
113 */
114isc_result_t dlz_configure(dns_view_t *view, void *dbdata);
115
116/*
117 dlz_ssumatch() is optional, but must be supplied if you want to
118 support dynamic updates
119 */
120isc_boolean_t dlz_ssumatch(const char *signer, const char *name, const char *tcpaddr,
121 const char *type, const char *key, uint32_t keydatalen, uint8_t *keydata,
122 void *dbdata);
123
124/*
125 dlz_addrdataset() is optional, but must be supplied if you want to
126 support dynamic updates
127 */
128isc_result_t dlz_addrdataset(const char *name, const char *rdatastr, void *dbdata, void *version);
129
130/*
131 dlz_subrdataset() is optional, but must be supplied if you want to
132 support dynamic updates
133 */
134isc_result_t dlz_subrdataset(const char *name, const char *rdatastr, void *dbdata, void *version);
135
136/*
137 dlz_delrdataset() is optional, but must be supplied if you want to
138 support dynamic updates
139 */
140isc_result_t dlz_delrdataset(const char *name, const char *type, void *dbdata, void *version);
Note: See TracBrowser for help on using the repository browser.