summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKen Raeburn <raeburn@mit.edu>2007-07-04 03:51:45 +0000
committerKen Raeburn <raeburn@mit.edu>2007-07-04 03:51:45 +0000
commitba8671b7af6008666911f0273bca3bbe506dc888 (patch)
tree0bcef5444acd71560d783a042af6f780eb10f5bd
parent743ecf4a6688efb9230fd739a4dcdb90e9cd51f8 (diff)
downloadkrb5-ba8671b7af6008666911f0273bca3bbe506dc888.tar.gz
krb5-ba8671b7af6008666911f0273bca3bbe506dc888.tar.xz
krb5-ba8671b7af6008666911f0273bca3bbe506dc888.zip
If error is KDC_ERR_S_PRINCIPAL_UNKNOWN, report the server name
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19666 dc483132-0cff-0310-8789-dd5450dbe970
-rw-r--r--src/lib/krb5/krb/gc_via_tkt.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/lib/krb5/krb/gc_via_tkt.c b/src/lib/krb5/krb/gc_via_tkt.c
index 9d992d810..518d0244b 100644
--- a/src/lib/krb5/krb/gc_via_tkt.c
+++ b/src/lib/krb5/krb/gc_via_tkt.c
@@ -247,6 +247,20 @@ krb5_get_cred_via_tkt (krb5_context context, krb5_creds *tkt,
"KDC returned error string: %s",
err_reply->text.data);
break;
+ case KDC_ERR_S_PRINCIPAL_UNKNOWN:
+ {
+ char *s_name;
+ if (krb5_unparse_name(context, in_cred->server, &s_name) == 0) {
+ krb5_set_error_message(context, retval,
+ "Server %s not found in Kerberos database",
+ s_name);
+ krb5_free_unparsed_name(context, s_name);
+ } else
+ /* In case there's a stale S_PRINCIPAL_UNKNOWN
+ report already noted. */
+ krb5_clear_error_message(context);
+ }
+ break;
default:
#if 0 /* We should stop the KDC from sending back this text, because
if the local language doesn't match the KDC's language, we'd