summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGünther Deschner <gdeschner@redhat.com>2013-03-22 18:55:20 +0100
committerGünther Deschner <gd@samba.org>2013-03-22 19:28:33 +0100
commit30d7dbc6e2a6e68ae35ef8919c6fb53a95ac5093 (patch)
tree725a682f4253b94564d1a9bdee4507903232f502
parent08a9deddee4b92879aeead73aa0c85045e0fe8ff (diff)
downloadnfs-utils-30d7dbc6e2a6e68ae35ef8919c6fb53a95ac5093.tar.gz
nfs-utils-30d7dbc6e2a6e68ae35ef8919c6fb53a95ac5093.tar.xz
nfs-utils-30d7dbc6e2a6e68ae35ef8919c6fb53a95ac5093.zip
WIP preacquire creds.master-gss_acquire_cred
-rw-r--r--utils/gssd/gssd_proc.c22
1 files changed, 15 insertions, 7 deletions
diff --git a/utils/gssd/gssd_proc.c b/utils/gssd/gssd_proc.c
index cdc0b9a..57665fa 100644
--- a/utils/gssd/gssd_proc.c
+++ b/utils/gssd/gssd_proc.c
@@ -870,10 +870,13 @@ static OM_uint32 gss_pre_aquire_credential(OM_uint32 *ret_min,
gss_cred_id_t *cred_handle)
{
OM_uint32 ret_maj = 0;
+ OM_uint32 min = 0;
gss_name_t desired_name = GSS_C_NO_NAME;
gss_OID_set desired_mechs = GSS_C_NULL_OID_SET;
char *default_realm = NULL;
+ printerr(2, "FIXME: gss_pre_aquire_credential called\n");
+
gssd_k5_get_default_realm(&default_realm);
ret_maj = compose_user_principal(ret_min, uid, default_realm,
@@ -893,6 +896,7 @@ static OM_uint32 gss_pre_aquire_credential(OM_uint32 *ret_min,
goto failed;
}
+ printerr(2, "FIXME: calling gss_acquire_cred\n");
ret_maj = gss_acquire_cred(ret_min,
desired_name,
GSS_C_INDEFINITE,
@@ -901,13 +905,15 @@ static OM_uint32 gss_pre_aquire_credential(OM_uint32 *ret_min,
cred_handle,
NULL,
NULL);
+ printerr(2, "FIXME: gss_acquire_cred gave ret_maj: %d, ret_min: %d\n",
+ ret_maj, *ret_min);
failed:
if (desired_name != GSS_C_NO_NAME) {
- gss_release_name(ret_min, &desired_name);
+ gss_release_name(&min, &desired_name);
}
if (desired_mechs != GSS_C_NULL_OID_SET) {
- gss_release_oid_set(ret_min, &desired_mechs);
+ gss_release_oid_set(&min, &desired_mechs);
}
/* FIXME: do we need to free default_realm ? guess not */
@@ -1136,11 +1142,13 @@ process_krb5_upcall(struct clnt_info *clp, uid_t uid, int fd, char *tgtname,
printerr(2, "%s: service is '%s'\n", __func__,
service ? service : "<null>");
- printerr(2, "FIXME: trying preaquire creds first\n");
- create_resp = create_auth_rpc_client(clp, &rpc_clnt, &auth, uid,
- AUTHTYPE_KRB5, 1);
- if (create_resp == 0) {
- goto auth_data;
+ if (uid != 0) {
+ printerr(2, "FIXME: trying preaquire creds first for uid: %d\n", uid);
+ create_resp = create_auth_rpc_client(clp, &rpc_clnt, &auth, uid,
+ AUTHTYPE_KRB5, 1);
+ if (create_resp == 0) {
+ goto auth_data;
+ }
}
if (uid != 0 || (uid == 0 && root_uses_machine_creds == 0 &&