/** Toggle verbose mode. */
static int l_verbose(lua_State *L)
{
- log_level_t level = LOG_ERR;
- if ((lua_isboolean(L, 1) && lua_toboolean(L, 1) == true) ||
- (lua_isnumber(L, 1) && lua_tointeger(L, 1) == LOG_DEBUG)) {
- level = LOG_DEBUG;
+ if (lua_isboolean(L, 1) || lua_isnumber(L, 1)) {
+ kr_log_level_set(lua_toboolean(L, 1) == true ? LOG_DEBUG : LOG_DEFAULT_LEVEL);
}
- lua_pushboolean(L, kr_log_level_set(level) == LOG_DEBUG);
+ lua_pushboolean(L, kr_log_level_get() == LOG_DEBUG);
return 1;
}
}
if (nread < 0 || !buf->base) {
- if (kr_verbose_status) {
+ if (KR_LOG_LEVEL_IS(LOG_DEBUG)) {
struct sockaddr *peer = session_get_peer(s);
char *peer_str = kr_straddr(peer);
kr_log_verbose("[io] => connection to '%s' closed by peer (%s)\n",
Decode data free space in session wire buffer. */
consumed = tls_process_input_data(s, (const uint8_t *)buf->base, nread);
if (consumed < 0) {
- if (kr_verbose_status) {
+ if (KR_LOG_LEVEL_IS(LOG_DEBUG)) {
struct sockaddr *peer = session_get_peer(s);
char *peer_str = kr_straddr(peer);
kr_log_verbose("[io] => connection to '%s': "
if (session_flags(s)->has_http) {
consumed = http_process_input_data(s, data, data_len);
if (consumed < 0) {
- if (kr_verbose_status) {
+ if (KR_LOG_LEVEL_IS(LOG_DEBUG)) {
struct sockaddr *peer = session_get_peer(s);
char *peer_str = kr_straddr(peer);
kr_log_verbose("[io] => connection to '%s': "
if (kr_fails_assert(nsec_rr))
return kr_error(EFAULT);
const uint32_t new_ttl_log =
- kr_verbose_status ? nsec_rr->ttl : -1;
+ KR_LOG_LEVEL_IS(LOG_DEBUG) ? nsec_rr->ttl : -1;
const uint8_t *bm = knot_nsec_bitmap(nsec_rr->rrs.rdata);
uint16_t bm_size = knot_nsec_bitmap_len(nsec_rr->rrs.rdata);
int ret;
{
va_list args;
va_start(args, fmt);
- if (level <= kr_log_level)
+ if (KR_LOG_LEVEL_IS(level))
vfprintf(stdout, fmt, args);
va_end(args);
}
/* gnutls logs messages related to our TLS and also libdnssec,
* and the logging is set up in a global way only */
- if (kr_log_level >= LOG_DEBUG) {
+ if (KR_LOG_LEVEL_IS(LOG_DEBUG)) {
gnutls_global_set_log_function(kres_gnutls_log);
}
- gnutls_global_set_log_level(level);
+
+ gnutls_global_set_log_level(kr_log_level_get() == LOG_DEBUG ? 5 : 0);
return kr_log_level;
#define kr_log_fatal(fmt, ...) kr_log_fmt(LOG_CRIT, fmt, ## __VA_ARGS__)
#define kr_log_deprecate(fmt, ...) kr_log_fmt(LOG_WARNING, "deprecation WARNING: " fmt, ## __VA_ARGS__)
+
+#define KR_LOG_LEVEL_IS(exp) ((kr_log_level >= (exp)) ? true : false)
#include <sys/statvfs.h>
#include <sys/un.h>
-/* Always compile-in log symbols, even if disabled. */
-#undef kr_verbose_status
-
/* Logging & debugging */
-bool kr_verbose_status = false;
bool kr_dbg_assertion_abort = DBG_ASSERTION_ABORT;
int kr_dbg_assertion_fork = DBG_ASSERTION_FORK;
errno = errno_orig;
}
-
/*
* Macros.
*/
return result;
}
-/* Always export these, but override direct calls by macros conditionally. */
-/** Whether in --verbose mode. Only use this for reading. */
-KR_EXPORT extern bool kr_verbose_status;
-
/**
* @brief Return true if the query has request log handler installed.
*/
KR_EXPORT KR_PRINTF(3)
void kr_log_q(const struct kr_query *qry, const char *source, const char *fmt, ...);
-#ifdef NOVERBOSELOG
-/* Efficient compile-time disabling of verbose messages. */
-#define kr_verbose_status false
-#define kr_verbose_set(x)
-#endif
-
/** Block run in --verbose mode; optimized when not run. */
-#define VERBOSE_STATUS __builtin_expect(kr_verbose_status, false)
-#define WITH_VERBOSE(query) if(__builtin_expect(kr_verbose_status || kr_log_qtrace_enabled(query), false))
+#define VERBOSE_STATUS __builtin_expect(KR_LOG_LEVEL_IS(LOG_DEBUG), false)
+#define WITH_VERBOSE(query) if(__builtin_expect(KR_LOG_LEVEL_IS(LOG_DEBUG) || kr_log_qtrace_enabled(query), false))
#define kr_log_verbose if(VERBOSE_STATUS) printf
#define KR_DNAME_GET_STR(dname_str, dname) \