summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKen Raeburn <raeburn@mit.edu>2007-04-13 05:31:24 +0000
committerKen Raeburn <raeburn@mit.edu>2007-04-13 05:31:24 +0000
commitdfec91b8e9c23f0e1a214f810498879f8620a4f8 (patch)
tree2e6ef616b016086d13ffe6cc6431e95477b4743f /src
parent72ee9101a4ccd061ae160642f22aded06069db3a (diff)
downloadkrb5-dfec91b8e9c23f0e1a214f810498879f8620a4f8.tar.gz
krb5-dfec91b8e9c23f0e1a214f810498879f8620a4f8.tar.xz
krb5-dfec91b8e9c23f0e1a214f810498879f8620a4f8.zip
Provide more detailed error message for 'client not found in kdb'
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19455 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src')
-rw-r--r--src/lib/krb5/krb/get_in_tkt.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/lib/krb5/krb/get_in_tkt.c b/src/lib/krb5/krb/get_in_tkt.c
index 81f97dac8..a4e2b0131 100644
--- a/src/lib/krb5/krb/get_in_tkt.c
+++ b/src/lib/krb5/krb/get_in_tkt.c
@@ -1282,6 +1282,23 @@ krb5_get_init_creds(krb5_context context,
ret = 0;
cleanup:
+ if (ret != 0) {
+ char *client_name;
+ /* See if we can produce a more detailed error message. */
+ switch (ret) {
+ case KRB5KDC_ERR_C_PRINCIPAL_UNKNOWN:
+ client_name = NULL;
+ if (krb5_unparse_name(context, client, &client_name) == 0) {
+ krb5_set_error_message(context, ret,
+ "Client '%s' not found in Kerberos database",
+ client_name);
+ free(client_name);
+ }
+ break;
+ default:
+ break;
+ }
+ }
krb5_preauth_request_context_fini(context);
if (encoded_previous_request != NULL) {
krb5_free_data(context, encoded_previous_request);