]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Dump outstanding data if we're not at the required debug level
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Thu, 18 Mar 2021 10:54:16 +0000 (10:54 +0000)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Thu, 18 Mar 2021 10:54:16 +0000 (10:54 +0000)
src/lib/server/log.c
src/lib/server/log.h
src/lib/util/log.c

index d327a56fbf46d04244bdab55798d17840913d93b..436a9d1f7c37fc578dfc87ce552502c68e38eb3c 100644 (file)
@@ -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);
index d61a56a59a2718e0f9bf05b6f4424543f953f369..d11e6ed822aaa99f88ce81be39d11d1c57b619c1 100644 (file)
@@ -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)
index 6ca8128aa30fadbb3fd82e1d04591fe75901a8f9..a49e35a8910235d5d843cef41136bfc7a5a53868 100644 (file)
@@ -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);