From f8104ba924be47dd8147d6334d5565550e3c847b Mon Sep 17 00:00:00 2001 From: Nick Alcock Date: Thu, 26 Apr 2012 15:12:08 -0400 Subject: [PATCH] Fix debugging reference from non-GSS to optional GSS code. From: Nick Alcock AUTH_DESTROY() and auth_destroy() are pulling in log_debug() from authgss_prot.c, but are used from outside the GSS code, thus preventing libtirpc from being used if compiled without GSS support. The (somewhat ugly) fix here defines a new macro to do the job. Because we're not compiling as C99, I use the GNU C variadic macro extension: if we mean to be compiled with other compilers, this needs to change. Signed-off-by: Nick Alcock Signed-off-by: Steve Dickson --- tirpc/rpc/auth.h | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tirpc/rpc/auth.h b/tirpc/rpc/auth.h index 5f66e67..e7bbe36 100644 --- a/tirpc/rpc/auth.h +++ b/tirpc/rpc/auth.h @@ -51,6 +51,7 @@ #include #include #include +#include #define MAX_AUTH_BYTES 400 @@ -248,12 +249,18 @@ auth_put(AUTH *auth) #define auth_refresh(auth, msg) \ ((*((auth)->ah_ops->ah_refresh))(auth, msg)) +#if defined(__GNUC__) && defined(DEBUG) +#define auth_log_debug(fmt,args...) printf(stderr, fmt, args) +#else +#define auth_log_debug(fmt,args...) +#endif + #define AUTH_DESTROY(auth) \ do { \ int refs; \ if ((refs = auth_put((auth))) == 0) \ ((*((auth)->ah_ops->ah_destroy))(auth));\ - log_debug("%s: auth_put(), refs %d\n", \ + auth_log_debug("%s: auth_put(), refs %d\n", \ __func__, refs); \ } while (0) @@ -262,7 +269,7 @@ auth_put(AUTH *auth) int refs; \ if ((refs = auth_put((auth))) == 0) \ ((*((auth)->ah_ops->ah_destroy))(auth));\ - log_debug("%s: auth_put(), refs %d\n", \ + auth_log_debug("%s: auth_put(), refs %d\n", \ __func__, refs); \ } while (0) -- 2.50.1