svn rev #22078: trunk/src/ include/ include/krb5/ lib/krb5/ lib/krb5/krb/

ghudson@MIT.EDU ghudson at MIT.EDU
Wed Mar 11 18:11:07 EDT 2009


http://src.mit.edu/fisheye/changelog/krb5/?cs=22078
Commit By: ghudson
Log Message:
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.



Changed Files:
U   trunk/src/include/k5-int.h
U   trunk/src/include/krb5/krb5.hin
U   trunk/src/lib/krb5/krb/kerrs.c
U   trunk/src/lib/krb5/libkrb5.exports
Modified: trunk/src/include/k5-int.h
===================================================================
--- trunk/src/include/k5-int.h	2009-03-11 15:36:41 UTC (rev 22077)
+++ trunk/src/include/k5-int.h	2009-03-11 22:11:06 UTC (rev 22078)
@@ -2298,9 +2298,6 @@
 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.
  */

Modified: trunk/src/include/krb5/krb5.hin
===================================================================
--- trunk/src/include/krb5/krb5.hin	2009-03-11 15:36:41 UTC (rev 22077)
+++ trunk/src/include/krb5/krb5.hin	2009-03-11 22:11:06 UTC (rev 22078)
@@ -2490,6 +2490,9 @@
     __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

Modified: trunk/src/lib/krb5/krb/kerrs.c
===================================================================
--- trunk/src/lib/krb5/krb/kerrs.c	2009-03-11 15:36:41 UTC (rev 22077)
+++ trunk/src/lib/krb5/krb/kerrs.c	2009-03-11 22:11:06 UTC (rev 22078)
@@ -75,6 +75,20 @@
 #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)
 {

Modified: trunk/src/lib/krb5/libkrb5.exports
===================================================================
--- trunk/src/lib/krb5/libkrb5.exports	2009-03-11 15:36:41 UTC (rev 22077)
+++ trunk/src/lib/krb5/libkrb5.exports	2009-03-11 22:11:06 UTC (rev 22078)
@@ -172,6 +172,7 @@
 krb5_copy_context
 krb5_copy_creds
 krb5_copy_data
+krb5_copy_error_message
 krb5_copy_keyblock
 krb5_copy_keyblock_contents
 krb5_copy_principal




More information about the cvs-krb5 mailing list