Replace IceTransportInternal::SignalCandidateError

with a callback function.

Bug: webrtc:11943
Change-Id: Ieed740a36f86be6dd45d6a495cc4fd023ea98477
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/328862
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41249}
This commit is contained in:
Harald Alvestrand 2023-11-27 12:30:12 +00:00 committed by WebRTC LUCI CQ
parent a1a05e259d
commit 50a238fbd4
3 changed files with 18 additions and 5 deletions

View File

@ -310,8 +310,12 @@ class RTC_EXPORT IceTransportInternal : public rtc::PacketTransportInternal {
sigslot::signal2<IceTransportInternal*, const Candidate&>
SignalCandidateGathered;
sigslot::signal2<IceTransportInternal*, const IceCandidateErrorEvent&>
SignalCandidateError;
void SetCandidateErrorCallback(
absl::AnyInvocable<void(IceTransportInternal*,
const IceCandidateErrorEvent&)> callback) {
RTC_DCHECK(!candidate_error_callback_);
candidate_error_callback_ = std::move(callback);
}
sigslot::signal2<IceTransportInternal*, const Candidates&>
SignalCandidatesRemoved;
@ -372,6 +376,9 @@ class RTC_EXPORT IceTransportInternal : public rtc::PacketTransportInternal {
dictionary_view_updated_callback_list_;
webrtc::CallbackList<IceTransportInternal*, const StunDictionaryWriter&>
dictionary_writer_synced_callback_list_;
absl::AnyInvocable<void(IceTransportInternal*, const IceCandidateErrorEvent&)>
candidate_error_callback_;
};
} // namespace cricket

View File

@ -996,7 +996,9 @@ void P2PTransportChannel::OnCandidateError(
PortAllocatorSession* session,
const IceCandidateErrorEvent& event) {
RTC_DCHECK(network_thread_ == rtc::Thread::Current());
SignalCandidateError(this, event);
if (candidate_error_callback_) {
candidate_error_callback_(this, event);
}
}
void P2PTransportChannel::OnCandidatesAllocationDone(

View File

@ -437,8 +437,12 @@ JsepTransportController::CreateDtlsTransport(
this, &JsepTransportController::OnTransportGatheringState_n);
dtls->ice_transport()->SignalCandidateGathered.connect(
this, &JsepTransportController::OnTransportCandidateGathered_n);
dtls->ice_transport()->SignalCandidateError.connect(
this, &JsepTransportController::OnTransportCandidateError_n);
dtls->ice_transport()->SetCandidateErrorCallback(
[this](cricket::IceTransportInternal* transport,
const cricket::IceCandidateErrorEvent& error) {
RTC_DCHECK_RUN_ON(network_thread_);
OnTransportCandidateError_n(transport, error);
});
dtls->ice_transport()->SignalCandidatesRemoved.connect(
this, &JsepTransportController::OnTransportCandidatesRemoved_n);
dtls->ice_transport()->SignalRoleConflict.connect(