diff --git a/libtransmission/tr-udp.cc b/libtransmission/tr-udp.cc index 1c5f8b503..0b72d33e2 100644 --- a/libtransmission/tr-udp.cc +++ b/libtransmission/tr-udp.cc @@ -95,6 +95,11 @@ void event_callback(evutil_socket_t s, [[maybe_unused]] short type, void* vsessi auto* const session = static_cast(vsession); auto got_utp_packet = false; + auto const from_str = [from_sa] + { + return tr_socket_address::from_sockaddr(from_sa).value_or(tr_socket_address{}).display_name(); + }; + for (;;) { auto const n_read = recvfrom(s, reinterpret_cast(std::data(buf)), std::size(buf) - 1, 0, from_sa, &fromlen); @@ -128,7 +133,7 @@ void event_callback(evutil_socket_t s, [[maybe_unused]] short type, void* vsessi { if (!session->announcer_udp_->handle_message(std::data(buf), n_read, from_sa, fromlen)) { - tr_logAddTrace("Couldn't parse UDP tracker packet."); + tr_logAddTrace(fmt::format("{} Couldn't parse UDP tracker packet.", from_str())); } } else if (session->allowsUTP() && session->utp_context != nullptr) @@ -139,7 +144,11 @@ void event_callback(evutil_socket_t s, [[maybe_unused]] short type, void* vsessi } else { - tr_logAddTrace("Unexpected UDP packet"); + tr_logAddTrace(fmt::format( + "{} Unexpected UDP packet... len {} [{}]", + from_str(), + n_read, + tr_base64_encode({ reinterpret_cast(std::data(buf)), static_cast(n_read) }))); } } } diff --git a/libtransmission/tr-utp.cc b/libtransmission/tr-utp.cc index fae16e9dc..069ca5f5d 100644 --- a/libtransmission/tr-utp.cc +++ b/libtransmission/tr-utp.cc @@ -122,7 +122,7 @@ uint64 utp_callback(utp_callback_arguments* args) { #ifdef TR_UTP_TRACE case UTP_LOG: - fmt::print(stderr, "[µTP] {}\n", args->buf); + tr_logAddTrace(fmt::format("[µTP] {}", reinterpret_cast(args->buf))); break; #endif @@ -227,7 +227,6 @@ void tr_utp_close(tr_session* session) if (session->utp_context != nullptr) { - utp_context_set_userdata(session->utp_context, nullptr); utp_destroy(session->utp_context); session->utp_context = nullptr; }