From 23b711ebacb2371915bfa4d9e0d386fa4e7cb35e Mon Sep 17 00:00:00 2001 From: Russ Allbery Date: Thu, 24 Apr 2008 01:17:48 +0000 Subject: Switch to messages-krb5 in util instead of the one built in the client library and start the transition of coding style. --- client/error.c | 121 ------------------------------------------------------ client/internal.h | 6 --- 2 files changed, 127 deletions(-) delete mode 100644 client/error.c (limited to 'client') diff --git a/client/error.c b/client/error.c deleted file mode 100644 index 982c845..0000000 --- a/client/error.c +++ /dev/null @@ -1,121 +0,0 @@ -/* $Id$ -** -** Error handling for the wallet client. -** -** Provides versions of die and warn that take a Kerberos context and a -** Kerberos error code and append the Kerberos error message to the provided -** formatted message. -** -** Written by Russ Allbery -** Copyright 2006, 2007, 2008 -** Board of Trustees, Leland Stanford Jr. University -** -** See LICENSE for licensing terms. -*/ - -#include - -#include -#include -#include - -#include -#if !defined(HAVE_KRB5_GET_ERROR_MESSAGE) && !defined(HAVE_KRB5_GET_ERR_TEXT) -# if defined(HAVE_IBM_SVC_KRB5_SVC_H) -# include -# elif defined(HAVE_ET_COM_ERR_H) -# include -# else -# include -# endif -#endif - -#include -#include - -/* This string is returned for unknown error messages. We use a static - variable so that we can be sure not to free it. */ -static const char error_unknown[] = "unknown error"; - - -/* -** Given a Kerberos error code, return the corresponding error. Prefer the -** Kerberos interface if available since it will provide context-specific -** error information, whereas the error_message() call will only provide a -** fixed message. -*/ -static const char * -get_error(krb5_context ctx UNUSED, krb5_error_code code) -{ - const char *msg = NULL; - -#if defined(HAVE_KRB5_GET_ERROR_MESSAGE) - msg = krb5_get_error_message(ctx, code); -#elif defined(HAVE_KRB5_GET_ERR_TEXT) - msg = krb5_get_err_text(ctx, code); -#elif defined(HAVE_KRB5_SVC_GET_MSG) - krb5_svc_get_msg(code, &msg); -#else - msg = error_message(code); -#endif - if (msg == NULL) - return error_unknown; - else - return msg; -} - - -/* -** Free an error string if necessary. -*/ -static void -free_error(krb5_context ctx UNUSED, const char *msg) -{ - if (msg == error_unknown) - return; -#if defined(HAVE_KRB5_FREE_ERROR_MESSAGE) - krb5_free_error_message(ctx, msg); -#elif defined(HAVE_KRB5_SVC_GET_MSG) - krb5_free_string((char *) msg); -#endif -} - - -/* -** Report a Kerberos error and exit. -*/ -void -die_krb5(krb5_context ctx, krb5_error_code code, const char *format, ...) -{ - const char *k5_msg = NULL; - char *message; - va_list args; - - k5_msg = get_error(ctx, code); - va_start(args, format); - if (xvasprintf(&message, format, args) < 0) - die("internal error: unable to format error message"); - va_end(args); - die("%s: %s", message, k5_msg); -} - - -/* -** Report a Kerberos error. -*/ -void -warn_krb5(krb5_context ctx, krb5_error_code code, const char *format, ...) -{ - const char *k5_msg = NULL; - char *message; - va_list args; - - k5_msg = get_error(ctx, code); - va_start(args, format); - if (xvasprintf(&message, format, args) < 0) - die("internal error: unable to format error message"); - va_end(args); - warn("%s: %s", message, k5_msg); - free(message); - free_error(ctx, k5_msg); -} diff --git a/client/internal.h b/client/internal.h index 795c58d..ba17b73 100644 --- a/client/internal.h +++ b/client/internal.h @@ -82,12 +82,6 @@ void write_file(const char *name, const void *data, size_t length); void write_srvtab(krb5_context, const char *srvtab, const char *principal, const char *keytab); -/* Versions of die and warn that report Kerberos errors. */ -void die_krb5(krb5_context, krb5_error_code, const char *, ...) - __attribute__((__noreturn__, __format__(printf, 3, 4))); -void warn_krb5(krb5_context, krb5_error_code, const char *, ...) - __attribute__((__format__(printf, 3, 4))); - END_DECLS #endif /* !CLIENT_INTERNAL_H */ -- cgit v1.2.3