local_addr = isc_nmhandle_localaddr(socket->h2.session->handle);
isc_sockaddr_format(&client_addr, client_sabuf, sizeof(client_sabuf));
isc_sockaddr_format(&local_addr, local_sabuf, sizeof(local_sabuf));
- isc_log_write(isc_lctx, ISC_LOGCATEGORY_GENERAL, ISC_LOGMODULE_NETMGR,
- log_level, "HTTP/2 request from %s (on %s) failed: %s %s",
- client_sabuf, local_sabuf, response->header.value,
- response->desc);
+ isc__nmsocket_log(socket, log_level,
+ "HTTP/2 request from %s (on %s) failed: %s %s",
+ client_sabuf, local_sabuf, response->header.value,
+ response->desc);
}
static isc_result_t
isc__nm_failed_read_cb(isc_nmsocket_t *sock, isc_result_t result, bool async);
void
-isc__nm_accept_connection_log(isc_result_t result, bool can_log_quota);
+isc__nm_accept_connection_log(isc_nmsocket_t *sock, isc_result_t result,
+ bool can_log_quota);
/*
* Timeout callbacks
void
isc__nmsocket_log_tls_session_reuse(isc_nmsocket_t *sock, isc_tls_t *tls);
+
+/*
+ * Logging helpers
+ */
+void
+isc__netmgr_log(const isc_nm_t *netmgr, int level, const char *fmt, ...)
+ ISC_FORMAT_PRINTF(3, 4);
+void
+isc__nmsocket_log(const isc_nmsocket_t *sock, int level, const char *fmt, ...)
+ ISC_FORMAT_PRINTF(3, 4);
+void
+isc__nmhandle_log(const isc_nmhandle_t *handle, int level, const char *fmt, ...)
+ ISC_FORMAT_PRINTF(3, 4);
worker->shuttingdown = true;
- isc_log_write(isc_lctx, ISC_LOGCATEGORY_GENERAL, ISC_LOGMODULE_NETMGR,
- ISC_LOG_DEBUG(1),
- "Shutting down network manager worker on loop %p(%d)",
- loop, isc_tid());
+ isc__netmgr_log(worker->netmgr, ISC_LOG_DEBUG(1),
+ "Shutting down network manager worker on loop %p(%d)",
+ loop, isc_tid());
uv_walk(&loop->loop, shutdown_walk_cb, NULL);
if (atomic_compare_exchange_strong(&netmgr->shuttingdown,
&(bool){ false }, true))
{
- isc_log_write(isc_lctx, ISC_LOGCATEGORY_GENERAL,
- ISC_LOGMODULE_NETMGR, ISC_LOG_DEBUG(1),
- "Shutting down network manager");
+ isc__netmgr_log(netmgr, ISC_LOG_DEBUG(1),
+ "Shutting down network manager");
}
}
/* IGNORE: The client disconnected before we could accept */
break;
default:
- isc_log_write(isc_lctx, ISC_LOGCATEGORY_GENERAL,
- ISC_LOGMODULE_NETMGR, ISC_LOG_ERROR,
- "Accepting TCP connection failed: %s",
- isc_result_totext(eresult));
+ isc__nmsocket_log(sock, ISC_LOG_ERROR,
+ "Accepting TCP connection failed: %s",
+ isc_result_totext(eresult));
}
}
}
void
-isc__nm_accept_connection_log(isc_result_t result, bool can_log_quota) {
+isc__nm_accept_connection_log(isc_nmsocket_t *sock, isc_result_t result,
+ bool can_log_quota) {
int level;
switch (result) {
level = ISC_LOG_ERROR;
}
- isc_log_write(isc_lctx, ISC_LOGCATEGORY_GENERAL, ISC_LOGMODULE_NETMGR,
- level, "Accepting TCP connection failed: %s",
- isc_result_totext(result));
+ isc__nmsocket_log(sock, level, "Accepting TCP connection failed: %s",
+ isc_result_totext(result));
}
void
isc_sockaddr_format(&sock->peer, client_sabuf, sizeof(client_sabuf));
isc_sockaddr_format(&sock->iface, local_sabuf, sizeof(local_sabuf));
- isc_log_write(isc_lctx, ISC_LOGCATEGORY_GENERAL, ISC_LOGMODULE_NETMGR,
- log_level, "TLS %s session %s for %s on %s",
- SSL_is_server(tls) ? "server" : "client",
- SSL_session_reused(tls) ? "resumed" : "created",
- client_sabuf, local_sabuf);
+ isc__nmsocket_log(sock, log_level, "TLS %s session %s for %s on %s",
+ SSL_is_server(tls) ? "server" : "client",
+ SSL_session_reused(tls) ? "resumed" : "created",
+ client_sabuf, local_sabuf);
}
static void
isc_nm_t *netmgr = worker->netmgr;
worker->netmgr = NULL;
- isc_log_write(isc_lctx, ISC_LOGCATEGORY_GENERAL, ISC_LOGMODULE_NETMGR,
- ISC_LOG_DEBUG(1),
- "Destroying down network manager worker on loop %p(%d)",
- worker->loop, isc_tid());
+ isc__netmgr_log(netmgr, ISC_LOG_DEBUG(1),
+ "Destroying down network manager worker on loop %p(%d)",
+ worker->loop, isc_tid());
isc_loop_detach(&worker->loop);
ISC_REFCOUNT_IMPL(isc__networker, isc__networker_destroy);
+void
+isc__netmgr_log(const isc_nm_t *netmgr, int level, const char *fmt, ...) {
+ char msgbuf[2048];
+ va_list ap;
+
+ if (!isc_log_wouldlog(isc_lctx, level)) {
+ return;
+ }
+
+ va_start(ap, fmt);
+ vsnprintf(msgbuf, sizeof(msgbuf), fmt, ap);
+ va_end(ap);
+
+ isc_log_write(isc_lctx, ISC_LOGCATEGORY_DEFAULT, ISC_LOGMODULE_NETMGR,
+ level, "netmgr %p: %s", netmgr, msgbuf);
+}
+
+void
+isc__nmsocket_log(const isc_nmsocket_t *sock, int level, const char *fmt, ...) {
+ char msgbuf[2048];
+ va_list ap;
+
+ if (!isc_log_wouldlog(isc_lctx, level)) {
+ return;
+ }
+
+ va_start(ap, fmt);
+ vsnprintf(msgbuf, sizeof(msgbuf), fmt, ap);
+ va_end(ap);
+
+ isc_log_write(isc_lctx, ISC_LOGCATEGORY_DEFAULT, ISC_LOGMODULE_NETMGR,
+ level, "socket %p: %s", sock, msgbuf);
+}
+
+void
+isc__nmhandle_log(const isc_nmhandle_t *handle, int level, const char *fmt,
+ ...) {
+ char msgbuf[2048];
+ va_list ap;
+
+ if (!isc_log_wouldlog(isc_lctx, level)) {
+ return;
+ }
+
+ va_start(ap, fmt);
+ vsnprintf(msgbuf, sizeof(msgbuf), fmt, ap);
+ va_end(ap);
+
+ isc__nmsocket_log(handle->sock, level, "handle %p: %s", handle, msgbuf);
+}
+
#ifdef NETMGR_TRACE
/*
* Dump all active sockets in netmgr. We output to stderr
/* IGNORE: The client disconnected before we could accept */
break;
default:
- isc_log_write(isc_lctx, ISC_LOGCATEGORY_GENERAL,
- ISC_LOGMODULE_NETMGR, ISC_LOG_ERROR,
- "Accepting TCP connection failed: %s",
- isc_result_totext(eresult));
+ isc__nmsocket_log(sock, ISC_LOG_ERROR,
+ "Accepting TCP connection failed: %s",
+ isc_result_totext(eresult));
}
}
r = uv_listen((uv_stream_t *)&sock->uv_handle.tcp, sock->backlog,
tcp_connection_cb);
if (r != 0) {
- isc_log_write(isc_lctx, ISC_LOGCATEGORY_GENERAL,
- ISC_LOGMODULE_NETMGR, ISC_LOG_ERROR,
- "uv_listen failed: %s",
- isc_result_totext(isc_uverr2result(r)));
+ isc__nmsocket_log(sock, ISC_LOG_ERROR, "uv_listen failed: %s",
+ isc_result_totext(isc_uverr2result(r)));
isc__nm_incstats(sock, STATID_BINDFAIL);
goto done;
}
result = accept_connection(ssock, quota);
done:
- isc__nm_accept_connection_log(result, can_log_tcp_quota());
+ isc__nm_accept_connection_log(ssock, result, can_log_tcp_quota());
}
static void
REQUIRE(sock->tid == isc_tid());
result = accept_connection(sock, ievent->quota);
- isc__nm_accept_connection_log(result, can_log_tcp_quota());
+ isc__nm_accept_connection_log(sock, result, can_log_tcp_quota());
}
static isc_result_t
r = uv_listen((uv_stream_t *)&sock->uv_handle.tcp, sock->backlog,
tcpdns_connection_cb);
if (r != 0) {
- isc_log_write(isc_lctx, ISC_LOGCATEGORY_GENERAL,
- ISC_LOGMODULE_NETMGR, ISC_LOG_ERROR,
- "uv_listen failed: %s",
- isc_result_totext(isc_uverr2result(r)));
+ isc__nmsocket_log(sock, ISC_LOG_ERROR, "uv_listen failed: %s",
+ isc_result_totext(isc_uverr2result(r)));
isc__nm_incstats(sock, STATID_BINDFAIL);
goto done;
}
result = accept_connection(ssock, quota);
done:
- isc__nm_accept_connection_log(result, can_log_tcpdns_quota());
+ isc__nm_accept_connection_log(ssock, result, can_log_tcpdns_quota());
}
static void
REQUIRE(ievent->sock->tid == isc_tid());
result = accept_connection(ievent->sock, ievent->quota);
- isc__nm_accept_connection_log(result, can_log_tcpdns_quota());
+ isc__nm_accept_connection_log(ievent->sock, result,
+ can_log_tcpdns_quota());
}
static isc_result_t
r = uv_listen((uv_stream_t *)&sock->uv_handle.tcp, sock->backlog,
tlsdns_connection_cb);
if (r != 0) {
- isc_log_write(isc_lctx, ISC_LOGCATEGORY_GENERAL,
- ISC_LOGMODULE_NETMGR, ISC_LOG_ERROR,
- "uv_listen failed: %s",
- isc_result_totext(isc_uverr2result(r)));
+ isc__nmsocket_log(sock, ISC_LOG_ERROR, "uv_listen failed: %s",
+ isc_result_totext(isc_uverr2result(r)));
isc__nm_incstats(sock, STATID_BINDFAIL);
goto done;
}
result = accept_connection(ssock, quota);
done:
- isc__nm_accept_connection_log(result, can_log_tlsdns_quota());
+ isc__nm_accept_connection_log(ssock, result, can_log_tlsdns_quota());
}
static void
REQUIRE(ievent->sock->tid == isc_tid());
result = accept_connection(ievent->sock, ievent->quota);
- isc__nm_accept_connection_log(result, can_log_tlsdns_quota());
+ isc__nm_accept_connection_log(ievent->sock, result,
+ can_log_tlsdns_quota());
}
static isc_result_t
error:
#if defined(NETMGR_TRACE) && defined(NETMGR_TRACE_VERBOSE)
- isc_log_write(isc_lctx, ISC_LOGCATEGORY_GENERAL, ISC_LOGMODULE_NETMGR,
- ISC_LOG_NOTICE,
- "SSL error in BIO: %d %s (errno: %d). Arguments: "
- "received_data: %p, "
- "send_data: %p, finish: %s",
- tls_status, isc_result_totext(result), saved_errno,
- received_data, send_data, finish ? "true" : "false");
+ isc__nmsocket_log(sock, ISC_LOG_NOTICE,
+ "SSL error in BIO: %d %s (errno: %d). Arguments: "
+ "received_data: %p, "
+ "send_data: %p, finish: %s",
+ tls_status, isc_result_totext(result), saved_errno,
+ received_data, send_data, finish ? "true" : "false");
#endif
tls_failed_read_cb(sock, result);
}