[master] merge dyndb

4224.	[func]		Added support for "dyndb", a new interface for loading
			zone data from an external database, developed by
			Red Hat for the FreeIPA project.

			DynDB drivers fully implement the BIND database
			API, and are capable of significantly better
			performance and functionality than DLZ drivers,
			while taking advantage of advanced database
			features not available in BIND such as multi-master
			replication.

			Thanks to Adam Tkac and Petr Spacek of Red Hat.
			[RT #35271]
This commit is contained in:
Evan Hunt
2015-09-28 23:12:35 -07:00
parent 4d085258cc
commit a00f9e2f50
56 changed files with 3270 additions and 109 deletions

View File

@@ -0,0 +1,47 @@
/**
* Driver instance object.
*
* Copyright (C) 2009-2015 Red Hat ; see COPYRIGHT for license
*/
#ifndef _LD_INSTANCE_H_
#define _LD_INSTANCE_H_
#include <dns/fixedname.h>
#include <dns/name.h>
#include <dns/types.h>
struct sample_instance {
isc_mem_t *mctx;
const char *db_name;
dns_dbimplementation_t *db_imp;
/* These are needed for zone creation. */
dns_view_t *view;
dns_zonemgr_t *zmgr;
isc_task_t *task;
isc_boolean_t exiting;
dns_zone_t *zone1;
dns_fixedname_t zone1_fn;
dns_name_t *zone1_name;
dns_zone_t *zone2;
dns_fixedname_t zone2_fn;
dns_name_t *zone2_name;
};
typedef struct sample_instance sample_instance_t;
isc_result_t
new_sample_instance(isc_mem_t *mctx, const char *db_name,
int argc, char **argv, const dns_dyndbctx_t *dctx,
sample_instance_t **sample_instp);
isc_result_t
load_sample_instance_zones(sample_instance_t *inst);
void
destroy_sample_instance(sample_instance_t **sample_instp);
#endif /* !_LD_INSTANCE_H_ */