diff options
author | Günther Deschner <gd@samba.org> | 2008-11-18 01:16:53 +0100 |
---|---|---|
committer | Günther Deschner <gd@samba.org> | 2008-11-18 16:03:49 +0100 |
commit | 0861a7122e5772d4a987afb3e77baa2faa99fb32 (patch) | |
tree | f58ffb3566f228538cf0b000680443c4eff8a2cc /source3/libnet/libnet_samsync_keytab.c | |
parent | 9f86dd715a3d79d17c9366293f0dccdf95cc31ba (diff) | |
download | samba-0861a7122e5772d4a987afb3e77baa2faa99fb32.tar.gz samba-0861a7122e5772d4a987afb3e77baa2faa99fb32.tar.bz2 samba-0861a7122e5772d4a987afb3e77baa2faa99fb32.zip |
s3-libnet: move add_to_keytab_entries to libnet_keytab.
Guenther
Diffstat (limited to 'source3/libnet/libnet_samsync_keytab.c')
-rw-r--r-- | source3/libnet/libnet_samsync_keytab.c | 29 |
1 files changed, 14 insertions, 15 deletions
diff --git a/source3/libnet/libnet_samsync_keytab.c b/source3/libnet/libnet_samsync_keytab.c index 0341641a4c..5c17d010aa 100644 --- a/source3/libnet/libnet_samsync_keytab.c +++ b/source3/libnet/libnet_samsync_keytab.c @@ -78,27 +78,26 @@ static NTSTATUS fetch_sam_entry_keytab(TALLOC_CTX *mem_ctx, bool last_query, struct libnet_keytab_context *ctx) { - struct libnet_keytab_entry entry; + NTSTATUS status; + uint32_t kvno = 0; + DATA_BLOB blob; if (memcmp(r->ntpassword.hash, ctx->zero_buf, 16) == 0) { return NT_STATUS_OK; } - entry.name = talloc_strdup(mem_ctx, r->account_name.string); - entry.principal = talloc_asprintf(mem_ctx, "%s@%s", - r->account_name.string, - ctx->dns_domain_name); - entry.password = data_blob_talloc(mem_ctx, r->ntpassword.hash, 16); - entry.kvno = ads_get_kvno(ctx->ads, entry.name); - entry.enctype = ENCTYPE_ARCFOUR_HMAC; - - NT_STATUS_HAVE_NO_MEMORY(entry.name); - NT_STATUS_HAVE_NO_MEMORY(entry.principal); - NT_STATUS_HAVE_NO_MEMORY(entry.password.data); - + kvno = ads_get_kvno(ctx->ads, r->account_name.string); + blob = data_blob_const(r->ntpassword.hash, 16); - ADD_TO_ARRAY(mem_ctx, struct libnet_keytab_entry, entry, - &ctx->entries, &ctx->count); + status = libnet_keytab_add_to_keytab_entries(mem_ctx, ctx, + kvno, + r->account_name.string, + NULL, + ENCTYPE_ARCFOUR_HMAC, + blob); + if (!NT_STATUS_IS_OK(status)) { + return status; + } return NT_STATUS_OK; } |