summaryrefslogtreecommitdiffstats
path: root/utils/gssd/gssd_proc.c
diff options
context:
space:
mode:
authorKevin Coffman <kwc@citi.umich.edu>2007-03-30 18:32:14 -0400
committerNeil Brown <neilb@suse.de>2007-03-31 09:08:02 +1000
commitffe1a9badb6f247b3314ef570573739d3f91f429 (patch)
tree9d4730d2c17d91f40820892d6d9cd0d68a3bee05 /utils/gssd/gssd_proc.c
parent6904f7b7f4f91d52c4bd783e5588e870d32ff021 (diff)
downloadnfs-utils-ffe1a9badb6f247b3314ef570573739d3f91f429.tar.gz
nfs-utils-ffe1a9badb6f247b3314ef570573739d3f91f429.tar.xz
nfs-utils-ffe1a9badb6f247b3314ef570573739d3f91f429.zip
Use newly added keytab functions
Use the new functions added in the previous patch. Obtain machine credentials in a pre-determined order Look for appropriate machine credentials in the following order: root/<fqdn>@REALM nfs/<fqdn>@REALM host/<fqdn>@REALM root/<any-name>@REALM nfs/<any-name>@REALM host/<any-name>@REALM The first matching credential will be used. Also, the machine credentials to be used are now determined "on-demand" rather than at gssd startup. This allows keytab additions to be noticed and used without requiring a restart of gssd. Signed-off-by: Kevin Coffman <kwc@citi.umich.edu> Signed-off-by: Neil Brown <neilb@suse.de>
Diffstat (limited to 'utils/gssd/gssd_proc.c')
-rw-r--r--utils/gssd/gssd_proc.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/utils/gssd/gssd_proc.c b/utils/gssd/gssd_proc.c
index eff740c..48880b6 100644
--- a/utils/gssd/gssd_proc.c
+++ b/utils/gssd/gssd_proc.c
@@ -700,14 +700,16 @@ handle_krb5_upcall(struct clnt_info *clp)
if (uid == 0 && root_uses_machine_creds == 1) {
int success = 0;
+ gssd_refresh_krb5_machine_credential(clp->servername,
+ NULL);
/*
* Get a list of credential cache names and try each
* of them until one works or we've tried them all
*/
if (gssd_get_krb5_machine_cred_list(&credlist)) {
- printerr(0, "WARNING: Failed to obtain machine "
- "credentials for connection to "
- "server %s\n", clp->servername);
+ printerr(0, "ERROR: No credentials found "
+ "for connection to server %s\n",
+ clp->servername);
goto out_return_error;
}
for (ccname = credlist; ccname && *ccname; ccname++) {