diff options
author | Amitay Isaacs <amitay@gmail.com> | 2013-10-04 16:10:31 +1000 |
---|---|---|
committer | Amitay Isaacs <amitay@samba.org> | 2013-11-30 06:15:51 +0100 |
commit | bdb818d9b49f1a99e81f940acbe35d82571ae30c (patch) | |
tree | 1115eabb6424da62fd889af23c0c6c0af763848f | |
parent | 97dd67315784b5c7126372a1fea6f9ceb2e102d8 (diff) | |
download | samba-bdb818d9b49f1a99e81f940acbe35d82571ae30c.tar.gz samba-bdb818d9b49f1a99e81f940acbe35d82571ae30c.tar.xz samba-bdb818d9b49f1a99e81f940acbe35d82571ae30c.zip |
s4-rpc: dnsserver: Ignore duplicate dns zones from multiple locations
Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Kai Blin <kai@samba.org>
Autobuild-User(master): Amitay Isaacs <amitay@samba.org>
Autobuild-Date(master): Sat Nov 30 06:15:52 CET 2013 on sn-devel-104
-rw-r--r-- | source4/rpc_server/dnsserver/dcerpc_dnsserver.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/source4/rpc_server/dnsserver/dcerpc_dnsserver.c b/source4/rpc_server/dnsserver/dcerpc_dnsserver.c index 5733a51177..f3dd1957af 100644 --- a/source4/rpc_server/dnsserver/dcerpc_dnsserver.c +++ b/source4/rpc_server/dnsserver/dcerpc_dnsserver.c @@ -142,13 +142,19 @@ static struct dnsserver_state *dnsserver_connect(struct dcesrv_call_state *dce_c } for (z = zones; z; ) { znext = z->next; - z->zoneinfo = dnsserver_init_zoneinfo(z, dsstate->serverinfo); - if (z->zoneinfo == NULL) { - goto failed; + if (dnsserver_find_zone(dsstate->zones, z->name) == NULL) { + z->zoneinfo = dnsserver_init_zoneinfo(z, dsstate->serverinfo); + if (z->zoneinfo == NULL) { + goto failed; + } + DLIST_ADD_END(dsstate->zones, z, NULL); + p->zones_count++; + dsstate->zones_count++; + } else { + /* Ignore duplicate zone */ + DEBUG(3,("dnsserver: Ignoring duplicate zone '%s' from '%s'", + z->name, ldb_dn_get_linearized(z->zone_dn))); } - DLIST_ADD_END(dsstate->zones, z, NULL); - p->zones_count++; - dsstate->zones_count++; z = znext; } } |