net_vampire: use bool for last_query information in samsync.
authorGünther Deschner <gd@samba.org>
Thu, 26 Jun 2008 22:46:38 +0000 (00:46 +0200)
committerGünther Deschner <gd@samba.org>
Thu, 26 Jun 2008 23:59:26 +0000 (01:59 +0200)
Guenther
(This used to be commit fa1976e23a33bd3fab17c3f6ab5573ee1fdf9e31)

source3/libnet/libnet_samsync.c
source3/libnet/libnet_samsync.h
source3/libnet/libnet_samsync_display.c
source3/libnet/libnet_samsync_keytab.c
source3/libnet/libnet_samsync_ldif.c
source3/libnet/libnet_samsync_passdb.c

index dcf5f9c39ffe1a576e0feaf4f3a910dd06ca882e..4f2a8f9222e180b3e1f043202965a814e713b90f 100644 (file)
@@ -336,7 +336,8 @@ NTSTATUS libnet_samsync(enum netr_SamDatabaseID database_id,
 
                /* Process results */
                callback_status = ctx->delta_fn(mem_ctx, database_id,
-                                               delta_enum_array, result, ctx);
+                                               delta_enum_array,
+                                               NT_STATUS_IS_OK(result), ctx);
                if (!NT_STATUS_IS_OK(callback_status)) {
                        result = callback_status;
                        goto out;
index 8559043f5ac86ba9cbbedd0ed36aea9583af0e13..1f10d2c1c063efad7fe9a68f8c281f114917111f 100644 (file)
@@ -30,7 +30,7 @@ struct samsync_context;
 typedef NTSTATUS (*samsync_delta_fn_t)(TALLOC_CTX *,
                                       enum netr_SamDatabaseID,
                                       struct netr_DELTA_ENUM_ARRAY *,
-                                      NTSTATUS,
+                                      bool,
                                       struct samsync_context *);
 
 struct samsync_context {
@@ -54,20 +54,20 @@ struct samsync_context {
 NTSTATUS fetch_sam_entries_ldif(TALLOC_CTX *mem_ctx,
                                enum netr_SamDatabaseID database_id,
                                struct netr_DELTA_ENUM_ARRAY *r,
-                               NTSTATUS result,
+                               bool last_query,
                                struct samsync_context *ctx);
 NTSTATUS fetch_sam_entries(TALLOC_CTX *mem_ctx,
                           enum netr_SamDatabaseID database_id,
                           struct netr_DELTA_ENUM_ARRAY *r,
-                          NTSTATUS status,
+                          bool last_query,
                           struct samsync_context *ctx);
 NTSTATUS display_sam_entries(TALLOC_CTX *mem_ctx,
                             enum netr_SamDatabaseID database_id,
                             struct netr_DELTA_ENUM_ARRAY *r,
-                            NTSTATUS status,
+                            bool last_query,
                             struct samsync_context *ctx);
 NTSTATUS fetch_sam_entries_keytab(TALLOC_CTX *mem_ctx,
                                  enum netr_SamDatabaseID database_id,
                                  struct netr_DELTA_ENUM_ARRAY *r,
-                                 NTSTATUS status,
+                                 bool last_query,
                                  struct samsync_context *ctx);
index 6e9a6924b440e7815f35c9b7f0cbc995390ccbc2..6f7ae4e7aa507f48e7410f56c11fa833c37c4310 100644 (file)
@@ -164,7 +164,7 @@ static void display_rename_alias(uint32_t rid, struct netr_DELTA_RENAME *r)
 static NTSTATUS display_sam_entry(TALLOC_CTX *mem_ctx,
                                  enum netr_SamDatabaseID database_id,
                                  struct netr_DELTA_ENUM *r,
-                                 NTSTATUS status,
+                                 bool last_query,
                                  struct samsync_context *ctx)
 {
        union netr_DELTA_UNION u = r->delta_union;
@@ -289,13 +289,14 @@ static NTSTATUS display_sam_entry(TALLOC_CTX *mem_ctx,
 NTSTATUS display_sam_entries(TALLOC_CTX *mem_ctx,
                             enum netr_SamDatabaseID database_id,
                             struct netr_DELTA_ENUM_ARRAY *r,
-                            NTSTATUS status,
+                            bool last_query,
                             struct samsync_context *ctx)
 {
        int i;
 
        for (i = 0; i < r->num_deltas; i++) {
-               display_sam_entry(mem_ctx, database_id, &r->delta_enum[i], status, ctx);
+               display_sam_entry(mem_ctx, database_id, &r->delta_enum[i],
+                                 last_query, ctx);
        }
 
        return NT_STATUS_OK;
index 49d7ac27e2ed816550feea528e0cd798665d02c6..d10bfd5e9d6617432184d6943ed65176c9549c6e 100644 (file)
@@ -75,7 +75,7 @@ static NTSTATUS fetch_sam_entry_keytab(TALLOC_CTX *mem_ctx,
                                       enum netr_SamDatabaseID database_id,
                                       uint32_t rid,
                                       struct netr_DELTA_USER *r,
-                                      NTSTATUS status,
+                                      bool last_query,
                                       struct libnet_keytab_context *ctx)
 {
        uchar nt_passwd[16];
@@ -111,7 +111,7 @@ static NTSTATUS fetch_sam_entry_keytab(TALLOC_CTX *mem_ctx,
 NTSTATUS fetch_sam_entries_keytab(TALLOC_CTX *mem_ctx,
                                  enum netr_SamDatabaseID database_id,
                                  struct netr_DELTA_ENUM_ARRAY *r,
-                                 NTSTATUS result,
+                                 bool last_query,
                                  struct samsync_context *ctx)
 {
        NTSTATUS status = NT_STATUS_OK;
@@ -143,7 +143,7 @@ NTSTATUS fetch_sam_entries_keytab(TALLOC_CTX *mem_ctx,
                status = fetch_sam_entry_keytab(mem_ctx, database_id,
                                                r->delta_enum[i].delta_id_union.rid,
                                                r->delta_enum[i].delta_union.user,
-                                               result,
+                                               last_query,
                                                keytab_ctx);
                if (!NT_STATUS_IS_OK(status)) {
                        goto out;
@@ -159,10 +159,15 @@ NTSTATUS fetch_sam_entries_keytab(TALLOC_CTX *mem_ctx,
                goto out;
        }
 
-       ctx->result_message = talloc_asprintf(mem_ctx,
-               "vampired %d accounts to keytab %s",
-               keytab_ctx->count,
-               keytab_ctx->keytab_name);
+       if (last_query) {
+               ctx->result_message = talloc_asprintf(mem_ctx,
+                       "Vampired %d accounts to keytab %s",
+                       keytab_ctx->count,
+                       keytab_ctx->keytab_name);
+               TALLOC_FREE(keytab_ctx);
+       }
+
+       return NT_STATUS_OK;
  out:
        TALLOC_FREE(keytab_ctx);
 
index 64eb9a58da45aa197ef4a285c806fa49ca241c92..c89fedc2a3582f77d2aa6ea25714e1b02bf133e6 100644 (file)
@@ -1158,7 +1158,7 @@ static NTSTATUS ldif_realloc_maps(TALLOC_CTX *mem_ctx,
 NTSTATUS fetch_sam_entries_ldif(TALLOC_CTX *mem_ctx,
                                enum netr_SamDatabaseID database_id,
                                struct netr_DELTA_ENUM_ARRAY *r,
-                               NTSTATUS result,
+                               bool last_query,
                                struct samsync_context *ctx)
 {
        NTSTATUS status;
@@ -1193,7 +1193,7 @@ NTSTATUS fetch_sam_entries_ldif(TALLOC_CTX *mem_ctx,
        }
 
        /* This was the last query */
-       if (NT_STATUS_IS_OK(result)) {
+       if (last_query) {
                ldif_write_output(database_id, ldif_ctx);
                if (ldif_ctx->ldif_file != stdout) {
                        ctx->result_message = talloc_asprintf(mem_ctx,
index a049d1b9c3ce4e968cd994d11a16a6566d846b30..7d07bcb7918a952cccf6333098ac4e431ab06c17 100644 (file)
@@ -776,7 +776,7 @@ static NTSTATUS fetch_sam_entry(TALLOC_CTX *mem_ctx,
 NTSTATUS fetch_sam_entries(TALLOC_CTX *mem_ctx,
                           enum netr_SamDatabaseID database_id,
                           struct netr_DELTA_ENUM_ARRAY *r,
-                          NTSTATUS status,
+                          bool last_query,
                           struct samsync_context *ctx)
 {
        int i;