Use const pointers for error messages.
authorKen Raeburn <raeburn@mit.edu>
Sat, 7 Oct 2006 01:30:59 +0000 (01:30 +0000)
committerKen Raeburn <raeburn@mit.edu>
Sat, 7 Oct 2006 01:30:59 +0000 (01:30 +0000)
Add some debugging hooks in the libkrb5 support.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@18661 dc483132-0cff-0310-8789-dd5450dbe970

src/include/k5-err.h
src/include/krb5/krb5.hin
src/lib/krb5/krb/kerrs.c
src/util/support/errors.c

index 29f41f12bc03a0ff7aea142aa43899243a30ba4c..c2cc52cee6740305eb32423e7d9ab117dfa9435e 100644 (file)
@@ -57,10 +57,10 @@ krb5int_set_error (struct errinfo *ep,
 void
 krb5int_vset_error (struct errinfo *ep, long code,
                    const char *fmt, va_list args);
-char *
+const char *
 krb5int_get_error (struct errinfo *ep, long code);
 void
-krb5int_free_error (struct errinfo *ep, char *msg);
+krb5int_free_error (struct errinfo *ep, const char *msg);
 void
 krb5int_clear_error (struct errinfo *ep);
 void
index 354ff12b116277d36b9cb9e260ff0c66c35026c9..2ad6be9c8ecab4b861ab2d8131816ed5bceaa40d 100644 (file)
@@ -2597,10 +2597,10 @@ krb5_vset_error_message (krb5_context, krb5_error_code, const char *, va_list);
  * The string returned by this function must be freed using
  * krb5_free_error_message.
  */
-char * KRB5_CALLCONV
+const char * KRB5_CALLCONV
 krb5_get_error_message (krb5_context, krb5_error_code);
 void KRB5_CALLCONV
-krb5_free_error_message (krb5_context, char *);
+krb5_free_error_message (krb5_context, const char *);
 void KRB5_CALLCONV
 krb5_clear_error_message (krb5_context);
 
index 448b38910b1279cd371b95226d0514dd37176378..77f497688dd81ebda6bdb87114875d86b4925e8c 100644 (file)
 #include <stdarg.h>
 #include "k5-int.h"
 
+#ifdef DEBUG
+static int error_message_debug = 0;
+#ifndef ERROR_MESSAGE_DEBUG
+#define ERROR_MESSAGE_DEBUG() (error_message_debug != 0)
+#endif
+#endif
+
 void KRB5_CALLCONV_C
 krb5_set_error_message (krb5_context ctx, krb5_error_code code,
                        const char *fmt, ...)
@@ -36,7 +43,17 @@ krb5_set_error_message (krb5_context ctx, krb5_error_code code,
     if (ctx == NULL)
        return;
     va_start (args, fmt);
+#ifdef DEBUG
+    if (ERROR_MESSAGE_DEBUG())
+       fprintf(stderr,
+               "krb5_set_error_message(ctx=%p/err=%p, code=%ld, ...)\n",
+               ctx, &ctx->err, (long) code);
+#endif
     krb5int_vset_error (&ctx->err, code, fmt, args);
+#ifdef DEBUG
+    if (ERROR_MESSAGE_DEBUG())
+       fprintf(stderr, "->%s\n", ctx->err.msg);
+#endif
     va_end (args);
 }
 
@@ -44,22 +61,39 @@ void KRB5_CALLCONV
 krb5_vset_error_message (krb5_context ctx, krb5_error_code code,
                         const char *fmt, va_list args)
 {
+#ifdef DEBUG
+    if (ERROR_MESSAGE_DEBUG())
+       fprintf(stderr, "krb5_vset_error_message(ctx=%p, code=%ld, ...)\n",
+               ctx, (long) code);
+#endif
     if (ctx == NULL)
        return;
     krb5int_vset_error (&ctx->err, code, fmt, args);
+#ifdef DEBUG
+    if (ERROR_MESSAGE_DEBUG())
+       fprintf(stderr, "->%s\n", ctx->err.msg);
+#endif
 }
 
-char * KRB5_CALLCONV
+const char * KRB5_CALLCONV
 krb5_get_error_message (krb5_context ctx, krb5_error_code code)
 {
+#ifdef DEBUG
+    if (ERROR_MESSAGE_DEBUG())
+       fprintf(stderr, "krb5_get_error_message(%p, %ld)\n", ctx, (long) code);
+#endif
     if (ctx == NULL)
        return error_message(code);
     return krb5int_get_error (&ctx->err, code);
 }
 
 void KRB5_CALLCONV
-krb5_free_error_message (krb5_context ctx, char *msg)
+krb5_free_error_message (krb5_context ctx, const char *msg)
 {
+#ifdef DEBUG
+    if (ERROR_MESSAGE_DEBUG())
+       fprintf(stderr, "krb5_free_error_message(%p, %p)\n", ctx, msg);
+#endif
     if (ctx == NULL)
        return;
     krb5int_free_error (&ctx->err, msg);
@@ -68,6 +102,10 @@ krb5_free_error_message (krb5_context ctx, char *msg)
 void KRB5_CALLCONV
 krb5_clear_error_message (krb5_context ctx)
 {
+#ifdef DEBUG
+    if (ERROR_MESSAGE_DEBUG())
+       fprintf(stderr, "krb5_clear_error_message(%p)\n", ctx);
+#endif
     if (ctx == NULL)
        return;
     krb5int_clear_error (&ctx->err);
index 7c93753d47234e25277df4c504981f6e4b319931..5498f8204422f7247b5db04c735f2d9156c16a8d 100644 (file)
@@ -69,7 +69,7 @@ krb5int_vset_error (struct errinfo *ep, long code,
     ep->msg = p ? p : ep->scratch_buf;
 }
 
-char *
+const char *
 krb5int_get_error (struct errinfo *ep, long code)
 {
     char *r, *r2;
@@ -125,7 +125,7 @@ krb5int_get_error (struct errinfo *ep, long code)
        sprintf (ep->scratch_buf, _("error %ld"), code);
        return ep->scratch_buf;
     }
-    r = fptr(code);
+    r = (char *) fptr(code);
     if (r == NULL) {
        unlock();
        goto format_number;
@@ -142,10 +142,10 @@ krb5int_get_error (struct errinfo *ep, long code)
 }
 
 void
-krb5int_free_error (struct errinfo *ep, char *msg)
+krb5int_free_error (struct errinfo *ep, const char *msg)
 {
     if (msg != ep->scratch_buf)
-       free (msg);
+       free ((char *) msg);
 }
 
 void