#include "err_handle.h"
#include <assert.h>
+#ifdef NOVELL
krb5_errcode_2_string_func old_error_2_string = NULL;
+#endif
typedef struct {
char krb5_err_str[KRB5_MAX_ERR_STR + 1];
static void init_err_handling( void )
{
assert(!pthread_key_create(&krb5_err_key, tsd_key_destructor));
+#ifdef NOVELL
old_error_2_string = error_message;
error_message = krb5_get_err_string;
+#endif
}
static pthread_once_t krb5_key_create = PTHREAD_ONCE_INIT;
}
/* Error strings are not generated here. the remaining two cases are handled by the default error string convertor */
+#ifdef NOVELL
return old_error_2_string(err_code);
-
+#else
+ return error_message(err_code);
+#endif
}
void krb5_clr_error()
{
if( krb5_init_once )
{
+#ifdef NOVELL
old_error_2_string = error_message;
error_message = krb5_get_err_string;
+#endif
krb5_init_once = FALSE;
}
}
}
/* it is not generated here. the remaining two cases are handled by the default error string convertor */
+#ifdef NOVELL
return old_error_2_string(err_code);
-
+#else
+ return error_message(err_code);
+#endif
}
void krb5_clr_error()
static char *_csrc = "@(#) %filespec: err_handle.c~1 % (%full_filespec: err_handle.c~1:csrc:idc_sec#1 %)";
#endif
-/* this file should be ideally be in util/et. But, for now thread safety requirement stops me from putting there.
- if I do, then all the applications have to link to pthread */
+/* This file should be ideally be in util/et. But, for now thread
+ safety requirement stops me from putting there. if I do, then all
+ the applications have to link to pthread. */
#ifdef HAVE_PTHREAD_H
#include <pthread.h>
#include "err_handle.h"
#include <assert.h>
+#ifdef NOVELL
krb5_errcode_2_string_func old_error_2_string = NULL;
+#endif
typedef struct {
char krb5_err_str[KRB5_MAX_ERR_STR + 1];
static void init_err_handling( void )
{
assert(!pthread_key_create(&krb5_err_key, tsd_key_destructor));
+#ifdef NOVELL
old_error_2_string = error_message;
error_message = krb5_get_err_string;
+#endif
}
static pthread_once_t krb5_key_create = PTHREAD_ONCE_INIT;
}
/* Error strings are not generated here. the remaining two cases are handled by the default error string convertor */
+#ifdef NOVELL
return old_error_2_string(err_code);
-
+#else
+ return error_message (err_code);
+#endif
}
void krb5_clr_error()
static /*@null@*/ et_old_error_hook_func com_err_hook = 0;
k5_mutex_t com_err_hook_lock = K5_MUTEX_PARTIAL_INITIALIZER;
-krb5_errcode_2_string_func error_message = krb5_errcode_2_string;
static void default_com_err_proc (const char *whoami, errcode_t code,
const char *fmt, va_list ap)
extern "C" {
#endif
- typedef const char * KRB5_CALLCONV (*krb5_errcode_2_string_func)(long code);
-
/* Public interfaces */
extern void KRB5_CALLCONV_C com_err
(const char *, errcode_t, const char *, ...);
extern void KRB5_CALLCONV com_err_va
(const char *whoami, errcode_t code, const char *fmt,
va_list ap);
- extern /*@observer@*//*@dependent@*/ const char * KRB5_CALLCONV (*error_message)
+extern /*@observer@*//*@dependent@*/ const char * KRB5_CALLCONV error_message
(errcode_t)
/*@modifies internalState@*/;
extern errcode_t KRB5_CALLCONV add_error_table
extern errcode_t KRB5_CALLCONV remove_error_table
(const struct error_table *)
/*@modifies internalState@*/;
- /*@observer@*//*@dependent@*/ const char * KRB5_CALLCONV krb5_errcode_2_string
- (errcode_t);
#if !defined(_WIN32)
/*
#endif
const char * KRB5_CALLCONV
-krb5_errcode_2_string(long code)
+error_message(long code)
/*@modifies internalState@*/
{
unsigned long offset;