diff --git a/rtc_base/asyncpacketsocket.cc b/rtc_base/asyncpacketsocket.cc index 104e511d04..e1b1eae6a3 100644 --- a/rtc_base/asyncpacketsocket.cc +++ b/rtc_base/asyncpacketsocket.cc @@ -30,10 +30,13 @@ AsyncPacketSocket::~AsyncPacketSocket() = default; void CopySocketInformationToPacketInfo(size_t packet_size_bytes, const AsyncPacketSocket& socket_from, + bool is_connectionless, rtc::PacketInfo* info) { info->packet_size_bytes = packet_size_bytes; info->local_socket_address = socket_from.GetLocalAddress(); - info->remote_socket_address = socket_from.GetRemoteAddress(); + if (!is_connectionless) { + info->remote_socket_address = socket_from.GetRemoteAddress(); + } } }; // namespace rtc diff --git a/rtc_base/asyncpacketsocket.h b/rtc_base/asyncpacketsocket.h index 6ae0525e5c..2ffacfe6db 100644 --- a/rtc_base/asyncpacketsocket.h +++ b/rtc_base/asyncpacketsocket.h @@ -145,6 +145,7 @@ class AsyncPacketSocket : public sigslot::has_slots<> { void CopySocketInformationToPacketInfo(size_t packet_size_bytes, const AsyncPacketSocket& socket_from, + bool is_connectionless, rtc::PacketInfo* info); } // namespace rtc diff --git a/rtc_base/asynctcpsocket.cc b/rtc_base/asynctcpsocket.cc index 0e35841412..058d945cf2 100644 --- a/rtc_base/asynctcpsocket.cc +++ b/rtc_base/asynctcpsocket.cc @@ -299,7 +299,7 @@ int AsyncTCPSocket::Send(const void *pv, size_t cb, rtc::SentPacket sent_packet(options.packet_id, rtc::TimeMillis(), options.info_signaled_after_sent); - CopySocketInformationToPacketInfo(cb, *this, &sent_packet.info); + CopySocketInformationToPacketInfo(cb, *this, false, &sent_packet.info); SignalSentPacket(this, sent_packet); // We claim to have sent the whole thing, even if we only sent partial diff --git a/rtc_base/asyncudpsocket.cc b/rtc_base/asyncudpsocket.cc index c874ee6ce0..d8e60b9a42 100644 --- a/rtc_base/asyncudpsocket.cc +++ b/rtc_base/asyncudpsocket.cc @@ -62,7 +62,7 @@ int AsyncUDPSocket::Send(const void *pv, size_t cb, const rtc::PacketOptions& options) { rtc::SentPacket sent_packet(options.packet_id, rtc::TimeMillis(), options.info_signaled_after_sent); - CopySocketInformationToPacketInfo(cb, *this, &sent_packet.info); + CopySocketInformationToPacketInfo(cb, *this, false, &sent_packet.info); int ret = socket_->Send(pv, cb); SignalSentPacket(this, sent_packet); return ret; @@ -73,7 +73,7 @@ int AsyncUDPSocket::SendTo(const void *pv, size_t cb, const rtc::PacketOptions& options) { rtc::SentPacket sent_packet(options.packet_id, rtc::TimeMillis(), options.info_signaled_after_sent); - CopySocketInformationToPacketInfo(cb, *this, &sent_packet.info); + CopySocketInformationToPacketInfo(cb, *this, true, &sent_packet.info); sent_packet.info.remote_socket_address = addr; int ret = socket_->SendTo(pv, cb, addr); SignalSentPacket(this, sent_packet);