[SCM] Samba Shared Repository - branch v3-3-test updated - release-3-2-0pre2-3050-g48efe7d

Günther Deschner gd at samba.org
Tue Jul 1 08:01:17 GMT 2008


The branch, v3-3-test has been updated
       via  48efe7dbce1cde6689f94fafe2d7756f673bc050 (commit)
      from  e321377174f579ba57a70f260f4d4bc234a07439 (commit)

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


- Log -----------------------------------------------------------------
commit 48efe7dbce1cde6689f94fafe2d7756f673bc050
Author: Günther Deschner <gd at samba.org>
Date:   Fri Jun 27 15:54:01 2008 +0200

    net_vampire: keep keytab context and flush keytab only after the last query.
    
    Guenther

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

Summary of changes:
 source/libnet/libnet_samsync_keytab.c |   33 +++++++++++++++++++--------------
 1 files changed, 19 insertions(+), 14 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/libnet/libnet_samsync_keytab.c b/source/libnet/libnet_samsync_keytab.c
index bfb3a58..f284f08 100644
--- a/source/libnet/libnet_samsync_keytab.c
+++ b/source/libnet/libnet_samsync_keytab.c
@@ -116,13 +116,16 @@ NTSTATUS fetch_sam_entries_keytab(TALLOC_CTX *mem_ctx,
 {
 	NTSTATUS status = NT_STATUS_OK;
 	krb5_error_code ret = 0;
-	struct libnet_keytab_context *keytab_ctx = NULL;
+	static struct libnet_keytab_context *keytab_ctx = NULL;
 	int i;
 
-	ret = libnet_keytab_init(mem_ctx, ctx->output_filename, &keytab_ctx);
-	if (ret) {
-		status = krb5_to_nt_status(ret);
-		goto out;
+	if (!keytab_ctx) {
+		ret = libnet_keytab_init(mem_ctx, ctx->output_filename,
+					 &keytab_ctx);
+		if (ret) {
+			status = krb5_to_nt_status(ret);
+			goto out;
+		}
 	}
 
 	status = keytab_ad_connect(mem_ctx,
@@ -150,20 +153,22 @@ NTSTATUS fetch_sam_entries_keytab(TALLOC_CTX *mem_ctx,
 		}
 	}
 
-	ret = libnet_keytab_add(keytab_ctx);
-	if (ret) {
-		status = krb5_to_nt_status(ret);
-		ctx->error_message = talloc_asprintf(mem_ctx,
-			"Failed to add entries to keytab %s: %s",
-			keytab_ctx->keytab_name, error_message(ret));
-		goto out;
-	}
-
 	if (last_query) {
+
+		ret = libnet_keytab_add(keytab_ctx);
+		if (ret) {
+			status = krb5_to_nt_status(ret);
+			ctx->error_message = talloc_asprintf(mem_ctx,
+				"Failed to add entries to keytab %s: %s",
+				keytab_ctx->keytab_name, error_message(ret));
+			goto out;
+		}
+
 		ctx->result_message = talloc_asprintf(mem_ctx,
 			"Vampired %d accounts to keytab %s",
 			keytab_ctx->count,
 			keytab_ctx->keytab_name);
+
 		TALLOC_FREE(keytab_ctx);
 	}
 


-- 
Samba Shared Repository


More information about the samba-cvs mailing list