split out the error printing function and try to return better errors

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@20075 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Love Hörnquist Åstrand
2007-01-31 06:05:19 +00:00
parent 81d996550d
commit 9ceb72abd5
5 changed files with 123 additions and 33 deletions

View File

@@ -34,6 +34,7 @@
#include "krb5/gsskrb5_locl.h"
#include <err.h>
#include <getarg.h>
#include "test_common.h"
RCSID("$Id$");
@@ -50,35 +51,6 @@ static int version_flag = 0;
static int verbose_flag = 0;
static int help_flag = 0;
static char *gssapi_err(OM_uint32 maj_stat, OM_uint32 min_stat,
gss_OID mech)
{
OM_uint32 disp_min_stat, disp_maj_stat;
gss_buffer_desc maj_error_message;
gss_buffer_desc min_error_message;
OM_uint32 msg_ctx = 0;
char *ret = NULL;
maj_error_message.value = NULL;
min_error_message.value = NULL;
disp_maj_stat = gss_display_status(&disp_min_stat, maj_stat, GSS_C_GSS_CODE,
mech, &msg_ctx, &maj_error_message);
disp_maj_stat = gss_display_status(&disp_min_stat, min_stat, GSS_C_MECH_CODE,
mech, &msg_ctx, &min_error_message);
asprintf(&ret, "gss-code: %.*s\nmech-code: %.*s",
(int)maj_error_message.length,
(char *)maj_error_message.value,
(int)min_error_message.length,
(char *)min_error_message.value);
gss_release_buffer(&disp_min_stat, &maj_error_message);
gss_release_buffer(&disp_min_stat, &min_error_message);
return ret;
}
static struct {
const char *name;
gss_OID *oid;