From 241c010de4bb8c45c97c252d98e1def1cf29ab82 Mon Sep 17 00:00:00 2001 From: Dan Breslau Date: Tue, 20 Sep 2016 19:09:09 -0400 Subject: [PATCH] Move gssEapTraceStatus into its own C source file --- mech_eap/Makefile.am | 1 + mech_eap/gssapiP_eap.h | 27 ++-------------------- mech_eap/util_trace.c | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 66 insertions(+), 25 deletions(-) create mode 100644 mech_eap/util_trace.c diff --git a/mech_eap/Makefile.am b/mech_eap/Makefile.am index 02dd9f2..6896693 100644 --- a/mech_eap/Makefile.am +++ b/mech_eap/Makefile.am @@ -112,6 +112,7 @@ mech_eap_la_SOURCES = \ util_ordering.c \ util_radius.cpp \ util_sm.c \ + util_trace.c \ util_tld.c \ util_token.c \ verify_mic.c \ diff --git a/mech_eap/gssapiP_eap.h b/mech_eap/gssapiP_eap.h index 1e8a360..38fe8ed 100644 --- a/mech_eap/gssapiP_eap.h +++ b/mech_eap/gssapiP_eap.h @@ -411,31 +411,8 @@ gssEapFinalize(void); /* Debugging and tracing*/ #define gssEapTrace(_fmt, ...) wpa_printf(MSG_INFO, _fmt, __VA_ARGS__); -static inline void -gssEapTraceStatus(const char *function, - OM_uint32 major, OM_uint32 minor) -{ - gss_buffer_desc gss_code_buf, mech_buf; - OM_uint32 tmpmaj, tmpmin, ctx = 0; - gss_code_buf.value = NULL; - mech_buf.value = NULL; - tmpmaj = gss_display_status(&tmpmin, major, - GSS_C_GSS_CODE, GSS_C_NO_OID, &ctx, - &gss_code_buf); - if (!GSS_ERROR(tmpmaj)) { -if (minor == 0) - tmpmaj = makeStringBuffer(&tmpmin, "no minor", &mech_buf); -else tmpmaj = gssEapDisplayStatus(&tmpmin, minor, &mech_buf); -} - if (!GSS_ERROR(tmpmaj)) - wpa_printf(MSG_INFO, "%s: %.*s/%.*s", - function, (int) gss_code_buf.length, (char *) gss_code_buf.value, - (int) mech_buf.length, (char *) mech_buf.value); - else wpa_printf(MSG_INFO, "%s: %u/%u", - function, major, minor); - tmpmaj = gss_release_buffer(&tmpmin, &gss_code_buf); - tmpmaj = gss_release_buffer(&tmpmin, &mech_buf); - } +void +gssEapTraceStatus(const char *function, OM_uint32 major, OM_uint32 minor); /*If built as a library on Linux, don't respect environment when set*uid*/ diff --git a/mech_eap/util_trace.c b/mech_eap/util_trace.c new file mode 100644 index 0000000..b79eab6 --- /dev/null +++ b/mech_eap/util_trace.c @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2016, JANET(UK) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of JANET(UK) nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + + +#include "gssapiP_eap.h" + +void +gssEapTraceStatus(const char *function, + OM_uint32 major, OM_uint32 minor) +{ + gss_buffer_desc gss_code_buf, mech_buf; + OM_uint32 tmpmaj, tmpmin, ctx = 0; + gss_code_buf.value = NULL; + mech_buf.value = NULL; + tmpmaj = gss_display_status(&tmpmin, major, + GSS_C_GSS_CODE, GSS_C_NO_OID, &ctx, + &gss_code_buf); + if (!GSS_ERROR(tmpmaj)) { + if (minor == 0) + tmpmaj = makeStringBuffer(&tmpmin, "no minor", &mech_buf); + else tmpmaj = gssEapDisplayStatus(&tmpmin, minor, &mech_buf); + } + if (!GSS_ERROR(tmpmaj)) { + wpa_printf(MSG_INFO, "%s: %.*s/%.*s", + function, (int) gss_code_buf.length, (char *) gss_code_buf.value, + (int) mech_buf.length, (char *) mech_buf.value); + } + else { + wpa_printf(MSG_INFO, "%s: %u/%u", function, major, minor); + } + tmpmaj = gss_release_buffer(&tmpmin, &gss_code_buf); + tmpmaj = gss_release_buffer(&tmpmin, &mech_buf); +} + -- 2.1.4