req->callback.private_data = private_data;
if (!user_info->mapped_state) {
- nt_status = map_user_info(req, user_info, &user_info_tmp);
+ nt_status = map_user_info(req, lp_workgroup(auth_ctx->lp_ctx), user_info, &user_info_tmp);
if (!NT_STATUS_IS_OK(nt_status)) goto failed;
user_info = user_info_tmp;
req->user_info = user_info_tmp;
****************************************************************************/
NTSTATUS map_user_info(TALLOC_CTX *mem_ctx,
+ const char *default_domain,
const struct auth_usersupplied_info *user_info,
struct auth_usersupplied_info **user_info_mapped)
{
d++;
domain = d;
} else {
- domain = lp_workgroup(global_loadparm);
+ domain = default_domain;
}
*user_info_mapped = talloc(mem_ctx, struct auth_usersupplied_info);
#include "auth/kerberos/kerberos.h"
#include "auth/credentials/credentials.h"
#include "auth/credentials/credentials_krb5.h"
+#include "param/param.h"
int cli_credentials_get_krb5_context(struct cli_credentials *cred,
+ struct loadparm_context *lp_ctx,
struct smb_krb5_context **smb_krb5_context)
{
int ret;
}
ret = smb_krb5_init_context(cred, cli_credentials_get_event_context(cred),
- &cred->smb_krb5_context);
+ lp_ctx, &cred->smb_krb5_context);
if (ret) {
return ret;
}
return ENOMEM;
}
- ret = cli_credentials_get_krb5_context(cred, &ccc->smb_krb5_context);
+ ret = cli_credentials_get_krb5_context(cred, global_loadparm, &ccc->smb_krb5_context);
if (ret) {
talloc_free(ccc);
return ret;
return ENOMEM;
}
- ret = cli_credentials_get_krb5_context(cred, &ccc->smb_krb5_context);
+ ret = cli_credentials_get_krb5_context(cred, global_loadparm, &ccc->smb_krb5_context);
if (ret) {
talloc_free(ccc);
return ret;
return EINVAL;
}
- ret = cli_credentials_get_krb5_context(cred, &smb_krb5_context);
+ ret = cli_credentials_get_krb5_context(cred, global_loadparm, &smb_krb5_context);
if (ret) {
return ret;
}
return 0;
}
- ret = cli_credentials_get_krb5_context(cred, &smb_krb5_context);
+ ret = cli_credentials_get_krb5_context(cred, global_loadparm, &smb_krb5_context);
if (ret) {
return ret;
}
return ENOMEM;
}
- ret = cli_credentials_get_krb5_context(cred, &smb_krb5_context);
+ ret = cli_credentials_get_krb5_context(cred, global_loadparm, &smb_krb5_context);
if (ret) {
talloc_free(mem_ctx);
return ret;
return 0;
}
- ret = cli_credentials_get_krb5_context(cred, &smb_krb5_context);
+ ret = cli_credentials_get_krb5_context(cred, global_loadparm, &smb_krb5_context);
if (ret) {
return ret;
}
ret = smb_krb5_init_context(gensec_gssapi_state,
gensec_security->event_ctx,
+ global_loadparm,
&gensec_gssapi_state->smb_krb5_context);
if (ret) {
DEBUG(1,("gensec_krb5_start: krb5_init_context failed (%s)\n",
krb5_principal client_principal,
time_t tgs_authtime,
DATA_BLOB *pac);
+struct loadparm_context;
#include "auth/kerberos/proto.h"
krb5_error_code smb_krb5_init_context(void *parent_ctx,
struct event_context *ev,
+ struct loadparm_context *lp_ctx,
struct smb_krb5_context **smb_krb5_context)
{
krb5_error_code ret;
talloc_set_destructor(*smb_krb5_context, smb_krb5_context_destroy_1);
- config_file = config_path(tmp_ctx, global_loadparm, "krb5.conf");
+ config_file = config_path(tmp_ctx, lp_ctx, "krb5.conf");
if (!config_file) {
talloc_free(tmp_ctx);
return ENOMEM;
return ret;
}
- if (lp_realm(global_loadparm) && *lp_realm(global_loadparm)) {
- char *upper_realm = strupper_talloc(tmp_ctx, lp_realm(global_loadparm));
+ if (lp_realm(lp_ctx) && *lp_realm(lp_ctx)) {
+ char *upper_realm = strupper_talloc(tmp_ctx, lp_realm(lp_ctx));
if (!upper_realm) {
- DEBUG(1,("gensec_krb5_start: could not uppercase realm: %s\n", lp_realm(global_loadparm)));
+ DEBUG(1,("gensec_krb5_start: could not uppercase realm: %s\n", lp_realm(lp_ctx)));
talloc_free(tmp_ctx);
return ENOMEM;
}
/* Set options in kerberos */
krb5_set_dns_canonicalize_hostname((*smb_krb5_context)->krb5_context,
- lp_parm_bool(global_loadparm, NULL, "krb5", "set_dns_canonicalize", false));
+ lp_parm_bool(lp_ctx, NULL, "krb5", "set_dns_canonicalize", false));
return 0;
}
};
struct event_context;
+struct loadparm_context;
krb5_error_code smb_krb5_init_context(void *parent_ctx, struct event_context *ev,
+ struct loadparm_context *lp_ctx,
struct smb_krb5_context **smb_krb5_context);
void smb_krb5_free_context(struct smb_krb5_context *smb_krb5_context);
struct smb_krb5_context *smb_krb5_context;
ret = smb_krb5_init_context(mem_ctx,
(struct event_context *)ldb_get_opaque(sam_ctx, "EventContext"),
+ (struct loadparm_context *)ldb_get_opaque(sam_ctx, "loadparm"),
&smb_krb5_context);
if (ret) {
/* Some operations below require kerberos contexts */
if (smb_krb5_init_context(ac->down_req,
ldb_get_opaque(h->module->ldb, "EventContext"),
+ (struct loadparm_context *)ldb_get_opaque(h->module->ldb, "loadparm"),
&smb_krb5_context) != 0) {
return LDB_ERR_OPERATIONS_ERROR;
}
/* Some operations below require kerberos contexts */
if (smb_krb5_init_context(ac->mod_req,
ldb_get_opaque(h->module->ldb, "EventContext"),
+ (struct loadparm_context *)ldb_get_opaque(h->module->ldb, "loadparm"),
&smb_krb5_context) != 0) {
return LDB_ERR_OPERATIONS_ERROR;
}
initialize_krb5_error_table();
- ret = smb_krb5_init_context(kdc, task->event_ctx, &kdc->smb_krb5_context);
+ ret = smb_krb5_init_context(kdc, task->event_ctx, task->lp_ctx, &kdc->smb_krb5_context);
if (ret) {
DEBUG(1,("kdc_task_init: krb5_init_context failed (%s)\n",
error_message(ret)));
torture_assert(tctx, 0 == smb_krb5_init_context(mem_ctx,
NULL,
+ global_loadparm,
&smb_krb5_context),
"smb_krb5_init_context");
TALLOC_CTX *mem_ctx = tctx;
torture_assert(tctx, 0 == smb_krb5_init_context(mem_ctx, NULL,
+ global_loadparm,
&smb_krb5_context),
"smb_krb5_init_context");