The branch, v3-3-test has been updated
       via  22bdee7fe0cdcd95e0bade70cacb095e0b348abf (commit)
       via  c16e1820f86f105853aa855eda322ba6cbff3a84 (commit)
      from  fa1976e23a33bd3fab17c3f6ab5573ee1fdf9e31 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-3-test


- Log -----------------------------------------------------------------
commit 22bdee7fe0cdcd95e0bade70cacb095e0b348abf
Author: Günther Deschner <[EMAIL PROTECTED]>
Date:   Fri Jun 27 01:41:26 2008 +0200

    libnet_dssync: add last_query flag to processing routine.
    
    Guenther

commit c16e1820f86f105853aa855eda322ba6cbff3a84
Author: Günther Deschner <[EMAIL PROTECTED]>
Date:   Thu Jun 26 23:24:25 2008 +0200

    libnet_dssync: add output filename and dns_domain_name to dssync struct.
    
    Guenther

-----------------------------------------------------------------------

Summary of changes:
 source/libnet/libnet_dssync.c |   26 ++++++++++++++++++++++----
 source/libnet/libnet_dssync.h |    3 +++
 2 files changed, 25 insertions(+), 4 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/libnet/libnet_dssync.c b/source/libnet/libnet_dssync.c
index 1fb30d7..87d5e8a 100644
--- a/source/libnet/libnet_dssync.c
+++ b/source/libnet/libnet_dssync.c
@@ -298,6 +298,12 @@ static NTSTATUS libnet_dssync_lookup_nc(TALLOC_CTX 
*mem_ctx,
        ctx->nc_dn = talloc_strdup(mem_ctx, ctr.ctr1->array[0].result_name);
        NT_STATUS_HAVE_NO_MEMORY(ctx->nc_dn);
 
+       if (!ctx->dns_domain_name) {
+               ctx->dns_domain_name = talloc_strdup_upper(mem_ctx,
+                       ctr.ctr1->array[0].dns_domain_name);
+               NT_STATUS_HAVE_NO_MEMORY(ctx->dns_domain_name);
+       }
+
        return NT_STATUS_OK;
 }
 
@@ -360,6 +366,8 @@ static NTSTATUS libnet_dssync_process(TALLOC_CTX *mem_ctx,
 
        for (y=0; ;y++) {
 
+               bool last_query = true;
+
                if (level == 8) {
                        DEBUG(1,("start[%d] tmp_higest_usn: %llu , highest_usn: 
%llu\n",y,
                                (long 
long)req.req8.highwatermark.tmp_highest_usn,
@@ -410,10 +418,16 @@ static NTSTATUS libnet_dssync_process(TALLOC_CTX *mem_ctx,
                                                         &ctx->session_key,
                                                         ctr1->first_object);
 
+                       if (ctr1->new_highwatermark.tmp_highest_usn > 
ctr1->new_highwatermark.highest_usn) {
+                               req.req5.highwatermark = 
ctr1->new_highwatermark;
+                               last_query = false;
+                       }
+
                        if (ctx->processing_fn) {
                                status = ctx->processing_fn(mem_ctx,
                                                            ctr1->first_object,
                                                            &ctr1->mapping_ctr,
+                                                           last_query,
                                                            ctx);
                                if (!NT_STATUS_IS_OK(status)) {
                                        ctx->error_message = 
talloc_asprintf(mem_ctx,
@@ -423,8 +437,7 @@ static NTSTATUS libnet_dssync_process(TALLOC_CTX *mem_ctx,
                                }
                        }
 
-                       if (ctr1->new_highwatermark.tmp_highest_usn > 
ctr1->new_highwatermark.highest_usn) {
-                               req.req5.highwatermark = 
ctr1->new_highwatermark;
+                       if (!last_query) {
                                continue;
                        }
                }
@@ -448,10 +461,16 @@ static NTSTATUS libnet_dssync_process(TALLOC_CTX *mem_ctx,
                                                         &ctx->session_key,
                                                         ctr6->first_object);
 
+                       if (ctr6->new_highwatermark.tmp_highest_usn > 
ctr6->new_highwatermark.highest_usn) {
+                               req.req8.highwatermark = 
ctr6->new_highwatermark;
+                               last_query = false;
+                       }
+
                        if (ctx->processing_fn) {
                                status = ctx->processing_fn(mem_ctx,
                                                            ctr6->first_object,
                                                            &ctr6->mapping_ctr,
+                                                           last_query,
                                                            ctx);
                                if (!NT_STATUS_IS_OK(status)) {
                                        ctx->error_message = 
talloc_asprintf(mem_ctx,
@@ -461,8 +480,7 @@ static NTSTATUS libnet_dssync_process(TALLOC_CTX *mem_ctx,
                                }
                        }
 
-                       if (ctr6->new_highwatermark.tmp_highest_usn > 
ctr6->new_highwatermark.highest_usn) {
-                               req.req8.highwatermark = 
ctr6->new_highwatermark;
+                       if (!last_query) {
                                continue;
                        }
                }
diff --git a/source/libnet/libnet_dssync.h b/source/libnet/libnet_dssync.h
index 2fe7718..6a56566 100644
--- a/source/libnet/libnet_dssync.h
+++ b/source/libnet/libnet_dssync.h
@@ -22,14 +22,17 @@ struct dssync_context;
 typedef NTSTATUS (*dssync_processing_fn_t)(TALLOC_CTX *,
                                           struct 
drsuapi_DsReplicaObjectListItemEx *,
                                           struct 
drsuapi_DsReplicaOIDMapping_Ctr *,
+                                          bool,
                                           struct dssync_context *ctx);
 
 struct dssync_context {
        const char *domain_name;
+       const char *dns_domain_name;
        struct rpc_pipe_client *cli;
        const char *nc_dn;
        struct policy_handle bind_handle;
        DATA_BLOB session_key;
+       const char *output_filename;
 
        dssync_processing_fn_t processing_fn;
 


-- 
Samba Shared Repository

Reply via email to