Psyduck - 可達鴨 之 鴨力山大2


Server : LiteSpeed
System : Linux premium217.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User : alloknri ( 880)
PHP Version : 8.1.34
Disable Function : NONE
Directory :  /usr/include/bind9/dns/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //usr/include/bind9/dns/sdb.h
/*
 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
 *
 * See the COPYRIGHT file distributed with this work for additional
 * information regarding copyright ownership.
 */


#ifndef DNS_SDB_H
#define DNS_SDB_H 1

/*****
 ***** Module Info
 *****/

/*! \file dns/sdb.h
 * \brief
 * Simple database API.
 */

/***
 *** Imports
 ***/

#include <inttypes.h>

#include <isc/lang.h>

#include <dns/clientinfo.h>
#include <dns/types.h>

/***
 *** Types
 ***/

/*%
 * A simple database.  This is an opaque type.
 */
typedef struct dns_sdb dns_sdb_t;

/*%
 * A simple database lookup in progress.  This is an opaque type.
 */
typedef struct dns_sdblookup dns_sdblookup_t;

/*%
 * A simple database traversal in progress.  This is an opaque type.
 */
typedef struct dns_sdballnodes dns_sdballnodes_t;

typedef isc_result_t
(*dns_sdblookupfunc_t)(const char *zone, const char *name, void *dbdata,
		       dns_sdblookup_t *lookup,
		       dns_clientinfomethods_t *methods,
		       dns_clientinfo_t *clientinfo);
typedef isc_result_t
(*dns_sdblookup2func_t)(const dns_name_t *zone, const dns_name_t *name,
			void *dbdata, dns_sdblookup_t *lookup,
			dns_clientinfomethods_t *methods,
			dns_clientinfo_t *clientinfo);

typedef isc_result_t
(*dns_sdbauthorityfunc_t)(const char *zone, void *dbdata, dns_sdblookup_t *);

typedef isc_result_t
(*dns_sdballnodesfunc_t)(const char *zone, void *dbdata,
			 dns_sdballnodes_t *allnodes);

typedef isc_result_t
(*dns_sdbcreatefunc_t)(const char *zone, int argc, char **argv,
		       void *driverdata, void **dbdata);

typedef void
(*dns_sdbdestroyfunc_t)(const char *zone, void *driverdata, void **dbdata);


typedef struct dns_sdbmethods {
	dns_sdblookupfunc_t	lookup;
	dns_sdbauthorityfunc_t	authority;
	dns_sdballnodesfunc_t	allnodes;
	dns_sdbcreatefunc_t	create;
	dns_sdbdestroyfunc_t	destroy;
	dns_sdblookup2func_t	lookup2;
} dns_sdbmethods_t;

/***
 *** Functions
 ***/

ISC_LANG_BEGINDECLS

#define DNS_SDBFLAG_RELATIVEOWNER 0x00000001U
#define DNS_SDBFLAG_RELATIVERDATA 0x00000002U
#define DNS_SDBFLAG_THREADSAFE 0x00000004U
#define DNS_SDBFLAG_DNS64 0x00000008U

isc_result_t
dns_sdb_register(const char *drivername, const dns_sdbmethods_t *methods,
		 void *driverdata, unsigned int flags, isc_mem_t *mctx,
		 dns_sdbimplementation_t **sdbimp);
