diff options
author | Stefan Metzmacher <metze@samba.org> | 2005-12-31 09:44:04 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:49:33 -0500 |
commit | 60d27d8505c483c2fac852d3ddc9148f476dfc6b (patch) | |
tree | dca93255ac934f5db62a50b5fa5df00410e926c9 /source4/wrepl_server/wrepl_server.c | |
parent | 1d63dc5fe4000de6e3414e3eb45f65f6216cea61 (diff) | |
download | samba-60d27d8505c483c2fac852d3ddc9148f476dfc6b.tar.gz samba-60d27d8505c483c2fac852d3ddc9148f476dfc6b.tar.bz2 samba-60d27d8505c483c2fac852d3ddc9148f476dfc6b.zip |
r12642: only do push notifications when something changed
metze
(This used to be commit 61f1c8c347d26f34e3e924ceae55e99e6c1461f7)
Diffstat (limited to 'source4/wrepl_server/wrepl_server.c')
-rw-r--r-- | source4/wrepl_server/wrepl_server.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/source4/wrepl_server/wrepl_server.c b/source4/wrepl_server/wrepl_server.c index 9f1664bc22..018b137d7e 100644 --- a/source4/wrepl_server/wrepl_server.c +++ b/source4/wrepl_server/wrepl_server.c @@ -197,6 +197,34 @@ failed: return maxVersion; } +uint64_t wreplsrv_local_db_seqnumber(struct wreplsrv_service *service) +{ + int ret; + struct ldb_context *ldb = service->wins_db->ldb; + struct ldb_dn *dn; + struct ldb_result *res = NULL; + TALLOC_CTX *tmp_ctx = talloc_new(service); + uint64_t seqnumber = 0; + + dn = ldb_dn_explode(tmp_ctx, "@BASEINFO"); + if (!dn) goto failed; + + /* find the record in the WINS database */ + ret = ldb_search(ldb, dn, LDB_SCOPE_BASE, + NULL, NULL, &res); + if (ret != LDB_SUCCESS) goto failed; + talloc_steal(tmp_ctx, res); + if (res->count > 1) goto failed; + + if (res->count == 1) { + seqnumber = ldb_msg_find_uint64(res->msgs[0], "sequenceNumber", 0); + } + +failed: + talloc_free(tmp_ctx); + return seqnumber; +} + NTSTATUS wreplsrv_fill_wrepl_table(struct wreplsrv_service *service, TALLOC_CTX *mem_ctx, struct wrepl_table *table_out, |