aboutsummaryrefslogtreecommitdiff
path: root/src/lib/rpc
diff options
context:
space:
mode:
authorKen Raeburn <raeburn@mit.edu>2007-09-05 00:12:30 +0000
committerKen Raeburn <raeburn@mit.edu>2007-09-05 00:12:30 +0000
commit7868a34cad0e5944f2144f734960ca78e9b4cf8b (patch)
treebb4263e3bc11d6568395324454860194961b162f /src/lib/rpc
parentf403c41393f37d9e903957c680671cae9ca328dc (diff)
downloadkrb5-7868a34cad0e5944f2144f734960ca78e9b4cf8b.zip
krb5-7868a34cad0e5944f2144f734960ca78e9b4cf8b.tar.gz
krb5-7868a34cad0e5944f2144f734960ca78e9b4cf8b.tar.bz2
Rework error-mapping code to preserve status code values when returned
by only one mechanism. Revert RPC code to relying on this. Build error-mapping code on a bidirectional map instead of a simple array. When a status code is returned but has been seen returned from a different mechanism already, generate a new number, starting at 100,000. Use gssrpcint_printf for some more debugging code. ticket: 5654 git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19919 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/rpc')
-rw-r--r--src/lib/rpc/auth_gssapi.c3
-rw-r--r--src/lib/rpc/svc_auth_gssapi.c12
2 files changed, 6 insertions, 9 deletions
diff --git a/src/lib/rpc/auth_gssapi.c b/src/lib/rpc/auth_gssapi.c
index 3d6e6fe..bd185bc 100644
--- a/src/lib/rpc/auth_gssapi.c
+++ b/src/lib/rpc/auth_gssapi.c
@@ -22,7 +22,8 @@
#ifdef DEBUG_GSSAPI
int auth_debug_gssapi = DEBUG_GSSAPI;
-#define L_PRINTF(l,args) if (auth_debug_gssapi >= l) printf args
+extern void gssrpcint_printf(const char *format, ...);
+#define L_PRINTF(l,args) if (auth_debug_gssapi >= l) gssrpcint_printf args
#define PRINTF(args) L_PRINTF(99, args)
#define AUTH_GSSAPI_DISPLAY_STATUS(args) \
if (auth_debug_gssapi) auth_gssapi_display_status args
diff --git a/src/lib/rpc/svc_auth_gssapi.c b/src/lib/rpc/svc_auth_gssapi.c
index cb1e8f9..f899c89 100644
--- a/src/lib/rpc/svc_auth_gssapi.c
+++ b/src/lib/rpc/svc_auth_gssapi.c
@@ -402,8 +402,8 @@ enum auth_stat gssrpc__svcauth_gssapi(
if (server_creds == client_data->server_creds)
break;
- gssrpcint_printf("accept_sec_context returned 0x%x 0x%x\n",
- call_res.gss_major, call_res.gss_minor);
+ PRINTF(("accept_sec_context returned 0x%x 0x%x wrong-princ=%#x\n",
+ call_res.gss_major, call_res.gss_minor, KRB5KRB_AP_WRONG_PRINC));
if (call_res.gss_major == GSS_S_COMPLETE ||
call_res.gss_major == GSS_S_CONTINUE_NEEDED) {
/* server_creds was right, set it! */
@@ -419,12 +419,8 @@ enum auth_stat gssrpc__svcauth_gssapi(
* returning a "wrong principal in request"
* error
*/
-#if 0 /* old */
|| ((krb5_error_code) call_res.gss_minor !=
(krb5_error_code) KRB5KRB_AP_WRONG_PRINC)
-#else
- || (call_res.gss_minor <= 0 || call_res.gss_minor > 3)
-#endif
#endif
) {
break;
@@ -437,8 +433,8 @@ enum auth_stat gssrpc__svcauth_gssapi(
/* done with call args */
xdr_free(xdr_authgssapi_init_arg, &call_arg);
- PRINTF(("svcauth_gssapi: accept_sec_context returned %#x\n",
- call_res.gss_major));
+ PRINTF(("svcauth_gssapi: accept_sec_context returned %#x %#x\n",
+ call_res.gss_major, call_res.gss_minor));
if (call_res.gss_major != GSS_S_COMPLETE &&
call_res.gss_major != GSS_S_CONTINUE_NEEDED) {
AUTH_GSSAPI_DISPLAY_STATUS(("accepting context",