From: Arran Cudbard-Bell Date: Thu, 18 Mar 2021 10:54:16 +0000 (+0000) Subject: Dump outstanding data if we're not at the required debug level X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=18aac3ad468551092c79af19ccaa19df79f4a046;p=thirdparty%2Ffreeradius-server.git Dump outstanding data if we're not at the required debug level --- diff --git a/src/lib/server/log.c b/src/lib/server/log.c index d327a56fbf4..436a9d1f7c3 100644 --- a/src/lib/server/log.c +++ b/src/lib/server/log.c @@ -945,11 +945,17 @@ void log_request_fd_event(UNUSED fr_event_list_t *el, int fd, UNUSED int flags, { char buffer[1024]; log_fd_event_ctx_t *log_info = uctx; + request_t *request = log_info->request; fr_sbuff_t sbuff; fr_sbuff_marker_t m_start, m_end; fr_sbuff_term_t const line_endings = FR_SBUFF_TERMS(L("\n"), L("\r")); + if (!RDEBUG_ENABLEDX(log_info->lvl)) { + while (read(fd, buffer, sizeof(buffer) > 0)); + return; + } + fr_sbuff_init(&sbuff, buffer, sizeof(buffer)); fr_sbuff_marker(&m_start, &sbuff); fr_sbuff_marker(&m_end, &sbuff); diff --git a/src/lib/server/log.h b/src/lib/server/log.h index d61a56a59a2..d11e6ed822a 100644 --- a/src/lib/server/log.h +++ b/src/lib/server/log.h @@ -323,7 +323,8 @@ void log_global_free(void); #define RDEBUG_ENABLED2 log_rdebug_enabled(L_DBG_LVL_2, request) //!< True if request debug level 1-2 messages are enabled #define RDEBUG_ENABLED3 log_rdebug_enabled(L_DBG_LVL_3, request) //!< True if request debug level 1-3 messages are enabled #define RDEBUG_ENABLED4 log_rdebug_enabled(L_DBG_LVL_4, request) //!< True if request debug level 1-4 messages are enabled -#define RDEBUG_ENABLED5 log_rdebug_enabled(L_DBG_LVL_MAX, request) //!< True if request debug level 1-5 messages are enabled +#define RDEBUG_ENABLED5 log_rdebug_enabled(L_DBG_LVL_MAX, request) //!< True if request debug level 1-5 messages are enabled +#define RDEBUG_ENABLEDX(_x) log_rdebug_enabled(_x, request) //!< True if specified lvl is enabled #define RDEBUGX(_l, fmt, ...) do { if (request->log.lvl) log_request(L_DBG, _l, request, __FILE__, __LINE__, fmt, ## __VA_ARGS__); } while(0) #define RDEBUG(fmt, ...) do { if (request->log.lvl) log_request(L_DBG, L_DBG_LVL_1, request, __FILE__, __LINE__, fmt, ## __VA_ARGS__); } while(0) diff --git a/src/lib/util/log.c b/src/lib/util/log.c index 6ca8128aa30..a49e35a8910 100644 --- a/src/lib/util/log.c +++ b/src/lib/util/log.c @@ -851,6 +851,11 @@ void fr_log_fd_event(UNUSED fr_event_list_t *el, int fd, UNUSED int flags, void fr_sbuff_term_t const line_endings = FR_SBUFF_TERMS(L("\n"), L("\r")); + if (log_info->lvl < fr_debug_lvl) { + while (read(fd, buffer, sizeof(buffer) > 0)); + return; + } + fr_sbuff_init(&sbuff, buffer, sizeof(buffer)); fr_sbuff_marker(&m_start, &sbuff); fr_sbuff_marker(&m_end, &sbuff);