pull up r22078 from trunk
authorTom Yu <tlyu@mit.edu>
Tue, 14 Apr 2009 21:07:15 +0000 (21:07 +0000)
committerTom Yu <tlyu@mit.edu>
Tue, 14 Apr 2009 21:07:15 +0000 (21:07 +0000)
 ------------------------------------------------------------------------
 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

src/include/k5-int.h
src/include/krb5/krb5.hin
src/lib/krb5/krb/kerrs.c
src/lib/krb5/libkrb5.exports

index 2b937112d1faa708a74b68bf67784bd9b8d06587..7dae8cfc9b6155873ed2fe36e149cb188b9148c1 100644 (file)
@@ -2326,9 +2326,6 @@ krb5int_c_mandatory_cksumtype (krb5_context, krb5_enctype, krb5_cksumtype *);
 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.
  */
index 72a412a858870884ccbef2bafc1aa6de3fa9610a..7d738a6704919fa20382040b3a8ac9b25ea86de1 100644 (file)
@@ -2490,6 +2490,9 @@ krb5_vset_error_message (krb5_context, krb5_error_code, const char *, va_list)
     __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
index 77f497688dd81ebda6bdb87114875d86b4925e8c..647076485c393c34e4a7f0e0da262b963537fcff 100644 (file)
@@ -75,6 +75,20 @@ krb5_vset_error_message (krb5_context ctx, krb5_error_code code,
 #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)
 {
index 86984764b6ea6d1789d87e8acd3410a726f6280d..665fdfe37a29c2c4eef47927afb5349ae11cc49a 100644 (file)
@@ -172,6 +172,7 @@ krb5_copy_checksum
 krb5_copy_context
 krb5_copy_creds
 krb5_copy_data
+krb5_copy_error_message
 krb5_copy_keyblock
 krb5_copy_keyblock_contents
 krb5_copy_principal