From 947c7d40d8ed16f51d31230c98a2a7704b371980 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com> Date: Fri, 4 Dec 2020 16:22:01 -0500 Subject: [PATCH] ice: unset callback on close Change-Id: Iba4b98a1b9dd58c24945ee752084697419173049 --- src/ice_transport.cpp | 2 ++ src/media/socket_pair.cpp | 12 ++++-------- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/ice_transport.cpp b/src/ice_transport.cpp index d0897f3575..ab002f93ef 100644 --- a/src/ice_transport.cpp +++ b/src/ice_transport.cpp @@ -1957,6 +1957,8 @@ IceSocketTransport::remoteAddr() const void IceSocket::close() { + if (ice_transport_) + ice_transport_->setOnRecv(compId_, {}); ice_transport_.reset(); } diff --git a/src/media/socket_pair.cpp b/src/media/socket_pair.cpp index fbe08b89d4..7917b7de7e 100644 --- a/src/media/socket_pair.cpp +++ b/src/media/socket_pair.cpp @@ -189,22 +189,18 @@ SocketPair::SocketPair(std::unique_ptr<IceSocket> rtp_sock, std::unique_ptr<IceS : rtp_sock_(std::move(rtp_sock)) , rtcp_sock_(std::move(rtcp_sock)) { - auto queueRtpPacket = [this](uint8_t* buf, size_t len) { + rtp_sock_->setOnRecv([this](uint8_t* buf, size_t len) { std::lock_guard<std::mutex> l(dataBuffMutex_); rtpDataBuff_.emplace_back(buf, buf + len); cv_.notify_one(); return len; - }; - - auto queueRtcpPacket = [this](uint8_t* buf, size_t len) { + }); + rtcp_sock_->setOnRecv([this](uint8_t* buf, size_t len) { std::lock_guard<std::mutex> l(dataBuffMutex_); rtcpDataBuff_.emplace_back(buf, buf + len); cv_.notify_one(); return len; - }; - - rtp_sock_->setOnRecv(queueRtpPacket); - rtcp_sock_->setOnRecv(queueRtcpPacket); + }); } SocketPair::~SocketPair() -- GitLab