vfs_default: also call vfs_offload_token_ctx_init in vfswrap_offload_write_send
[samba.git] / source3 / libnet / libnet_keytab.c
index 2446808f021fc76eb6d453aaa71ae2ecefb6090b..a0f1af8d791d32c2876b43fbe513a9a773e8e89f 100644 (file)
@@ -22,6 +22,7 @@
 #include "includes.h"
 #include "smb_krb5.h"
 #include "ads.h"
+#include "secrets.h"
 #include "libnet/libnet_keytab.h"
 
 #ifdef HAVE_KRB5
@@ -43,9 +44,7 @@ static int keytab_close(struct libnet_keytab_context *ctx)
                krb5_free_context(ctx->context);
        }
 
-       if (ctx->ads) {
-               ads_destroy(&ctx->ads);
-       }
+       TALLOC_FREE(ctx->ads);
 
        TALLOC_FREE(ctx);
 
@@ -73,26 +72,25 @@ krb5_error_code libnet_keytab_init(TALLOC_CTX *mem_ctx,
 
        talloc_set_destructor(r, keytab_close);
 
-       initialize_krb5_error_table();
-       ret = krb5_init_context(&context);
+       ret = smb_krb5_init_context_common(&context);
        if (ret) {
-               DEBUG(1,("keytab_init: could not krb5_init_context: %s\n",
-                       error_message(ret)));
+               DBG_ERR("kerberos init context failed (%s)\n",
+                       error_message(ret));
                return ret;
        }
 
-       ret = smb_krb5_open_keytab_relative(context,
-                                           keytab_name,
-                                           true, /* write_access */
-                                           &keytab);
+       ret = smb_krb5_kt_open_relative(context,
+                                       keytab_name,
+                                       true, /* write_access */
+                                       &keytab);
        if (ret) {
-               DEBUG(1,("keytab_init: smb_krb5_open_keytab failed (%s)\n",
-                       error_message(ret)));
+               DBG_WARNING("smb_krb5_kt_open_relative failed (%s)\n",
+                           error_message(ret));
                krb5_free_context(context);
                return ret;
        }
 
-       ret = smb_krb5_keytab_name(mem_ctx, context, keytab, &keytab_string);
+       ret = smb_krb5_kt_get_name(mem_ctx, context, keytab, &keytab_string);
        if (ret) {
                krb5_kt_close(context, keytab);
                krb5_free_context(context);
@@ -241,9 +239,7 @@ static krb5_error_code libnet_keytab_add_entry(krb5_context context,
 
        keyp = KRB5_KT_KEY(&kt_entry);
 
-       salt_princ_s = kerberos_fetch_salt_princ_for_host_princ(context,
-                                                               princ_s,
-                                                               enctype);
+       salt_princ_s = kerberos_secrets_fetch_salt_princ();
        if (salt_princ_s == NULL) {
                ret = KRB5KRB_ERR_GENERIC;
                goto done;
@@ -451,6 +447,8 @@ NTSTATUS libnet_keytab_add_to_keytab_entries(TALLOC_CTX *mem_ctx,
        NT_STATUS_HAVE_NO_MEMORY(entry.principal);
        NT_STATUS_HAVE_NO_MEMORY(entry.password.data);
 
+       DBG_INFO("%s: kvno:%d enctype:%d\n", entry.principal, kvno, enctype);
+
        ADD_TO_ARRAY(mem_ctx, struct libnet_keytab_entry, entry,
                     &ctx->entries, &ctx->count);
        NT_STATUS_HAVE_NO_MEMORY(ctx->entries);