/*%<
 * Register a simple database driver for the database type 'drivername',
 * implemented by the functions in '*methods'.
 *
 * sdbimp must point to a NULL dns_sdbimplementation_t pointer.  That is,
 * sdbimp != NULL && *sdbimp == NULL.  It will be assigned a value that
 * will later be used to identify the driver when deregistering it.
 *
 * The name server will perform lookups in the database by calling the
 * function 'lookup', passing it a printable zone name 'zone', a printable
 * domain name 'name', and a copy of the argument 'dbdata' that
 * was potentially returned by the create function.  The 'dns_sdblookup_t'
 * argument to 'lookup' and 'authority' is an opaque pointer to be passed to
 * ns_sdb_putrr().
 *
 * The lookup function returns the lookup results to the name server
 * by calling ns_sdb_putrr() once for each record found.  On success,
 * the return value of the lookup function should be ISC_R_SUCCESS.
 * If the domain name 'name' does not exist, the lookup function should
 * ISC_R_NOTFOUND.  Any other return value is treated as an error.
 *
 * Lookups at the zone apex will cause the server to also call the
 * function 'authority' (if non-NULL), which must provide an SOA record
 * and NS records for the zone by calling ns_sdb_putrr() once for each of
 * these records.  The 'authority' function may be NULL if invoking
 * the 'lookup' function on the zone apex will return SOA and NS records.
 *
 * The allnodes function, if non-NULL, fills in an opaque structure to be
 * used by a database iterator.  This allows the zone to be transferred.
 * This may use a considerable amount of memory for large zones, and the
 * zone transfer may not be fully RFC1035 compliant if the zone is
 * frequently changed.
 *
 * The create function will be called for each zone configured
 * into the name server using this database type.  It can be used
 * to create a "database object" containing zone specific data,
 * which can make use of the database arguments specified in the
 * name server configuration.
 *
 * The destroy function will be called to free the database object
 * when its zone is destroyed.
 *
 * The create and destroy functions may be NULL.
 *
 * If flags includes DNS_SDBFLAG_RELATIVEOWNER, the lookup and authority
 * functions will be called with relative names rather than absolute names.
 * The string "@" represents the zone apex in this case.
 *
 * If flags includes DNS_SDBFLAG_RELATIVERDATA, the rdata strings may
 * include relative names.  Otherwise, all names in the rdata string must
 * be absolute.  Be aware that if relative names are allowed, any
 * absolute names must contain a trailing dot.
 *
 * If flags includes DNS_SDBFLAG_THREADSAFE, the driver must be able to
 * handle multiple lookups in parallel.  Otherwise, calls into the driver
 * are serialized.
 */

void
dns_sdb_unregister(dns_sdbimplementation_t **sdbimp);
/*%<
 * Removes the simple database driver from the list of registered database
 * types.  There must be no active databases of this type when this function
 * is called.
 */

/*% See dns_sdb_putradata() */
isc_result_t
dns_sdb_putrr(dns_sdblookup_t *lookup, const char *type, dns_ttl_t ttl,
	      const char *data);
isc_result_t
dns_sdb_putrdata(dns_sdblookup_t *lookup, dns_rdatatype_t type, dns_ttl_t ttl,
		 const unsigned char *rdata, unsigned int rdlen);
/*%<
 * Add a single resource record to the lookup structure to be
 * returned in the query response.  dns_sdb_putrr() takes the
 * resource record in master file text format as a null-terminated
 * string, and dns_sdb_putrdata() takes the raw RDATA in
 * uncompressed wire format.
 */

/*% See dns_sdb_putnamerdata() */
isc_result_t
dns_sdb_putnamedrr(dns_sdballnodes_t *allnodes, const char *name,
		   const char *type, dns_ttl_t ttl, const char *data);
isc_result_t
dns_sdb_putnamedrdata(dns_sdballnodes_t *allnodes, const char *name,
		      dns_rdatatype_t type, dns_ttl_t ttl,
		      const void *rdata, unsigned int rdlen);
/*%<
 * Add a single resource record to the allnodes structure to be
 * included in a zone transfer response, in text or wire
 * format as above.
 */

isc_result_t
dns_sdb_putsoa(dns_sdblookup_t *lookup, const char *mname, const char *rname,
	       uint32_t serial);
/*%<
 * This function may optionally be called from the 'authority' callback
 * to simplify construction of the SOA record for 'zone'.  It will
 * provide a SOA listing 'mname' as as the master server and 'rname' as
 * the responsible person mailbox.  It is the responsibility of the
 * driver to increment the serial number between responses if necessary.
 * All other SOA fields will have reasonable default values.
 */

ISC_LANG_ENDDECLS

