[SCM] Samba Shared Repository - branch master updated
Jeremy Allison
jra at samba.org
Fri Oct 28 01:43:04 UTC 2016
The branch, master has been updated
via 2959c88 provision: Add support for BIND 9.11.x
via c8c330d dlz-bind: Add support for BIND 9.11.x
via e63e51a dlz-bind: Set DNS_CLIENTINFO_VERSION based on BIND version
via 370d6ba dlz-bind: Fix initialization of DLZ_DLOPEN_AGE
via fbafd26 dlz-bind: Fix preprocessor checks for BIND versions
via 546f172 ctdb-packaging: Update required tdb version for tdb_storev()
via 2c736f4 ctdb-tools: Simplify using a local variable
via e42648f ctdb-tools: Simplify using tdb_storev
via c09567f ctdb-tool: Simplify using tdb_storev
via e808021 ctdb-client: Simplify using tdb_storev
via 25eedf4 ctdb-client: Simplify using a local variable
via 3c03754 ctdb-daemon: Simplify code using tdb_storev
via 47298ed ctdb-common: Simplify code using tdb_storev
via 12fd2dd ctdb-daemon: Simplify code using local variable
via eb1b211 ctdb-common: Simplify code using local variables
from f7c6268 s3-waf: Add winbindd to its own wscript_build file (already exists)
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 2959c8888d46902e140963ed4190d23a7609b8da
Author: Amitay Isaacs <amitay at gmail.com>
Date: Tue Sep 27 00:51:03 2016 +1000
provision: Add support for BIND 9.11.x
BUG: https://bugzilla.samba.org/show_bug.cgi?id=12366
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Jeremy Allison <jra at samba.org>
Autobuild-User(master): Jeremy Allison <jra at samba.org>
Autobuild-Date(master): Fri Oct 28 03:42:25 CEST 2016 on sn-devel-144
commit c8c330d5f4921aaca803b9ff571aacb0dde0c7bc
Author: Amitay Isaacs <amitay at gmail.com>
Date: Tue Sep 27 00:51:03 2016 +1000
dlz-bind: Add support for BIND 9.11.x
BUG: https://bugzilla.samba.org/show_bug.cgi?id=12366
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit e63e51a2cfd89c5bb2c16b2521ffce864ca5b373
Author: Amitay Isaacs <amitay at gmail.com>
Date: Tue Sep 27 01:00:34 2016 +1000
dlz-bind: Set DNS_CLIENTINFO_VERSION based on BIND version
BUG: https://bugzilla.samba.org/show_bug.cgi?id=12366
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 370d6baaa60ca7aacab85852622cdca8bdb06d34
Author: Amitay Isaacs <amitay at gmail.com>
Date: Tue Sep 27 00:57:00 2016 +1000
dlz-bind: Fix initialization of DLZ_DLOPEN_AGE
BUG: https://bugzilla.samba.org/show_bug.cgi?id=12366
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit fbafd2699b03902cbb7e5131ed7d345190798392
Author: Amitay Isaacs <amitay at gmail.com>
Date: Tue Sep 27 00:52:53 2016 +1000
dlz-bind: Fix preprocessor checks for BIND versions
BUG: https://bugzilla.samba.org/show_bug.cgi?id=12366
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 546f1722c95efe597a0eab799cd222aa0e30e929
Author: Amitay Isaacs <amitay at gmail.com>
Date: Thu Sep 15 16:36:33 2016 +1000
ctdb-packaging: Update required tdb version for tdb_storev()
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
commit 2c736f4408c47bdeef9f84da42e4294f5336d69b
Author: Amitay Isaacs <amitay at gmail.com>
Date: Wed Oct 12 15:46:17 2016 +1100
ctdb-tools: Simplify using a local variable
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
commit e42648f977d944e3b33347a2adb109e0d89c91d4
Author: Amitay Isaacs <amitay at gmail.com>
Date: Wed Oct 12 15:41:25 2016 +1100
ctdb-tools: Simplify using tdb_storev
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
commit c09567fe59feb701e523425f6cdaf1736b2795fa
Author: Amitay Isaacs <amitay at gmail.com>
Date: Wed Oct 12 15:37:47 2016 +1100
ctdb-tool: Simplify using tdb_storev
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
commit e80802103bbce81ce7eafe652fa594306f05f306
Author: Amitay Isaacs <amitay at gmail.com>
Date: Wed Oct 12 15:32:29 2016 +1100
ctdb-client: Simplify using tdb_storev
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
commit 25eedf4695da601e59d35b81013c3229407458c3
Author: Amitay Isaacs <amitay at gmail.com>
Date: Wed Oct 12 15:32:17 2016 +1100
ctdb-client: Simplify using a local variable
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
commit 3c037549219c48c54f519ccceb53c692d983b245
Author: Amitay Isaacs <amitay at gmail.com>
Date: Fri Sep 2 17:53:32 2016 +1000
ctdb-daemon: Simplify code using tdb_storev
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
commit 47298ed5ba10273bb5a150e48a106f1a238f8fee
Author: Amitay Isaacs <amitay at gmail.com>
Date: Fri Sep 2 17:22:26 2016 +1000
ctdb-common: Simplify code using tdb_storev
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
commit 12fd2ddc01044e34ff5b38d71972b62ad38725d2
Author: Amitay Isaacs <amitay at gmail.com>
Date: Fri Sep 2 17:51:36 2016 +1000
ctdb-daemon: Simplify code using local variable
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
commit eb1b211c9ef0a93b0f74ba763421872def36bb1c
Author: Amitay Isaacs <amitay at gmail.com>
Date: Fri Sep 2 17:11:17 2016 +1000
ctdb-common: Simplify code using local variables
Signed-off-by: Amitay Isaacs <amitay at gmail.com>
Reviewed-by: Martin Schwenke <martin at meltin.net>
-----------------------------------------------------------------------
Summary of changes:
ctdb/client/client_db.c | 34 ++++++++++--------------
ctdb/common/ctdb_ltdb.c | 44 +++++++++++++++++--------------
ctdb/packaging/RPM/ctdb.spec.in | 2 +-
ctdb/server/ctdb_ltdb_server.c | 45 +++++++++++++++++--------------
ctdb/tools/ctdb.c | 22 +++++++---------
ctdb/tools/ltdbtool.c | 33 ++++++++++++-----------
python/samba/provision/sambadns.py | 6 ++++-
source4/dns_server/dlz_minimal.h | 54 +++++++++++++++++++++++++++++++-------
source4/dns_server/wscript_build | 10 +++++++
source4/setup/named.conf.dlz | 3 +++
10 files changed, 153 insertions(+), 100 deletions(-)
Changeset truncated at 500 lines:
diff --git a/ctdb/client/client_db.c b/ctdb/client/client_db.c
index 794119d..888cfbc3 100644
--- a/ctdb/client/client_db.c
+++ b/ctdb/client/client_db.c
@@ -1046,8 +1046,8 @@ int ctdb_fetch_lock(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
int ctdb_store_record(struct ctdb_record_handle *h, TDB_DATA data)
{
- TDB_DATA rec;
- size_t offset;
+ uint8_t header[sizeof(struct ctdb_ltdb_header)];
+ TDB_DATA rec[2];
int ret;
/* Cannot modify the record if it was obtained as a readonly copy */
@@ -1062,25 +1062,22 @@ int ctdb_store_record(struct ctdb_record_handle *h, TDB_DATA data)
return 0;
}
- offset = ctdb_ltdb_header_len(&h->header);
- rec.dsize = offset + data.dsize;
- rec.dptr = talloc_size(h, rec.dsize);
- if (rec.dptr == NULL) {
- return ENOMEM;
- }
+ ctdb_ltdb_header_push(&h->header, header);
- ctdb_ltdb_header_push(&h->header, rec.dptr);
- memcpy(rec.dptr + offset, data.dptr, data.dsize);
+ rec[0].dsize = ctdb_ltdb_header_len(&h->header);
+ rec[0].dptr = header;
- ret = tdb_store(h->db->ltdb->tdb, h->key, rec, TDB_REPLACE);
+ rec[1].dsize = data.dsize;
+ rec[1].dptr = data.dptr;
+
+ ret = tdb_storev(h->db->ltdb->tdb, h->key, rec, 2, TDB_REPLACE);
if (ret != 0) {
DEBUG(DEBUG_ERR,
- ("store_record: %s tdb_store failed, %s\n",
+ ("store_record: %s tdb_storev failed, %s\n",
h->db->db_name, tdb_errorstr(h->db->ltdb->tdb)));
return EIO;
}
- talloc_free(rec.dptr);
return 0;
}
@@ -1098,6 +1095,7 @@ struct tevent_req *ctdb_delete_record_send(TALLOC_CTX *mem_ctx,
struct ctdb_delete_record_state *state;
struct ctdb_key_data key;
struct ctdb_req_control request;
+ uint8_t header[sizeof(struct ctdb_ltdb_header)];
TDB_DATA rec;
int ret;
@@ -1117,16 +1115,12 @@ struct tevent_req *ctdb_delete_record_send(TALLOC_CTX *mem_ctx,
return tevent_req_post(req, ev);
}
- rec.dsize = ctdb_ltdb_header_len(&h->header);
- rec.dptr = talloc_size(h, rec.dsize);
- if (tevent_req_nomem(rec.dptr, req)) {
- return tevent_req_post(req, ev);
- }
+ ctdb_ltdb_header_push(&h->header, header);
- ctdb_ltdb_header_push(&h->header, rec.dptr);
+ rec.dsize = ctdb_ltdb_header_len(&h->header);
+ rec.dptr = header;
ret = tdb_store(h->db->ltdb->tdb, h->key, rec, TDB_REPLACE);
- talloc_free(rec.dptr);
if (ret != 0) {
DEBUG(DEBUG_ERR,
("fetch_lock delete: %s tdb_sore failed, %s\n",
diff --git a/ctdb/common/ctdb_ltdb.c b/ctdb/common/ctdb_ltdb.c
index 6c941d8..d776a79 100644
--- a/ctdb/common/ctdb_ltdb.c
+++ b/ctdb/common/ctdb_ltdb.c
@@ -170,7 +170,8 @@ int ctdb_ltdb_store(struct ctdb_db_context *ctdb_db, TDB_DATA key,
struct ctdb_ltdb_header *header, TDB_DATA data)
{
struct ctdb_context *ctdb = ctdb_db->ctdb;
- TDB_DATA rec;
+ TDB_DATA rec[2];
+ uint32_t hsize = sizeof(struct ctdb_ltdb_header);
int ret;
bool seqnum_suppressed = false;
@@ -179,22 +180,27 @@ int ctdb_ltdb_store(struct ctdb_db_context *ctdb_db, TDB_DATA key,
}
if (ctdb->flags & CTDB_FLAG_TORTURE) {
+ TDB_DATA old;
struct ctdb_ltdb_header *h2;
- rec = tdb_fetch(ctdb_db->ltdb->tdb, key);
- h2 = (struct ctdb_ltdb_header *)rec.dptr;
- if (rec.dptr && rec.dsize >= sizeof(h2) && h2->rsn > header->rsn) {
- DEBUG(DEBUG_CRIT,("RSN regression! %llu %llu\n",
- (unsigned long long)h2->rsn, (unsigned long long)header->rsn));
+
+ old = tdb_fetch(ctdb_db->ltdb->tdb, key);
+ h2 = (struct ctdb_ltdb_header *)old.dptr;
+ if (old.dptr != NULL && old.dsize >= hsize &&
+ h2->rsn > header->rsn) {
+ DEBUG(DEBUG_ERR,
+ ("RSN regression! %"PRIu64" %"PRIu64"\n",
+ h2->rsn, header->rsn));
+ }
+ if (old.dptr != NULL) {
+ free(old.dptr);
}
- if (rec.dptr) free(rec.dptr);
}
- rec.dsize = sizeof(*header) + data.dsize;
- rec.dptr = talloc_size(ctdb, rec.dsize);
- CTDB_NO_MEMORY(ctdb, rec.dptr);
+ rec[0].dsize = hsize;
+ rec[0].dptr = (uint8_t *)header;
- memcpy(rec.dptr, header, sizeof(*header));
- memcpy(rec.dptr + sizeof(*header), data.dptr, data.dsize);
+ rec[1].dsize = data.dsize;
+ rec[1].dptr = data.dptr;
/* Databases with seqnum updates enabled only get their seqnum
changes when/if we modify the data */
@@ -202,16 +208,16 @@ int ctdb_ltdb_store(struct ctdb_db_context *ctdb_db, TDB_DATA key,
TDB_DATA old;
old = tdb_fetch(ctdb_db->ltdb->tdb, key);
- if ( (old.dsize == rec.dsize)
- && !memcmp(old.dptr+sizeof(struct ctdb_ltdb_header),
- rec.dptr+sizeof(struct ctdb_ltdb_header),
- rec.dsize-sizeof(struct ctdb_ltdb_header)) ) {
+ if ((old.dsize == hsize + data.dsize) &&
+ memcmp(old.dptr+hsize, data.dptr, data.dsize) == 0) {
tdb_remove_flags(ctdb_db->ltdb->tdb, TDB_SEQNUM);
seqnum_suppressed = true;
}
- if (old.dptr) free(old.dptr);
+ if (old.dptr != NULL) {
+ free(old.dptr);
+ }
}
- ret = tdb_store(ctdb_db->ltdb->tdb, key, rec, TDB_REPLACE);
+ ret = tdb_storev(ctdb_db->ltdb->tdb, key, rec, 2, TDB_REPLACE);
if (ret != 0) {
DEBUG(DEBUG_ERR, (__location__ " Failed to store dynamic data\n"));
}
@@ -219,8 +225,6 @@ int ctdb_ltdb_store(struct ctdb_db_context *ctdb_db, TDB_DATA key,
tdb_add_flags(ctdb_db->ltdb->tdb, TDB_SEQNUM);
}
- talloc_free(rec.dptr);
-
return ret;
}
diff --git a/ctdb/packaging/RPM/ctdb.spec.in b/ctdb/packaging/RPM/ctdb.spec.in
index aae2c7e..68eddc5 100644
--- a/ctdb/packaging/RPM/ctdb.spec.in
+++ b/ctdb/packaging/RPM/ctdb.spec.in
@@ -38,7 +38,7 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-root
# Required minimum library versions when building with system libraries
%define libtalloc_version 2.0.8
-%define libtdb_version 1.2.11
+%define libtdb_version 1.3.11
%define libtevent_version 0.9.16
%if ! %with_included_talloc
diff --git a/ctdb/server/ctdb_ltdb_server.c b/ctdb/server/ctdb_ltdb_server.c
index 8feaff1..8ff9634 100644
--- a/ctdb/server/ctdb_ltdb_server.c
+++ b/ctdb/server/ctdb_ltdb_server.c
@@ -57,7 +57,8 @@ static int ctdb_ltdb_store_server(struct ctdb_db_context *ctdb_db,
TDB_DATA data)
{
struct ctdb_context *ctdb = ctdb_db->ctdb;
- TDB_DATA rec;
+ TDB_DATA rec[2];
+ uint32_t hsize = sizeof(struct ctdb_ltdb_header);
int ret;
bool seqnum_suppressed = false;
bool keep = false;
@@ -66,14 +67,21 @@ static int ctdb_ltdb_store_server(struct ctdb_db_context *ctdb_db,
uint32_t lmaster;
if (ctdb->flags & CTDB_FLAG_TORTURE) {
+ TDB_DATA old;
struct ctdb_ltdb_header *h2;
- rec = tdb_fetch(ctdb_db->ltdb->tdb, key);
- h2 = (struct ctdb_ltdb_header *)rec.dptr;
- if (rec.dptr && rec.dsize >= sizeof(h2) && h2->rsn > header->rsn) {
- DEBUG(DEBUG_CRIT,("RSN regression! %llu %llu\n",
- (unsigned long long)h2->rsn, (unsigned long long)header->rsn));
+
+ old = tdb_fetch(ctdb_db->ltdb->tdb, key);
+ h2 = (struct ctdb_ltdb_header *)old.dptr;
+ if (old.dptr != NULL &&
+ old.dsize >= hsize &&
+ h2->rsn > header->rsn) {
+ DEBUG(DEBUG_ERR,
+ ("RSN regression! %"PRIu64" %"PRIu64"\n",
+ h2->rsn, header->rsn));
+ }
+ if (old.dptr) {
+ free(old.dptr);
}
- if (rec.dptr) free(rec.dptr);
}
if (ctdb->vnn_map == NULL) {
@@ -178,12 +186,11 @@ store:
*/
header->flags &= ~CTDB_REC_FLAG_AUTOMATIC;
- rec.dsize = sizeof(*header) + data.dsize;
- rec.dptr = talloc_size(ctdb, rec.dsize);
- CTDB_NO_MEMORY(ctdb, rec.dptr);
+ rec[0].dsize = hsize;
+ rec[0].dptr = (uint8_t *)header;
- memcpy(rec.dptr, header, sizeof(*header));
- memcpy(rec.dptr + sizeof(*header), data.dptr, data.dsize);
+ rec[1].dsize = data.dsize;
+ rec[1].dptr = data.dptr;
/* Databases with seqnum updates enabled only get their seqnum
changes when/if we modify the data */
@@ -191,14 +198,14 @@ store:
TDB_DATA old;
old = tdb_fetch(ctdb_db->ltdb->tdb, key);
- if ( (old.dsize == rec.dsize)
- && !memcmp(old.dptr+sizeof(struct ctdb_ltdb_header),
- rec.dptr+sizeof(struct ctdb_ltdb_header),
- rec.dsize-sizeof(struct ctdb_ltdb_header)) ) {
+ if ((old.dsize == hsize + data.dsize) &&
+ memcmp(old.dptr + hsize, data.dptr, data.dsize) == 0) {
tdb_remove_flags(ctdb_db->ltdb->tdb, TDB_SEQNUM);
seqnum_suppressed = true;
}
- if (old.dptr) free(old.dptr);
+ if (old.dptr != NULL) {
+ free(old.dptr);
+ }
}
DEBUG(DEBUG_DEBUG, (__location__ " db[%s]: %s record: hash[0x%08x]\n",
@@ -207,7 +214,7 @@ store:
ctdb_hash(&key)));
if (keep) {
- ret = tdb_store(ctdb_db->ltdb->tdb, key, rec, TDB_REPLACE);
+ ret = tdb_storev(ctdb_db->ltdb->tdb, key, rec, 2, TDB_REPLACE);
} else {
ret = tdb_delete(ctdb_db->ltdb->tdb, key);
}
@@ -234,8 +241,6 @@ store:
tdb_add_flags(ctdb_db->ltdb->tdb, TDB_SEQNUM);
}
- talloc_free(rec.dptr);
-
if (schedule_for_deletion) {
int ret2;
ret2 = ctdb_local_schedule_for_deletion(ctdb_db, header, key);
diff --git a/ctdb/tools/ctdb.c b/ctdb/tools/ctdb.c
index 2d61e22..a1024ae 100644
--- a/ctdb/tools/ctdb.c
+++ b/ctdb/tools/ctdb.c
@@ -5457,9 +5457,9 @@ static int control_tstore(TALLOC_CTX *mem_ctx, struct ctdb_context *ctdb,
int argc, const char **argv)
{
struct tdb_context *tdb;
- TDB_DATA key, data, value;
+ TDB_DATA key, data[2], value;
struct ctdb_ltdb_header header;
- size_t offset;
+ uint8_t header_buf[sizeof(struct ctdb_ltdb_header)];
int ret;
if (argc < 3 || argc > 5) {
@@ -5498,19 +5498,15 @@ static int control_tstore(TALLOC_CTX *mem_ctx, struct ctdb_context *ctdb,
header.flags = (uint32_t)atol(argv[5]);
}
- offset = ctdb_ltdb_header_len(&header);
- data.dsize = offset + value.dsize;
- data.dptr = talloc_size(mem_ctx, data.dsize);
- if (data.dptr == NULL) {
- fprintf(stderr, "Memory allocation error\n");
- tdb_close(tdb);
- return 1;
- }
+ ctdb_ltdb_header_push(&header, header_buf);
+
+ data[0].dsize = ctdb_ltdb_header_len(&header);
+ data[0].dptr = header_buf;
- ctdb_ltdb_header_push(&header, data.dptr);
- memcpy(data.dptr + offset, value.dptr, value.dsize);
+ data[1].dsize = value.dsize;
+ data[1].dptr = value.dptr;
- ret = tdb_store(tdb, key, data, TDB_REPLACE);
+ ret = tdb_storev(tdb, key, data, 2, TDB_REPLACE);
if (ret != 0) {
fprintf(stderr, "Failed to write record %s to file %s\n",
argv[1], argv[0]);
diff --git a/ctdb/tools/ltdbtool.c b/ctdb/tools/ltdbtool.c
index 2352079..e8465b2 100644
--- a/ctdb/tools/ltdbtool.c
+++ b/ctdb/tools/ltdbtool.c
@@ -325,26 +325,27 @@ static int write_record(TDB_CONTEXT* tdb, TDB_DATA key, TDB_DATA val,
{
struct write_record_ctx* ctx
= (struct write_record_ctx*)write_record_ctx;
+ int ret;
if (ctx->hsize == 0) {
- if (tdb_store(ctx->tdb, key, val, ctx->tdb_store_flags) == -1) {
- fprintf(stderr, "tdb_store: %s\n", tdb_errorstr(ctx->tdb));
- return -1;
- }
+ ret = tdb_store(ctx->tdb, key, val, ctx->tdb_store_flags);
} else {
- TDB_DATA h = {
- .dptr = (void*)hdr,
- .dsize = ctx->hsize,
- };
- if(tdb_store(ctx->tdb, key, h, ctx->tdb_store_flags) == -1) {
- fprintf(stderr, "tdb_store: %s\n", tdb_errorstr(ctx->tdb));
- return -1;
- }
- if(tdb_append(ctx->tdb, key, val) == -1) {
- fprintf(stderr, "tdb_append: %s\n", tdb_errorstr(ctx->tdb));
- return -1;
- }
+ TDB_DATA rec[2];
+
+ rec[0].dsize = ctx->hsize;
+ rec[0].dptr = (uint8_t *)hdr;
+
+ rec[1].dsize = val.dsize;
+ rec[1].dptr = val.dptr;
+
+ ret = tdb_storev(ctx->tdb, key, rec, 2, ctx->tdb_store_flags);
}
+
+ if (ret == -1) {
+ fprintf(stderr, "tdb_store: %s\n", tdb_errorstr(ctx->tdb));
+ return -1;
+ }
+
return 0;
}
diff --git a/python/samba/provision/sambadns.py b/python/samba/provision/sambadns.py
index 67d34e5..df4673b 100644
--- a/python/samba/provision/sambadns.py
+++ b/python/samba/provision/sambadns.py
@@ -923,12 +923,15 @@ def create_named_conf(paths, realm, dnsdomain, dns_backend, logger):
bind9_8 = '#'
bind9_9 = '#'
bind9_10 = '#'
+ bind9_11 = '#'
if bind_info.upper().find('BIND 9.8') != -1:
bind9_8 = ''
elif bind_info.upper().find('BIND 9.9') != -1:
bind9_9 = ''
elif bind_info.upper().find('BIND 9.10') != -1:
bind9_10 = ''
+ elif bind_info.upper().find('BIND 9.11') != -1:
+ bind9_11 = ''
elif bind_info.upper().find('BIND 9.7') != -1:
raise ProvisioningError("DLZ option incompatible with BIND 9.7.")
else:
@@ -938,7 +941,8 @@ def create_named_conf(paths, realm, dnsdomain, dns_backend, logger):
"MODULESDIR" : samba.param.modules_dir(),
"BIND9_8" : bind9_8,
"BIND9_9" : bind9_9,
- "BIND9_10" : bind9_10
+ "BIND9_10" : bind9_10,
+ "BIND9_11" : bind9_11
})
diff --git a/source4/dns_server/dlz_minimal.h b/source4/dns_server/dlz_minimal.h
index 11187f7..89ada7a 100644
--- a/source4/dns_server/dlz_minimal.h
+++ b/source4/dns_server/dlz_minimal.h
@@ -23,15 +23,23 @@
#ifndef DLZ_MINIMAL_H
#define DLZ_MINIMAL_H 1
-#ifdef BIND_VERSION_9_8
-#define DLZ_DLOPEN_VERSION 1
-#elif BIND_VERSION_9_9
-#define DLZ_DLOPEN_VERSION 2
-#elif BIND_VERSION_9_10
-#define DLZ_DLOPEN_VERSION 3
-#define DLZ_DLOPEN_AGE 0
+#if defined (BIND_VERSION_9_8)
+# define DLZ_DLOPEN_VERSION 1
+#elif defined (BIND_VERSION_9_9)
+# define DLZ_DLOPEN_VERSION 2
+# define DNS_CLIENTINFO_VERSION 1
+#elif defined (BIND_VERSION_9_10)
+# define DLZ_DLOPEN_VERSION 3
+# define DNS_CLIENTINFO_VERSION 1
+#elif defined (BIND_VERSION_9_11)
+# define DLZ_DLOPEN_VERSION 3
+# define DNS_CLIENTINFO_VERSION 2
#else
-#error Unsupported BIND version
+# error Unsupported BIND version
+#endif
+
+#if DLZ_DLOPEN_VERSION > 1
+# define DLZ_DLOPEN_AGE 0
#endif
typedef unsigned int isc_result_t;
@@ -94,7 +102,8 @@ typedef struct isc_sockaddr {
void * link;
} isc_sockaddr_t;
-#define DNS_CLIENTINFO_VERSION 1
+#if DNS_CLIENTINFO_VERSION == 1
+
typedef struct dns_clientinfo {
uint16_t version;
void *data;
@@ -111,6 +120,33 @@ typedef struct dns_clientinfomethods {
uint16_t age;
dns_clientinfo_sourceip_t sourceip;
} dns_clientinfomethods_t;
+
+#elif DNS_CLIENTINFO_VERSION == 2
+
+typedef struct dns_clientinfo {
+ uint16_t version;
+ void *data;
+ void *dbversion;
+} dns_clientinfo_t;
+
+typedef isc_result_t (*dns_clientinfo_sourceip_t)(dns_clientinfo_t *client,
+ isc_sockaddr_t **addrp);
+
+typedef isc_result_t (*dns_clientinfo_version_t)(dns_clientinfo_t *client,
+ void **addrp);
+
+#define DNS_CLIENTINFOMETHODS_VERSION 2
+#define DNS_CLIENTINFOMETHODS_AGE 1
+
+typedef struct dns_clientinfomethods {
+ uint16_t version;
+ uint16_t age;
+ dns_clientinfo_sourceip_t sourceip;
+ dns_clientinfo_version_t dbversion;
+} dns_clientinfomethods_t;
+
+#endif /* DNS_CLIENTINFO_VERSION */
+
#endif /* DLZ_DLOPEN_VERSION > 1 */
/*
diff --git a/source4/dns_server/wscript_build b/source4/dns_server/wscript_build
index 75f3499..396ed76 100644
--- a/source4/dns_server/wscript_build
+++ b/source4/dns_server/wscript_build
@@ -47,6 +47,16 @@ bld.SAMBA_LIBRARY('dlz_bind9_10',
deps='samba-hostconfig samdb-common gensec popt dnsserver_common',
enabled=bld.AD_DC_BUILD_IS_ENABLED())
+bld.SAMBA_LIBRARY('dlz_bind9_11',
+ source='dlz_bind9.c',
+ cflags='-DBIND_VERSION_9_11',
+ private_library=True,
+ link_name='modules/bind9/dlz_bind9_11.so',
+ realname='dlz_bind9_11.so',
+ install_path='${MODULESDIR}/bind9',
+ deps='samba-hostconfig samdb-common gensec popt dnsserver_common',
+ enabled=bld.AD_DC_BUILD_IS_ENABLED())
+
bld.SAMBA_LIBRARY('dlz_bind9_for_torture',
source='dlz_bind9.c',
cflags='-DBIND_VERSION_9_8',
diff --git a/source4/setup/named.conf.dlz b/source4/setup/named.conf.dlz
index 460d2ca..215af5a 100644
--- a/source4/setup/named.conf.dlz
+++ b/source4/setup/named.conf.dlz
@@ -18,5 +18,8 @@ dlz "AD DNS Zone" {
--
Samba Shared Repository
More information about the samba-cvs
mailing list