------------------------------------------------------------------------
r22078 | ghudson | 2009-03-11 18:11:06 -0400 (Wed, 11 Mar 2009) | 9 lines
Changed paths:
M /trunk/src/include/k5-int.h
M /trunk/src/include/krb5/krb5.hin
M /trunk/src/lib/krb5/krb/kerrs.c
M /trunk/src/lib/krb5/libkrb5.exports
ticket: 6407
subject: Make a working krb5_copy_error_message
target_version: 1.7
tags: pullup
The krb5_copy_error_state macro wasn't used, didn't work, and didn't
need to be a macro. Replace it with an exported API function named
krb5_copy_error_message.
ticket: 6407
version_fixed: 1.7
git-svn-id: svn://anonsvn.mit.edu/krb5/branches/krb5-1-7@22218
dc483132-0cff-0310-8789-
dd5450dbe970
extern int krb5int_crypto_init (void);
extern int krb5int_prng_init(void);
-#define krb5_copy_error_state(CTX, OCTX) \
- krb5int_set_error(&(CTX)->errinfo, (OCTX)->errinfo.code, "%s", (OCTX)->errinfo.msg)
-
/*
* Referral definitions, debugging hooks, and subfunctions.
*/
__attribute__((__format__(__printf__, 3, 0)))
#endif
;
+void KRB5_CALLCONV
+krb5_copy_error_message (krb5_context, krb5_context);
+
/*
* The behavior of krb5_get_error_message is only defined the first
* time it is called after a failed call to a krb5 function using the
#endif
}
+/* Set the error message state of dest_ctx to that of src_ctx. */
+void KRB5_CALLCONV
+krb5_copy_error_message (krb5_context dest_ctx, krb5_context src_ctx)
+{
+ if (dest_ctx == src_ctx)
+ return;
+ if (src_ctx->err.msg) {
+ krb5int_set_error(&dest_ctx->err, src_ctx->err.code, "%s",
+ src_ctx->err.msg);
+ } else {
+ krb5int_clear_error(dest_ctx);
+ }
+}
+
const char * KRB5_CALLCONV
krb5_get_error_message (krb5_context ctx, krb5_error_code code)
{
krb5_copy_context
krb5_copy_creds
krb5_copy_data
+krb5_copy_error_message
krb5_copy_keyblock
krb5_copy_keyblock_contents
krb5_copy_principal