diff --git a/src/ice_transport.cpp b/src/ice_transport.cpp index faa88f577b93c2a372edd26578a5e0875dcc3c1d..62af6e5488f753718d240d022c15a46491c56eb9 100644 --- a/src/ice_transport.cpp +++ b/src/ice_transport.cpp @@ -316,7 +316,6 @@ IceTransport::Impl::Impl(const char* name, }) , on_initdone_cb_(options.onInitDone) , on_negodone_cb_(options.onNegoDone) - , on_recv_cb_(options.onRecvReady) , component_count_(component_count) , compIO_(component_count) , initiatorSession_(master) @@ -959,10 +958,6 @@ IceTransport::Impl::onReceiveData(unsigned comp_id, void* pkt, pj_size_t size) return; auto& io = compIO_[comp_id - 1]; std::unique_lock<std::mutex> lk(io.mutex); - if (on_recv_cb_) { - on_recv_cb_(); - } - if (io.cb) { io.cb((uint8_t*) pkt, size); } else { @@ -1767,9 +1762,8 @@ IceSocket::waitForData(std::chrono::milliseconds timeout) void IceSocket::setOnRecv(IceRecvCb cb) { - if (!ice_transport_.get()) - return; - return ice_transport_->setOnRecv(compId_, cb); + if (ice_transport_) + ice_transport_->setOnRecv(compId_, cb); } uint16_t diff --git a/src/ice_transport.h b/src/ice_transport.h index 33c7e0f9b2b4501d10e90ff14c406a4895115e33..e5db678f6da737ee60fe500c675ac243184bc75c 100644 --- a/src/ice_transport.h +++ b/src/ice_transport.h @@ -98,7 +98,6 @@ struct IceTransportOptions bool upnpEnable {false}; IceTransportCompleteCb onInitDone {}; IceTransportCompleteCb onNegoDone {}; - IceRecvInfo onRecvReady {}; // Detect that we have data to read but without destroying the buffer std::vector<StunServerInfo> stunServers; std::vector<TurnServerInfo> turnServers; bool tcpEnable {false}; // If we want to use TCP diff --git a/src/jamidht/connectionmanager.cpp b/src/jamidht/connectionmanager.cpp index 5d97023053b59bb13661450e10570ff8919eb0c8..d8d7f146452cb7571d18cbcaecb77dbca3078c23 100644 --- a/src/jamidht/connectionmanager.cpp +++ b/src/jamidht/connectionmanager.cpp @@ -694,15 +694,8 @@ ConnectionManager::Impl::onDhtPeerRequest(const PeerConnectionRequest& req, std::condition_variable cv {}; bool ready {false}; }; - auto iceReady = std::make_shared<IceReady>(); auto ice_config = account.getIceOptions(); ice_config.tcpEnable = true; - ice_config.onRecvReady = [iceReady]() { - auto& ir = *iceReady; - std::lock_guard<std::mutex> lk {ir.mtx}; - ir.ready = true; - ir.cv.notify_one(); - }; ice_config.onInitDone = [w = weak(), req](bool ok) { auto shared = w.lock(); if (!shared) @@ -734,10 +727,8 @@ ConnectionManager::Impl::onDhtPeerRequest(const PeerConnectionRequest& req, } dht::ThreadPool::io().run([w = std::move(w), req = std::move(req)] { - auto shared = w.lock(); - if (!shared) - return; - shared->onRequestOnNegoDone(req); + if (auto shared = w.lock()) + shared->onRequestOnNegoDone(req); }); }; diff --git a/src/jamidht/jamiaccount.cpp b/src/jamidht/jamiaccount.cpp index 969ebfe1e28abaa90d41aea10e805272c8b129fa..663bd4033d29ab321819287d038db71e32a30aeb 100644 --- a/src/jamidht/jamiaccount.cpp +++ b/src/jamidht/jamiaccount.cpp @@ -2350,14 +2350,13 @@ JamiAccount::incomingCall(dht::IceCandidates&& msg, return; } auto callId = call->getCallId(); - auto onNegoDone = [callId, w = weak()](bool) { + auto iceOptions = getIceOptions(); + iceOptions.onNegoDone = [callId, w = weak()](bool) { runOnMainThread([callId, w]() { if (auto shared = w.lock()) shared->checkPendingCall(callId); }); }; - auto iceOptions = getIceOptions(); - iceOptions.onNegoDone = onNegoDone; auto ice = createIceTransport(("sip:" + call->getCallId()).c_str(), ICE_COMPONENTS, false,