dlz_bind9: Build shared libraries for both BIND versions 9.8 and 9.9
authorAmitay Isaacs <amitay@gmail.com>
Thu, 5 Apr 2012 06:45:01 +0000 (16:45 +1000)
committerAmitay Isaacs <amitay@gmail.com>
Mon, 16 Apr 2012 01:16:34 +0000 (11:16 +1000)
This adds #define BIND_VERSION_9_8 and keeps the current version as 9.9, so
shared libraries can be built for both BIND versions.

source4/dns_server/dlz_bind9.c
source4/dns_server/dlz_minimal.h
source4/dns_server/wscript_build

index 153574b1aacb15d4833d8aabbfc2b6399b0269cf..224f242b879d0b5da7024e6247c87bdd1dabab4a 100644 (file)
@@ -846,10 +846,15 @@ static isc_result_t dlz_lookup_types(struct dlz_bind9_data *state,
 /*
   lookup one record
  */
+#ifdef BIND_VERSION_9_8
+_PUBLIC_ isc_result_t dlz_lookup(const char *zone, const char *name,
+                                void *dbdata, dns_sdlzlookup_t *lookup)
+#else
 _PUBLIC_ 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
 {
        struct dlz_bind9_data *state = talloc_get_type_abort(dbdata, struct dlz_bind9_data);
        return dlz_lookup_types(state, zone, name, lookup, NULL);
index 3f408ab117c1c0ae6716ab4723fb80e1b814ee70..5262cbdaa6aebe1ff896c5674421d29c2c96c431 100644 (file)
   tree.
  */
 typedef unsigned int isc_result_t;
+#ifdef BIND_VERSION_9_8
+typedef bool isc_boolean_t;
+#else
 typedef int isc_boolean_t;
+#endif
 typedef uint32_t dns_ttl_t;
 
+#ifdef BIND_VERSION_9_8
+#define DLZ_DLOPEN_VERSION 1
+#else
 #define DLZ_DLOPEN_VERSION 2
+#endif
 
 /* return this in flags to dlz_version() if thread safe */
 #define DNS_SDLZFLAG_THREADSAFE                0x00000001U
@@ -108,10 +116,15 @@ isc_result_t dlz_findzonedb(void *dbdata, const char *name);
 /*
   dlz_lookup is required for all DLZ external drivers
  */
+#ifdef BIND_VERSION_9_8
+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
 
 /*
   dlz_allowzonexfr() is optional, and should be supplied if you want
index 29895b2d185fd47ead82c23bc6891cd250edeaf8..e508fcdbe65f73b7cf264cb3bee6079976becaf8 100644 (file)
@@ -12,8 +12,18 @@ bld.SAMBA_MODULE('service_dns',
 # a bind9 dlz module giving access to the Samba DNS SAM
 bld.SAMBA_LIBRARY('dlz_bind9',
                   source='dlz_bind9.c',
+                  cflags='-DBIND_VERSION_9_8',
                   private_library=True,
                   link_name='modules/bind9/dlz_bind9.so',
                   realname='dlz_bind9.so',
                   install_path='${MODULESDIR}/bind9',
                   deps='samba-hostconfig samdb gensec popt')
+
+bld.SAMBA_LIBRARY('dlz_bind9_9',
+                  source='dlz_bind9.c',
+                  cflags='-DBIND_VERSION_9_9',
+                  private_library=True,
+                  link_name='modules/bind9/dlz_bind9_9.so',
+                  realname='dlz_bind9.so',
+                  install_path='${MODULESDIR}/bind9',
+                  deps='samba-hostconfig samdb gensec popt')