diff --git a/src/or/buffers.c b/src/or/buffers.c index 3825dd6f47..658a924cef 100644 --- a/src/or/buffers.c +++ b/src/or/buffers.c @@ -1308,7 +1308,8 @@ fetch_from_buf_http(buf_t *buf, * protocol socks_protocol on port port. Don't warn more than * once per SOCKS_WARN_INTERVAL, unless safe_socks is set. */ static void -log_unsafe_socks_warning(int socks_protocol, uint16_t port, int safe_socks) +log_unsafe_socks_warning(int socks_protocol, const char *address, + uint16_t port, int safe_socks) { static ratelim_t socks_ratelim = RATELIM_INIT(SOCKS_WARN_INTERVAL); @@ -1330,6 +1331,9 @@ log_unsafe_socks_warning(int socks_protocol, uint16_t port, int safe_socks) m ? m : ""); tor_free(m); } + control_event_client_status(LOG_WARN, + "DANGEROUS_SOCKS PROTOCOL=SOCKS%d ADDRESS=%s:%d", + socks_protocol, address, (int)port); } /** There is a (possibly incomplete) socks handshake on buf, of one @@ -1450,10 +1454,7 @@ fetch_from_buf_socks(buf_t *buf, socks_request_t *req, buf_remove_from_front(buf, 6+addrlen); if (req->command != SOCKS_COMMAND_RESOLVE_PTR && !addressmap_have_mapping(req->address,0)) { - log_unsafe_socks_warning(5, req->port, safe_socks); - control_event_client_status(LOG_WARN, - "DANGEROUS_SOCKS PROTOCOL=SOCKS5 ADDRESS=%s:%d", - req->address, req->port); + log_unsafe_socks_warning(5, req->address, req->port, safe_socks); if (safe_socks) return -1; } @@ -1554,7 +1555,7 @@ fetch_from_buf_socks(buf_t *buf, socks_request_t *req, startaddr = NULL; if (socks4_prot != socks4a && !addressmap_have_mapping(tmpbuf,0)) { - log_unsafe_socks_warning(4, req->port, safe_socks); + log_unsafe_socks_warning(4, tmpbuf, req->port, safe_socks); if (safe_socks) return -1;