r21175: Fix the kerberos keytab update code to handle deletes.
authorAndrew Bartlett <abartlet@samba.org>
Tue, 6 Feb 2007 05:41:04 +0000 (05:41 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:44:42 +0000 (14:44 -0500)
Fix the join code to know that the ldb layer handles the keytab update.

Andrew Bartlett
(This used to be commit d3fbc089f4161ae71b21077d50130fdabd8b2d77)

source4/auth/kerberos/kerberos_util.c
source4/libnet/libnet_join.c

index a68268e6978321213109c059b68cb84097b56165..78fc95b649374045bd812663fd5bf9c8a0b531e0 100644 (file)
@@ -417,10 +417,9 @@ static int create_keytab(TALLOC_CTX *parent_ctx,
                const struct samr_Password *mach_pwd;
                mach_pwd = cli_credentials_get_nt_hash(machine_account, mem_ctx);
                if (!mach_pwd) {
-                       DEBUG(1, ("create_keytab: Domain trust informaton for account %s not available\n",
-                                 cli_credentials_get_principal(machine_account, mem_ctx)));
+                       /* OK, nothing to do here */
                        talloc_free(mem_ctx);
-                       return EINVAL;
+                       return 0;
                }
                ret = krb5_keyblock_init(smb_krb5_context->krb5_context,
                                         ETYPE_ARCFOUR_HMAC_MD5,
index f47ea410aebfd1a64875e78079209ed441dbf06c..44e2dfe5f0e025eaa92e93e220fc9781d8edb5fd 100644 (file)
@@ -860,7 +860,6 @@ static NTSTATUS libnet_Join_primary_domain(struct libnet_context *ctx,
        uint32_t acct_type = 0;
        const char *account_name;
        const char *netbios_name;
-       char *filter;
        
        r->out.error_string = NULL;
 
@@ -1143,33 +1142,6 @@ static NTSTATUS libnet_Join_primary_domain(struct libnet_context *ctx,
                return NT_STATUS_INTERNAL_DB_CORRUPTION;
        }
 
-       if (r2->out.realm) {
-               struct cli_credentials *creds;
-               /* Make a credentials structure from it */
-               creds = cli_credentials_init(mem_ctx);
-               if (!creds) {
-                       r->out.error_string = NULL;
-                       talloc_free(tmp_mem);
-                       return NT_STATUS_NO_MEMORY;
-               }
-               cli_credentials_set_conf(creds);
-               filter = talloc_asprintf(mem_ctx, "dn=%s", ldb_dn_get_linearized(msg->dn));
-               status = cli_credentials_set_secrets(creds, NULL, NULL, filter);
-               if (!NT_STATUS_IS_OK(status)) {
-                       r->out.error_string = talloc_asprintf(mem_ctx, "Failed to read secrets for keytab update for %s", 
-                                                             filter);
-                       talloc_free(tmp_mem);
-                       return status;
-               } 
-               ret = cli_credentials_update_keytab(creds);
-               if (ret != 0) {
-                       r->out.error_string = talloc_asprintf(mem_ctx, "Failed to update keytab for %s", 
-                                                             filter);
-                       talloc_free(tmp_mem);
-                       return NT_STATUS_UNSUCCESSFUL;
-               }
-       }
-
        /* move all out parameter to the callers TALLOC_CTX */
        r->out.error_string     = NULL;
        r->out.join_password    = r2->out.join_password;