From: Theodore Tso <tytso@mit.edu>
Date: Wed, 19 Dec 1990 10:58:38 +0000 (+0000)
Subject: Added debugging extern so the real Kerberos 5 error code is available
X-Git-Tag: krb5-1.0-alpha3~27
X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=cb4d170994fafc2aefeb28022183467ef2e74396;p=krb5.git

Added debugging extern so the real Kerberos 5 error code is available

Changed error code in the case statement to use com_err codes instead
of protocol error returns.  (Huge bug fixed here!)

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@1566 dc483132-0cff-0310-8789-dd5450dbe970
---

diff --git a/src/lib/krb425/425error.c b/src/lib/krb425/425error.c
index f7494103f..7bb2570e4 100644
--- a/src/lib/krb425/425error.c
+++ b/src/lib/krb425/425error.c
@@ -19,6 +19,9 @@ static char rcsid_425error_c[] =
 #include <krb.h>
 #include <krb5/krb5.h>
 
+int	krb5_425_error;		/* For people who want to know what */
+				/* the *real* error was....  */
+
 int
 krb425error(e)
 krb5_error_code e;
@@ -27,84 +30,86 @@ krb5_error_code e;
 	 * This is not a very good switch.
 	 * Probably needs to be rewritten.
 	 */
+	krb5_425_error = e;
 	switch (e) {
 	case 0:				/* No error */
 		return(KSUCCESS);
 
-	case KDC_ERR_NAME_EXP:		/* Client's entry in DB expired */
+	case KRB5KDC_ERR_NAME_EXP:	/* Client's entry in DB expired */
 		return(KDC_NAME_EXP);
 
-	case KDC_ERR_SERVICE_EXP:	/* Server's entry in DB expired */
+	case KRB5KDC_ERR_SERVICE_EXP:	/* Server's entry in DB expired */
 		return(KDC_SERVICE_EXP);
 
-	case KDC_ERR_BAD_PVNO:		/* Requested pvno not supported */
+	case KRB5KDC_ERR_BAD_PVNO:	/* Requested pvno not supported */
 		return(KDC_PKT_VER);
 
-	case KDC_ERR_C_OLD_MAST_KVNO:	/* C's key encrypted in old master */
+	case KRB5KDC_ERR_C_OLD_MAST_KVNO:/* C's key encrypted in old master */
 		return(KDC_P_MKEY_VER);
 
-	case KDC_ERR_S_OLD_MAST_KVNO:	/* S's key encrypted in old master */
+	case KRB5KDC_ERR_S_OLD_MAST_KVNO:/* S's key encrypted in old master */
 		return(KDC_S_MKEY_VER);
 
-	case KDC_ERR_C_PRINCIPAL_UNKNOWN:/* Client not found in Kerberos DB */
-	case KDC_ERR_S_PRINCIPAL_UNKNOWN:/* Server not found in Kerberos DB */
+	case KRB5KDC_ERR_C_PRINCIPAL_UNKNOWN:/* Client not found in Kerberos DB */
+	case KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN:/* Server not found in Kerberos DB */
 		return(KDC_PR_UNKNOWN);
 
-	case KDC_ERR_PRINCIPAL_NOT_UNIQUE:/* Multiple entries in Kerberos DB */
+	case KRB5KDC_ERR_PRINCIPAL_NOT_UNIQUE:/* Multiple entries in Kerberos DB */
 		return(KDC_PR_N_UNIQUE);
 
-	case KDC_ERR_NULL_KEY:		/* The C or S has a null key */
+	case KRB5KDC_ERR_NULL_KEY:	/* The C or S has a null key */
 		return(KDC_NULL_KEY);
 
-	case KDC_ERR_CANNOT_POSTDATE:	/* Tkt ineligible for postdating */
-	case KDC_ERR_NEVER_VALID:	/* Requested starttime > endtime */
-	case KDC_ERR_POLICY:		/* KDC policy rejects request */
-	case KDC_ERR_BADOPTION:		/* KDC can't do requested opt. */
-	case KDC_ERR_ETYPE_NOSUPP:	/* No support for encryption type */
+	case KRB5KDC_ERR_CANNOT_POSTDATE:/* Tkt ineligible for postdating */
+	case KRB5KDC_ERR_NEVER_VALID:	/* Requested starttime > endtime */
+	case KRB5KDC_ERR_POLICY:	/* KDC policy rejects request */
+	case KRB5KDC_ERR_BADOPTION:	/* KDC can't do requested opt. */
+	case KRB5KDC_ERR_ETYPE_NOSUPP:	/* No support for encryption type */
 		return(KDC_GEN_ERR);
 
-	case KRB_AP_ERR_BAD_INTEGRITY:	/* Decrypt integrity check failed */
+	case KRB5KRB_AP_ERR_BAD_INTEGRITY:/* Decrypt integrity check failed */
 		return(RD_AP_UNDEC);
 
-	case KRB_AP_ERR_TKT_EXPIRED:	/* Ticket expired */
+	case KRB5KRB_AP_ERR_TKT_EXPIRED:/* Ticket expired */
 		return(RD_AP_EXP);
 
-	case KRB_AP_ERR_TKT_NYV:	/* Ticket not yet valid */
+	case KRB5KRB_AP_ERR_TKT_NYV:	/* Ticket not yet valid */
 		return(RD_AP_NYV);
 
-	case KRB_AP_ERR_REPEAT:		/* Request is a replay */
+	case KRB5KRB_AP_ERR_REPEAT:		/* Request is a replay */
 		return(RD_AP_REPEAT);
 
-	case KRB_AP_ERR_NOT_US:		/* The ticket isn't for us */
+	case KRB5KRB_AP_ERR_NOT_US:		/* The ticket isn't for us */
 		return(RD_AP_NOT_US);
 
-	case KRB_AP_ERR_BADMATCH:	/* Ticket/authenticator don't match */
+	case KRB5KRB_AP_ERR_BADMATCH:	/* Ticket/authenticator don't match */
 		return(RD_AP_INCON);
 
-	case KRB_AP_ERR_SKEW:		/* Clock skew too great */
+	case KRB5KRB_AP_ERR_SKEW:		/* Clock skew too great */
 		return(RD_AP_TIME);
 
-	case KRB_AP_ERR_BADADDR:	/* Incorrect net address */
+	case KRB5KRB_AP_ERR_BADADDR:	/* Incorrect net address */
 		return(RD_AP_BADD);
 
-	case KRB_AP_ERR_BADVERSION:	/* Protocol version mismatch */
+	case KRB5KRB_AP_ERR_BADVERSION:	/* Protocol version mismatch */
 		return(RD_AP_VERSION);
 
-	case KRB_AP_ERR_MSG_TYPE:	/* Invalid message type */
+	case KRB5KRB_AP_ERR_MSG_TYPE:	/* Invalid message type */
 		return(RD_AP_MSG_TYPE);
 
-	case KRB_AP_ERR_MODIFIED:	/* Message stream modified */
+	case KRB5KRB_AP_ERR_MODIFIED:	/* Message stream modified */
 		return(RD_AP_MODIFIED);
 
-	case KRB_AP_ERR_BADORDER:	/* Message out of order */
+	case KRB5KRB_AP_ERR_BADORDER:	/* Message out of order */
+	case KRB5KRB_AP_ERR_BADSEQ:	/* Message out of order */
 		return(RD_AP_ORDER);
 
-	case KRB_AP_ERR_BADKEYVER:	/* Key version is not available */
-	case KRB_AP_ERR_NOKEY:		/* Service key not available */
-	case KRB_AP_ERR_MUT_FAIL:	/* Mutual authentication failed */
+	case KRB5KRB_AP_ERR_BADKEYVER:	/* Key version is not available */
+	case KRB5KRB_AP_ERR_NOKEY:		/* Service key not available */
+	case KRB5KRB_AP_ERR_MUT_FAIL:	/* Mutual authentication failed */
 		return(RD_AP_INCON);
 
-	case KRB_ERR_FIELD_TOOLONG:	/* Field is too long for impl. */
+	case KRB5KRB_ERR_FIELD_TOOLONG:	/* Field is too long for impl. */
 	default:
 		return(KFAILURE);
 	}