]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Set request debug level when amending list of log destinations
authorNick Porter <nick@portercomputing.co.uk>
Tue, 9 Apr 2024 13:07:27 +0000 (14:07 +0100)
committerNick Porter <nick@portercomputing.co.uk>
Tue, 9 Apr 2024 13:07:27 +0000 (14:07 +0100)
src/lib/server/request.c

index 912ccef7022a5340bc225b80dc05f23678808ce3..f94f896c9e34afacaf1de245da43673d518bf9da 100644 (file)
@@ -103,7 +103,7 @@ void request_log_prepend(request_t *request, fr_log_t *log_dst, fr_log_lvl_t lvl
                        talloc_free(request->log.dst);
                        request->log.dst = dst;
                }
-
+               request->log.lvl = L_DBG_LVL_OFF;
                return;
        }
 
@@ -119,6 +119,7 @@ void request_log_prepend(request_t *request, fr_log_t *log_dst, fr_log_lvl_t lvl
                        if (dst->uctx == log_dst) {
                                *last = dst->next;
                                talloc_free(dst);
+                               if (!request->log.dst) request->log.lvl = L_DBG_LVL_OFF;
                                return;
                        }
 
@@ -134,6 +135,7 @@ void request_log_prepend(request_t *request, fr_log_t *log_dst, fr_log_lvl_t lvl
        for (dst = request->log.dst; dst != NULL; dst = dst->next) {
                if (dst->uctx == log_dst) {
                        dst->lvl = lvl;
+                       if (lvl > request->log.lvl) request->log.lvl = lvl;
                        return;
                }
        }
@@ -146,7 +148,8 @@ void request_log_prepend(request_t *request, fr_log_t *log_dst, fr_log_lvl_t lvl
        dst->func = vlog_request;
        dst->uctx = log_dst;
 
-       dst->lvl = request->log.lvl;
+       dst->lvl = lvl;
+       if (lvl > request->log.lvl) request->log.lvl = lvl;
        dst->next = request->log.dst;
 
        request->log.dst = dst;