#ifndef DLZ_MINIMAL_H
#define DLZ_MINIMAL_H 1
#include <sys/types.h>
#include <sys/socket.h>
#ifdef ISC_PLATFORM_HAVESYSUNH
#include <sys/un.h>
#endif
#include <net/if.h>
#include <netinet/in.h>
#include <arpa/inet.h>
typedef unsigned int isc_result_t;
typedef int isc_boolean_t;
typedef uint32_t dns_ttl_t;
#ifndef DLZ_DLOPEN_VERSION
#define DLZ_DLOPEN_VERSION 3
#define DLZ_DLOPEN_AGE 0
#endif
#define DNS_SDLZFLAG_THREADSAFE 0x00000001U
#define DNS_SDLZFLAG_RELATIVEOWNER 0x00000002U
#define DNS_SDLZFLAG_RELATIVERDATA 0x00000004U
#define ISC_R_SUCCESS 0
#define ISC_R_NOMEMORY 1
#define ISC_R_NOPERM 6
#define ISC_R_NOSPACE 19
#define ISC_R_NOTFOUND 23
#define ISC_R_FAILURE 25
#define ISC_R_NOTIMPLEMENTED 27
#define ISC_R_NOMORE 29
#define ISC_R_INVALIDFILE 30
#define ISC_R_UNEXPECTED 34
#define ISC_R_FILENOTFOUND 38
#define ISC_TRUE 1
#define ISC_FALSE 0
#define ISC_LOG_INFO (-1)
#define ISC_LOG_NOTICE (-2)
#define ISC_LOG_WARNING (-3)
#define ISC_LOG_ERROR (-4)
#define ISC_LOG_CRITICAL (-5)
#define ISC_LOG_DEBUG(level) (level)
#define UNUSED(x) (void)(x)
typedef void *dns_sdlzlookup_t;
typedef void *dns_sdlzallnodes_t;
typedef void *dns_view_t;
typedef void *dns_dlzdb_t;
#if DLZ_DLOPEN_VERSION > 1
typedef struct isc_sockaddr {
union {
struct sockaddr sa;
struct sockaddr_in sin;
struct sockaddr_in6 sin6;
#ifdef ISC_PLATFORM_HAVESYSUNH
struct sockaddr_un sunix;
#endif
} type;
unsigned int length;
void * link;
} isc_sockaddr_t;
#define DNS_CLIENTINFO_VERSION 1
typedef struct dns_clientinfo {
uint16_t version;
void *data;
} dns_clientinfo_t;
typedef isc_result_t (*dns_clientinfo_sourceip_t)(dns_clientinfo_t *client,
isc_sockaddr_t **addrp);
#define DNS_CLIENTINFOMETHODS_VERSION 1
#define DNS_CLIENTINFOMETHODS_AGE 0
typedef struct dns_clientinfomethods {
uint16_t version;
uint16_t age;
dns_clientinfo_sourceip_t sourceip;
} dns_clientinfomethods_t;
#endif
typedef void log_t(int level, const char *fmt, ...);
typedef isc_result_t dns_sdlz_putrr_t(dns_sdlzlookup_t *lookup,
const char *type,
dns_ttl_t ttl,
const char *data);
typedef isc_result_t dns_sdlz_putnamedrr_t(dns_sdlzallnodes_t *allnodes,
const char *name,
const char *type,
dns_ttl_t ttl,
const char *data);
#if DLZ_DLOPEN_VERSION < 3
typedef isc_result_t dns_dlz_writeablezone_t(dns_view_t *view,
const char *zone_name);
#else
typedef isc_result_t dns_dlz_writeablezone_t(dns_view_t *view,
dns_dlzdb_t *dlzdb,
const char *zone_name);
#endif
int
dlz_version(unsigned int *flags);
isc_result_t
dlz_create(const char *dlzname, unsigned int argc, char *argv[],
void **dbdata, ...);
void
dlz_destroy(void *dbdata);
#if DLZ_DLOPEN_VERSION < 3
isc_result_t
dlz_findzonedb(void *dbdata, const char *name);
#else
isc_result_t
dlz_findzonedb(void *dbdata, const char *name,
dns_clientinfomethods_t *methods,
dns_clientinfo_t *clientinfo);
#endif
#if DLZ_DLOPEN_VERSION == 1
isc_result_t
dlz_lookup(const char *zone, const char *name, void *dbdata,
dns_sdlzlookup_t *lookup);
#else
isc_result_t
dlz_lookup(const char *zone, const char *name, void *dbdata,
dns_sdlzlookup_t *lookup,
dns_clientinfomethods_t *methods,
dns_clientinfo_t *clientinfo);
#endif
isc_result_t
dlz_authority(const char *zone, void *dbdata, dns_sdlzlookup_t *lookup);
isc_result_t
dlz_allowzonexfr(void *dbdata, const char *name, const char *client);
isc_result_t
dlz_allnodes(const char *zone, void *dbdata, dns_sdlzallnodes_t *allnodes);
isc_result_t
dlz_newversion(const char *zone, void *dbdata, void **versionp);
void
dlz_closeversion(const char *zone, isc_boolean_t commit, void *dbdata,
void **versionp);
#if DLZ_DLOPEN_VERSION < 3
isc_result_t
dlz_configure(dns_view_t *view, void *dbdata);
#else
isc_result_t
dlz_configure(dns_view_t *view, dns_dlzdb_t *dlzdb, void *dbdata);
#endif
isc_boolean_t
dlz_ssumatch(const char *signer, const char *name, const char *tcpaddr,
const char *type, const char *key, uint32_t keydatalen,
uint8_t *keydata, void *dbdata);
isc_result_t
dlz_addrdataset(const char *name, const char *rdatastr, void *dbdata,
void *version);
isc_result_t
dlz_subrdataset(const char *name, const char *rdatastr, void *dbdata,
void *version);
isc_result_t
dlz_delrdataset(const char *name, const char *type, void *dbdata,
void *version);
#endif