]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
lib/log: add [rdebug] group
authorVladimír Čunát <vladimir.cunat@nic.cz>
Fri, 6 Aug 2021 17:10:34 +0000 (19:10 +0200)
committerTomas Krizek <tomas.krizek@nic.cz>
Tue, 10 Aug 2021 18:16:58 +0000 (20:16 +0200)
It's special: always on and not shown in log_groups() output.

It's been quite a long fight to find how to best deal with such
a special case (from user perspective; code itself is easy).

daemon/engine.c
daemon/lua/kres-gen-29.lua
daemon/lua/kres-gen-31.lua
daemon/main.c
lib/log.c
lib/log.h

index f93e770de2cc9fb41b6d6a8d630d93968738b718..8fba4b38eeca479c1f49039702d34b4f38321d26 100644 (file)
@@ -241,7 +241,7 @@ static int l_log_groups(lua_State *L)
        // get
        lua_newtable(L);
        int i = 1;
-       for (int grp = LOG_GRP_SYSTEM; grp <= LOG_GRP_DEVEL; grp++) {
+       for (enum kr_log_group grp = LOG_GRP_SYSTEM; grp < LOG_GRP_REQDBG; grp++) {
                const char *name = kr_log_grp2name(grp);
                if (kr_fails_assert(name))
                        continue;
index ebc60488bf977d3562b6b3f35ca827653d454394..6a8a4cf3ed997f77cbf14ec23596b4cdaaec3168 100644 (file)
@@ -307,7 +307,7 @@ struct kr_server_selection {
        struct local_state *local_state;
 };
 typedef int kr_log_level_t;
-enum kr_log_group {LOG_GRP_UNKNOWN = -1, LOG_GRP_SYSTEM = 1, LOG_GRP_CACHE, LOG_GRP_IO, LOG_GRP_NETWORK, LOG_GRP_TA, LOG_GRP_TLS, LOG_GRP_GNUTLS, LOG_GRP_TLSCLIENT, LOG_GRP_XDP, LOG_GRP_ZIMPORT, LOG_GRP_ZSCANNER, LOG_GRP_DOH, LOG_GRP_DNSSEC, LOG_GRP_HINT, LOG_GRP_PLAN, LOG_GRP_ITERATOR, LOG_GRP_VALIDATOR, LOG_GRP_RESOLVER, LOG_GRP_SELECTION, LOG_GRP_ZCUT, LOG_GRP_COOKIES, LOG_GRP_STATISTICS, LOG_GRP_REBIND, LOG_GRP_WORKER, LOG_GRP_POLICY, LOG_GRP_TASENTINEL, LOG_GRP_TASIGNALING, LOG_GRP_TAUPDATE, LOG_GRP_DAF, LOG_GRP_DETECTTIMEJUMP, LOG_GRP_DETECTTIMESKEW, LOG_GRP_GRAPHITE, LOG_GRP_PREFILL, LOG_GRP_PRIMING, LOG_GRP_SRVSTALE, LOG_GRP_WATCHDOG, LOG_GRP_NSID, LOG_GRP_DNSTAP, LOG_GRP_TESTS, LOG_GRP_DOTAUTH, LOG_GRP_HTTP, LOG_GRP_CONTROL, LOG_GRP_MODULE, LOG_GRP_DEVEL};
+enum kr_log_group {LOG_GRP_UNKNOWN = -1, LOG_GRP_SYSTEM = 1, LOG_GRP_CACHE, LOG_GRP_IO, LOG_GRP_NETWORK, LOG_GRP_TA, LOG_GRP_TLS, LOG_GRP_GNUTLS, LOG_GRP_TLSCLIENT, LOG_GRP_XDP, LOG_GRP_ZIMPORT, LOG_GRP_ZSCANNER, LOG_GRP_DOH, LOG_GRP_DNSSEC, LOG_GRP_HINT, LOG_GRP_PLAN, LOG_GRP_ITERATOR, LOG_GRP_VALIDATOR, LOG_GRP_RESOLVER, LOG_GRP_SELECTION, LOG_GRP_ZCUT, LOG_GRP_COOKIES, LOG_GRP_STATISTICS, LOG_GRP_REBIND, LOG_GRP_WORKER, LOG_GRP_POLICY, LOG_GRP_TASENTINEL, LOG_GRP_TASIGNALING, LOG_GRP_TAUPDATE, LOG_GRP_DAF, LOG_GRP_DETECTTIMEJUMP, LOG_GRP_DETECTTIMESKEW, LOG_GRP_GRAPHITE, LOG_GRP_PREFILL, LOG_GRP_PRIMING, LOG_GRP_SRVSTALE, LOG_GRP_WATCHDOG, LOG_GRP_NSID, LOG_GRP_DNSTAP, LOG_GRP_TESTS, LOG_GRP_DOTAUTH, LOG_GRP_HTTP, LOG_GRP_CONTROL, LOG_GRP_MODULE, LOG_GRP_DEVEL, LOG_GRP_REQDBG};
 
 kr_layer_t kr_layer_t_static;
 _Bool kr_dbg_assertion_abort;
index 991da7022541cb26a222dfd66c0fc8a85ba76e38..af069ba61daf7208deb3672de70702c7b7ef8d30 100644 (file)
@@ -307,7 +307,7 @@ struct kr_server_selection {
        struct local_state *local_state;
 };
 typedef int kr_log_level_t;
-enum kr_log_group {LOG_GRP_UNKNOWN = -1, LOG_GRP_SYSTEM = 1, LOG_GRP_CACHE, LOG_GRP_IO, LOG_GRP_NETWORK, LOG_GRP_TA, LOG_GRP_TLS, LOG_GRP_GNUTLS, LOG_GRP_TLSCLIENT, LOG_GRP_XDP, LOG_GRP_ZIMPORT, LOG_GRP_ZSCANNER, LOG_GRP_DOH, LOG_GRP_DNSSEC, LOG_GRP_HINT, LOG_GRP_PLAN, LOG_GRP_ITERATOR, LOG_GRP_VALIDATOR, LOG_GRP_RESOLVER, LOG_GRP_SELECTION, LOG_GRP_ZCUT, LOG_GRP_COOKIES, LOG_GRP_STATISTICS, LOG_GRP_REBIND, LOG_GRP_WORKER, LOG_GRP_POLICY, LOG_GRP_TASENTINEL, LOG_GRP_TASIGNALING, LOG_GRP_TAUPDATE, LOG_GRP_DAF, LOG_GRP_DETECTTIMEJUMP, LOG_GRP_DETECTTIMESKEW, LOG_GRP_GRAPHITE, LOG_GRP_PREFILL, LOG_GRP_PRIMING, LOG_GRP_SRVSTALE, LOG_GRP_WATCHDOG, LOG_GRP_NSID, LOG_GRP_DNSTAP, LOG_GRP_TESTS, LOG_GRP_DOTAUTH, LOG_GRP_HTTP, LOG_GRP_CONTROL, LOG_GRP_MODULE, LOG_GRP_DEVEL};
+enum kr_log_group {LOG_GRP_UNKNOWN = -1, LOG_GRP_SYSTEM = 1, LOG_GRP_CACHE, LOG_GRP_IO, LOG_GRP_NETWORK, LOG_GRP_TA, LOG_GRP_TLS, LOG_GRP_GNUTLS, LOG_GRP_TLSCLIENT, LOG_GRP_XDP, LOG_GRP_ZIMPORT, LOG_GRP_ZSCANNER, LOG_GRP_DOH, LOG_GRP_DNSSEC, LOG_GRP_HINT, LOG_GRP_PLAN, LOG_GRP_ITERATOR, LOG_GRP_VALIDATOR, LOG_GRP_RESOLVER, LOG_GRP_SELECTION, LOG_GRP_ZCUT, LOG_GRP_COOKIES, LOG_GRP_STATISTICS, LOG_GRP_REBIND, LOG_GRP_WORKER, LOG_GRP_POLICY, LOG_GRP_TASENTINEL, LOG_GRP_TASIGNALING, LOG_GRP_TAUPDATE, LOG_GRP_DAF, LOG_GRP_DETECTTIMEJUMP, LOG_GRP_DETECTTIMESKEW, LOG_GRP_GRAPHITE, LOG_GRP_PREFILL, LOG_GRP_PRIMING, LOG_GRP_SRVSTALE, LOG_GRP_WATCHDOG, LOG_GRP_NSID, LOG_GRP_DNSTAP, LOG_GRP_TESTS, LOG_GRP_DOTAUTH, LOG_GRP_HTTP, LOG_GRP_CONTROL, LOG_GRP_MODULE, LOG_GRP_DEVEL, LOG_GRP_REQDBG};
 
 kr_layer_t kr_layer_t_static;
 _Bool kr_dbg_assertion_abort;
index 1d7b41c2d6d3d4c5d15f4a98d5f67b35588942b8..42932ec56733eff85ec5c545d4441e2b334fcd52 100644 (file)
@@ -406,6 +406,7 @@ static void drop_capabilities(void)
 
 int main(int argc, char **argv)
 {
+       kr_log_group_reset();
        if (setvbuf(stdout, NULL, _IONBF, 0) || setvbuf(stderr, NULL, _IONBF, 0)) {
                kr_log_error(SYSTEM, "failed to to set output buffering (ignored): %s\n",
                                strerror(errno));
index 76b4cf0382f43b49069c75dec182d9f6b774113e..771efa053018b3fe05dbf00cabd72f8c4a516615 100644 (file)
--- a/lib/log.c
+++ b/lib/log.c
@@ -81,6 +81,7 @@ const log_group_names_t log_group_names[] = {
        GRP_NAME_ITEM(LOG_GRP_CONTROL),
        GRP_NAME_ITEM(LOG_GRP_MODULE),
        GRP_NAME_ITEM(LOG_GRP_DEVEL),
+       GRP_NAME_ITEM(LOG_GRP_REQDBG),
        { NULL, LOG_GRP_UNKNOWN },
 };
 
@@ -237,6 +238,7 @@ void kr_log_group_reset()
 {
        bool had_gnutls = kr_log_group_is_set(LOG_GRP_GNUTLS);
        kr_log_groups = 0;
+       kr_log_group_add(LOG_GRP_REQDBG);
        if (had_gnutls)
                kr_gnutls_log_level_set();
 }
index f5be3da3b8eb9f2d7d6a23d34e6f05afe5ec0770..af01febe9213f30e88d120ef311004406e6ce471 100644 (file)
--- a/lib/log.h
+++ b/lib/log.h
@@ -77,8 +77,9 @@ enum kr_log_group {
        LOG_GRP_HTTP,
        LOG_GRP_CONTROL,
        LOG_GRP_MODULE,
+       LOG_GRP_DEVEL,
        /* ^^ Add new log groups above ^^. */
-       LOG_GRP_DEVEL,  /* Must be last entry in enum! */
+       LOG_GRP_REQDBG, /* Must be first non-displayed entry in enum! */
 };
 
 /**
@@ -129,6 +130,7 @@ enum kr_log_group {
 #define LOG_GRP_CONTROL_TAG            "contrl"        /**< ``contrl``: TTY control sockets*/
 #define LOG_GRP_MODULE_TAG             "module"        /**< ``module``: suitable for user-defined modules */
 #define LOG_GRP_DEVEL_TAG              "devel"         /**< ``devel``: for development purposes */
+#define LOG_GRP_REQDBG_TAG             "reqdbg"        /**< ``reqdbg``: debug logs enabled by policy actions */
 ///@}
 
 KR_EXPORT