#endif /* DNS_SDB_H */
Name
Size
Permissions
Options
acache.h
13.898 KB
-rw-r--r--
acl.h
7.072 KB
-rw-r--r--
adb.h
22.065 KB
-rw-r--r--
badcache.h
3.29 KB
-rw-r--r--
bit.h
0.788 KB
-rw-r--r--
byaddr.h
3.908 KB
-rw-r--r--
cache.h
8.44 KB
-rw-r--r--
callbacks.h
2.218 KB
-rw-r--r--
catz.h
11.556 KB
-rw-r--r--
cert.h
1.432 KB
-rw-r--r--
client.h
21.525 KB
-rw-r--r--
clientinfo.h
1.959 KB
-rw-r--r--
compress.h
6.49 KB
-rw-r--r--
db.h
45.958 KB
-rw-r--r--
dbiterator.h
7.248 KB
-rw-r--r--
dbtable.h
3.091 KB
-rw-r--r--
diff.h
6.816 KB
-rw-r--r--
dispatch.h
16.042 KB
-rw-r--r--
dlz.h
10.369 KB
-rw-r--r--
dlz_dlopen.h
4.567 KB
-rw-r--r--
dns64.h
5.503 KB
-rw-r--r--
dnssec.h
11.831 KB
-rw-r--r--
dnstap.h
9.145 KB
-rw-r--r--
ds.h
1.196 KB
-rw-r--r--
dsdigest.h
1.682 KB
-rw-r--r--
dyndb.h
4.722 KB
-rw-r--r--
ecdb.h
0.79 KB
-rw-r--r--
edns.h
0.705 KB
-rw-r--r--
enumclass.h
1.191 KB
-rw-r--r--
enumtype.h
8.105 KB
-rw-r--r--
events.h
3.964 KB
-rw-r--r--
fixedname.h
1.624 KB
-rw-r--r--
forward.h
3.371 KB
-rw-r--r--
geoip.h
2.727 KB
-rw-r--r--
ipkeylist.h
2.135 KB
-rw-r--r--
iptable.h
1.583 KB
-rw-r--r--
journal.h
8.034 KB
-rw-r--r--
keydata.h
1.034 KB
-rw-r--r--
keyflags.h
1.248 KB
-rw-r--r--
keytable.h
9.24 KB
-rw-r--r--
keyvalues.h
4.062 KB
-rw-r--r--
lib.h
1.164 KB
-rw-r--r--
log.h
3.871 KB
-rw-r--r--
lookup.h
2.855 KB
-rw-r--r--
master.h
11.024 KB
-rw-r--r--
masterdump.h
12.351 KB
-rw-r--r--
message.h
38.108 KB
-rw-r--r--
name.h
36.245 KB
-rw-r--r--
ncache.h
4.813 KB
-rw-r--r--
nsec.h
2.859 KB
-rw-r--r--
nsec3.h
7.844 KB
-rw-r--r--
nta.h
4.441 KB
-rw-r--r--
opcode.h
0.983 KB
-rw-r--r--
order.h
1.952 KB
-rw-r--r--
peer.h
5.826 KB
-rw-r--r--
portlist.h
2.052 KB
-rw-r--r--
private.h
1.89 KB
-rw-r--r--
rbt.h
39.666 KB
-rw-r--r--
rcode.h
2.423 KB
-rw-r--r--
rdata.h
21.106 KB
-rw-r--r--
rdataclass.h
2.204 KB
-rw-r--r--
rdatalist.h
2.509 KB
-rw-r--r--
rdataset.h
21.031 KB
-rw-r--r--
rdatasetiter.h
3.834 KB
-rw-r--r--
rdataslab.h
4.396 KB
-rw-r--r--
rdatastruct.h
60.141 KB
-rw-r--r--
rdatatype.h
2.244 KB
-rw-r--r--
request.h
10.895 KB
-rw-r--r--
resolver.h
19.753 KB
-rw-r--r--
result.h
9.066 KB
-rw-r--r--
rootns.h
0.871 KB
-rw-r--r--
rpz.h
10.093 KB
-rw-r--r--
rriterator.h
4.131 KB
-rw-r--r--
rrl.h
6.484 KB
-rw-r--r--
sdb.h
7.055 KB
-rw-r--r--
sdlz.h
13.881 KB
-rw-r--r--
secalg.h
1.666 KB
-rw-r--r--
secproto.h
1.521 KB
-rw-r--r--
soa.h
2.135 KB
-rw-r--r--
ssu.h
8.113 KB
-rw-r--r--
stats.h
13.136 KB
-rw-r--r--
tcpmsg.h
3.071 KB
-rw-r--r--
time.h
1.655 KB
-rw-r--r--
timer.h
1.026 KB
-rw-r--r--
tkey.h
7.452 KB
-rw-r--r--
tsec.h
2.88 KB
-rw-r--r--
tsig.h
8.188 KB
-rw-r--r--
ttl.h
1.899 KB
-rw-r--r--
types.h
13.826 KB
-rw-r--r--
update.h
1.614 KB
-rw-r--r--
validator.h
6.993 KB
-rw-r--r--
version.h
0.848 KB
-rw-r--r--
view.h
34.447 KB
-rw-r--r--
xfrin.h
2.855 KB
-rw-r--r--
zone.h
59.438 KB
-rw-r--r--
zonekey.h
0.759 KB
-rw-r--r--
zt.h
5.432 KB
-rw-r--r--