diff options
author | Ken Raeburn <raeburn@mit.edu> | 2007-07-04 05:46:24 +0000 |
---|---|---|
committer | Ken Raeburn <raeburn@mit.edu> | 2007-07-04 05:46:24 +0000 |
commit | fcdd2de143971b0f020531479ad18f57874aef30 (patch) | |
tree | 8bec355041d9241b90822a13548ca2ec45a9a884 /src/lib/gssapi/krb5/gssapiP_krb5.h | |
parent | e0845c95210ca7cf4a03be23b034a2f29fc078c6 (diff) | |
download | krb5-fcdd2de143971b0f020531479ad18f57874aef30.tar.gz krb5-fcdd2de143971b0f020531479ad18f57874aef30.tar.xz krb5-fcdd2de143971b0f020531479ad18f57874aef30.zip |
gss krb5 mech enhanced error messages
Save detailed error messages (usually from the krb5 library) in
per-thread storage, mapping each error code to the most recently
produced message for it. Return the message from display_status.
Currently not implemented for a few cases where the krb5 mechanism
returns a minor status code of 0, or another value different from the
libkrb5 error code.
Other functions are available to store a generic string or formatted
message, but aren't used much at present.
Tested with these errors in context establishment:
* missing ccache (libkrb5 shows pathname if FILE: type)
* missing keytab (libkrb5 shows pathname if FILE: type)
* server principal unknown (libkrb5 shows server principal)
ticket: new
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19672 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/gssapi/krb5/gssapiP_krb5.h')
-rw-r--r-- | src/lib/gssapi/krb5/gssapiP_krb5.h | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/lib/gssapi/krb5/gssapiP_krb5.h b/src/lib/gssapi/krb5/gssapiP_krb5.h index 86ec771e1e..57c2ed9ea6 100644 --- a/src/lib/gssapi/krb5/gssapiP_krb5.h +++ b/src/lib/gssapi/krb5/gssapiP_krb5.h @@ -1,5 +1,5 @@ /* - * Copyright 2000 by the Massachusetts Institute of Technology. + * Copyright 2000, 2007 by the Massachusetts Institute of Technology. * All Rights Reserved. * * Export of this software from the United States of America may @@ -683,4 +683,24 @@ krb5_error_code krb5_gss_init_context (krb5_context *ctxp); krb5_error_code krb5_gss_use_kdc_context(void); +/* For error message handling. */ +/* Returns a shared string, not a private copy! */ +extern char * +krb5_gss_get_error_message(OM_uint32 minor_code); +extern void +krb5_gss_save_error_string(OM_uint32 minor_code, char *msg); +extern void +krb5_gss_save_error_message(OM_uint32 minor_code, const char *format, ...) +#if !defined(__cplusplus) && (__GNUC__ > 2) + __attribute__((__format__(__printf__, 2, 3))) +#endif + ; +extern void +krb5_gss_save_error_info(OM_uint32 minor_code, krb5_context ctx); +#define get_error_message krb5_gss_get_error_message +#define save_error_string krb5_gss_save_error_string +#define save_error_message krb5_gss_save_error_message +#define save_error_info krb5_gss_save_error_info +extern void krb5_gss_delete_error_info(void *p); + #endif /* _GSSAPIP_KRB5_H_ */ |