summaryrefslogtreecommitdiffstats
path: root/source4/wrepl_server/wrepl_in_call.c
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2006-01-02 18:25:30 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:49:37 -0500
commit6fbbd471648e3d436e21a0f4fe2bdb21dbe4376d (patch)
tree8835aa1b2caba2ca89055d44fc3934b1d773523e /source4/wrepl_server/wrepl_in_call.c
parentb75ed7d7ac9b3d5beca71926a15cfec5e3a0092c (diff)
downloadsamba-6fbbd471648e3d436e21a0f4fe2bdb21dbe4376d.tar.gz
samba-6fbbd471648e3d436e21a0f4fe2bdb21dbe4376d.tar.xz
samba-6fbbd471648e3d436e21a0f4fe2bdb21dbe4376d.zip
r12679: create a sperate function to create the 'winsOwner' part of the search filter,
this is to handle the special '0.0.0.0' of old or manual added owned records metze (This used to be commit 4c7306608cc3f86c31ed044bc41eda905b64b31f)
Diffstat (limited to 'source4/wrepl_server/wrepl_in_call.c')
-rw-r--r--source4/wrepl_server/wrepl_in_call.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/source4/wrepl_server/wrepl_in_call.c b/source4/wrepl_server/wrepl_in_call.c
index 4d5fad8a7cf..693c87424a2 100644
--- a/source4/wrepl_server/wrepl_in_call.c
+++ b/source4/wrepl_server/wrepl_in_call.c
@@ -174,6 +174,7 @@ static NTSTATUS wreplsrv_in_send_request(struct wreplsrv_in_call *call)
struct wrepl_replication *repl_out = &call->rep_packet.message.replication;
struct wrepl_send_reply *reply_out = &call->rep_packet.message.replication.info.reply;
struct wreplsrv_owner *owner;
+ const char *owner_filter;
const char *filter;
struct ldb_result *res = NULL;
int ret;
@@ -232,11 +233,13 @@ static NTSTATUS wreplsrv_in_send_request(struct wreplsrv_in_call *call)
return NT_STATUS_OK;
}
+ owner_filter = wreplsrv_owner_filter(service, call, owner->owner.address);
+ NT_STATUS_HAVE_NO_MEMORY(owner_filter);
filter = talloc_asprintf(call,
- "(&(winsOwner=%s)(objectClass=winsRecord)"
+ "(&%s(objectClass=winsRecord)"
"(|(recordState=%u)(recordState=%u))"
"(versionID>=%llu)(versionID<=%llu))",
- owner->owner.address,
+ owner_filter,
WREPL_STATE_ACTIVE, WREPL_STATE_TOMBSTONE,
(long long)owner_in->min_version,
(long long)owner_in->max_version);
@@ -244,6 +247,8 @@ static NTSTATUS wreplsrv_in_send_request(struct wreplsrv_in_call *call)
ret = ldb_search(service->wins_db->ldb, NULL, LDB_SCOPE_SUBTREE, filter, NULL, &res);
if (ret != LDB_SUCCESS) return NT_STATUS_INTERNAL_DB_CORRUPTION;
talloc_steal(call, res);
+ DEBUG(10,("WINSREPL: filter '%s' count %d\n", filter, res->count));
+
if (res->count == 0) {
DEBUG(2,("WINSREPL:reply [%u] records owner[%s] min[%llu] max[%llu] to partner[%s]\n",
res->count, owner_in->address,