summaryrefslogtreecommitdiffstats
path: root/contrib/bind9/lib/dns/include/dns/dlz.h
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/bind9/lib/dns/include/dns/dlz.h')
-rw-r--r--contrib/bind9/lib/dns/include/dns/dlz.h290
1 files changed, 0 insertions, 290 deletions
diff --git a/contrib/bind9/lib/dns/include/dns/dlz.h b/contrib/bind9/lib/dns/include/dns/dlz.h
deleted file mode 100644
index 4c61c91..0000000
--- a/contrib/bind9/lib/dns/include/dns/dlz.h
+++ /dev/null
@@ -1,290 +0,0 @@
-/*
- * Portions Copyright (C) 2005 Internet Systems Consortium, Inc. ("ISC")
- * Portions Copyright (C) 1999-2001 Internet Software Consortium.
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
- * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
- * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
- * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
- * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
-
-/*
- * Copyright (C) 2002 Stichting NLnet, Netherlands, stichting@nlnet.nl.
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the
- * above copyright notice and this permission notice appear in all
- * copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND STICHTING NLNET
- * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
- * STICHTING NLNET BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
- * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
- * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE
- * USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * The development of Dynamically Loadable Zones (DLZ) for Bind 9 was
- * conceived and contributed by Rob Butler.
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the
- * above copyright notice and this permission notice appear in all
- * copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND ROB BUTLER
- * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
- * ROB BUTLER BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
- * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
- * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE
- * USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-/* $Id: dlz.h,v 1.2.2.2 2005/09/06 03:47:18 marka Exp $ */
-
-/*! \file */
-
-#ifndef DLZ_H
-#define DLZ_H 1
-
-/*****
- ***** Module Info
- *****/
-
-/*
- * DLZ Interface
- *
- * The DLZ interface allows zones to be looked up using a driver instead of
- * Bind's default in memory zone table.
- *
- *
- * Reliability:
- * No anticipated impact.
- *
- * Resources:
- *
- * Security:
- * No anticipated impact.
- *
- * Standards:
- * None.
- */
-
-/*****
- ***** Imports
- *****/
-
-#include <dns/name.h>
-#include <dns/types.h>
-#include <dns/view.h>
-
-#include <isc/lang.h>
-
-ISC_LANG_BEGINDECLS
-
-/***
- *** Types
- ***/
-
-#define DNS_DLZ_MAGIC ISC_MAGIC('D','L','Z','D')
-#define DNS_DLZ_VALID(dlz) ISC_MAGIC_VALID(dlz, DNS_DLZ_MAGIC)
-
-typedef isc_result_t
-(*dns_dlzallowzonexfr_t)(void *driverarg, void *dbdata, isc_mem_t *mctx,
- dns_rdataclass_t rdclass, dns_name_t *name,
- isc_sockaddr_t *clientaddr,
- dns_db_t **dbp);
-
-/*%<
- * Method prototype. Drivers implementing the DLZ interface MUST
- * supply an allow zone transfer method. This method is called when
- * the DNS server is performing a zone transfer query. The driver's
- * method should return ISC_R_SUCCESS and a database pointer to the
- * name server if the zone is supported by the database, and zone
- * transfer is allowed. Otherwise it will return ISC_R_NOTFOUND if
- * the zone is not supported by the database, or ISC_R_NOPERM if zone
- * transfers are not allowed. If an error occurs it should return a
- * result code indicating the type of error.
- */
-
-typedef isc_result_t
-(*dns_dlzcreate_t)(isc_mem_t *mctx, const char *dlzname, unsigned int argc,
- char *argv[], void *driverarg, void **dbdata);
-
-/*%<
- * Method prototype. Drivers implementing the DLZ interface MUST
- * supply a create method. This method is called when the DNS server
- * is starting up and creating drivers for use later.
- */
-
-typedef void
-(*dns_dlzdestroy_t)(void *driverarg, void **dbdata);
-
-/*%<
- * Method prototype. Drivers implementing the DLZ interface MUST
- * supply a destroy method. This method is called when the DNS server
- * is shuting down and no longer needs the driver.
- */
-
-typedef isc_result_t
-(*dns_dlzfindzone_t)(void *driverarg, void *dbdata, isc_mem_t *mctx,
- dns_rdataclass_t rdclass, dns_name_t *name,
- dns_db_t **dbp);
-
-/*%<
-
- * Method prototype. Drivers implementing the DLZ interface MUST
- * supply a find zone method. This method is called when the DNS
- * server is performing a query. The find zone method will be called
- * with the longest possible name first, and continue to be called
- * with successively shorter domain names, until any of the following
- * occur:
- *
- * \li 1) a match is found, and the function returns (ISC_R_SUCCESS)
- *
- * \li 2) a problem occurs, and the functions returns anything other
- * than (ISC_R_NOTFOUND)
- * \li 3) we run out of domain name labels. I.E. we have tried the
- * shortest domain name
- * \li 4) the number of labels in the domain name is less than
- * min_lables for dns_dlzfindzone
- *
- * The driver's find zone method should return ISC_R_SUCCESS and a
- * database pointer to the name server if the zone is supported by the
- * database. Otherwise it will return ISC_R_NOTFOUND, and a null
- * pointer if the zone is not supported. If an error occurs it should
- * return a result code indicating the type of error.
- */
-
-/*% the methods supplied by a DLZ driver */
-typedef struct dns_dlzmethods {
- dns_dlzcreate_t create;
- dns_dlzdestroy_t destroy;
- dns_dlzfindzone_t findzone;
- dns_dlzallowzonexfr_t allowzonexfr;
-} dns_dlzmethods_t;
-
-/*% information about a DLZ driver */
-struct dns_dlzimplementation {
- const char *name;
- const dns_dlzmethods_t *methods;
- isc_mem_t *mctx;
- void *driverarg;
- ISC_LINK(dns_dlzimplementation_t) link;
-};
-
-/*% an instance of a DLZ driver */
-struct dns_dlzdb {
- unsigned int magic;
- isc_mem_t *mctx;
- dns_dlzimplementation_t *implementation;
- void *dbdata;
-};
-
-
-/***
- *** Method declarations
- ***/
-
-isc_result_t
-dns_dlzallowzonexfr(dns_view_t *view, dns_name_t *name,
- isc_sockaddr_t *clientaddr, dns_db_t **dbp);
-
-/*%<
- * This method is called when the DNS server is performing a zone
- * transfer query. It will call the DLZ driver's allow zone tranfer
- * method.
- */
-
-isc_result_t
-dns_dlzcreate(isc_mem_t *mctx, const char *dlzname,
- const char *drivername, unsigned int argc,
- char *argv[], dns_dlzdb_t **dbp);
-
-/*%<
- * This method is called when the DNS server is starting up and
- * creating drivers for use later. It will search the DLZ driver list
- * for 'drivername' and return a DLZ driver via dbp if a match is
- * found. If the DLZ driver supplies a create method, this function
- * will call it.
- */
-
-void
-dns_dlzdestroy(dns_dlzdb_t **dbp);
-
-/*%<
- * This method is called when the DNS server is shuting down and no
- * longer needs the driver. If the DLZ driver supplies a destroy
- * methods, this function will call it.
- */
-
-isc_result_t
-dns_dlzfindzone(dns_view_t *view, dns_name_t *name,
- unsigned int minlabels, dns_db_t **dbp);
-
-/*%<
- * This method is called when the DNS server is performing a query.
- * It will call the DLZ driver's find zone method.
- */
-
-isc_result_t
-dns_dlzregister(const char *drivername, const dns_dlzmethods_t *methods,
- void *driverarg, isc_mem_t *mctx,
- dns_dlzimplementation_t **dlzimp);
-
-/*%<
- * Register a dynamically loadable zones (DLZ) driver for the database
- * type 'drivername', implemented by the functions in '*methods'.
- *
- * dlzimp must point to a NULL dlz_implementation_t pointer. That is,
- * dlzimp != NULL && *dlzimp == NULL. It will be assigned a value that
- * will later be used to identify the driver when deregistering it.
- */
-
-isc_result_t
-dns_dlzstrtoargv(isc_mem_t *mctx, char *s, unsigned int *argcp, char ***argvp);
-
-/*%<
- * This method is called when the name server is starting up to parse
- * the DLZ driver command line from named.conf. Basically it splits
- * up a string into and argc / argv. The primary difference of this
- * method is items between braces { } are considered only 1 word. for
- * example the command line "this is { one grouped phrase } and this
- * isn't" would be parsed into:
- *
- * \li argv[0]: "this"
- * \li argv[1]: "is"
- * \li argv{2]: " one grouped phrase "
- * \li argv[3]: "and"
- * \li argv[4]: "this"
- * \li argv{5}: "isn't"
- *
- * braces should NOT be nested, more than one grouping in the command
- * line is allowed. Notice, argv[2] has an extra space at the
- * beginning and end. Extra spaces are not stripped between a
- * grouping. You can do so in your driver if needed, or be sure not
- * to put extra spaces before / after the braces.
- */
-
-void
-dns_dlzunregister(dns_dlzimplementation_t **dlzimp);
-
-/*%<
- * Removes the dlz driver from the list of registered dlz drivers.
- * There must be no active dlz drivers of this type when this function
- * is called.
- */
-
-ISC_LANG_ENDDECLS
-
-#endif /* DLZ_H */
OpenPOWER on IntegriCloud