Don't create PacketSocketFactory inside BasicPortAllocatorSession
This extends AlwaysValidPointer to avoid creating a unique_ptr inside it. Bug: webrtc:13145 Change-Id: I73a4f18d0a7037b57f575b04b134e4f7eadceb79 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/263240 Reviewed-by: Jonas Oreland <jonaso@webrtc.org> Commit-Queue: Daniel.L (Byoungchan) Lee <daniel.l@hpcnt.com> Reviewed-by: Harald Alvestrand <hta@webrtc.org> Cr-Commit-Position: refs/heads/main@{#37048}
This commit is contained in:
committed by
WebRTC LUCI CQ
parent
ad924e5578
commit
7d4634cef7
@ -165,23 +165,35 @@ BasicPortAllocator::BasicPortAllocator(
|
||||
Init(relay_port_factory, nullptr);
|
||||
RTC_DCHECK(relay_port_factory_ != nullptr);
|
||||
RTC_DCHECK(network_manager_ != nullptr);
|
||||
RTC_DCHECK(socket_factory_ != nullptr);
|
||||
RTC_CHECK(socket_factory_ != nullptr);
|
||||
SetConfiguration(ServerAddresses(), std::vector<RelayServerConfig>(), 0,
|
||||
webrtc::NO_PRUNE, customizer);
|
||||
}
|
||||
|
||||
BasicPortAllocator::BasicPortAllocator(rtc::NetworkManager* network_manager)
|
||||
: network_manager_(network_manager), socket_factory_(nullptr) {
|
||||
BasicPortAllocator::BasicPortAllocator(
|
||||
rtc::NetworkManager* network_manager,
|
||||
std::unique_ptr<rtc::PacketSocketFactory> owned_socket_factory)
|
||||
: network_manager_(network_manager),
|
||||
socket_factory_(std::move(owned_socket_factory)) {
|
||||
Init(nullptr, nullptr);
|
||||
RTC_DCHECK(relay_port_factory_ != nullptr);
|
||||
RTC_DCHECK(network_manager_ != nullptr);
|
||||
RTC_CHECK(socket_factory_ != nullptr);
|
||||
}
|
||||
|
||||
BasicPortAllocator::BasicPortAllocator(rtc::NetworkManager* network_manager,
|
||||
const ServerAddresses& stun_servers)
|
||||
: BasicPortAllocator(network_manager,
|
||||
/*socket_factory=*/nullptr,
|
||||
stun_servers) {}
|
||||
BasicPortAllocator::BasicPortAllocator(
|
||||
rtc::NetworkManager* network_manager,
|
||||
std::unique_ptr<rtc::PacketSocketFactory> owned_socket_factory,
|
||||
const ServerAddresses& stun_servers)
|
||||
: network_manager_(network_manager),
|
||||
socket_factory_(std::move(owned_socket_factory)) {
|
||||
Init(nullptr, nullptr);
|
||||
RTC_DCHECK(relay_port_factory_ != nullptr);
|
||||
RTC_DCHECK(network_manager_ != nullptr);
|
||||
RTC_CHECK(socket_factory_ != nullptr);
|
||||
SetConfiguration(stun_servers, std::vector<RelayServerConfig>(), 0,
|
||||
webrtc::NO_PRUNE, nullptr);
|
||||
}
|
||||
|
||||
BasicPortAllocator::BasicPortAllocator(rtc::NetworkManager* network_manager,
|
||||
rtc::PacketSocketFactory* socket_factory,
|
||||
@ -190,6 +202,7 @@ BasicPortAllocator::BasicPortAllocator(rtc::NetworkManager* network_manager,
|
||||
Init(nullptr, nullptr);
|
||||
RTC_DCHECK(relay_port_factory_ != nullptr);
|
||||
RTC_DCHECK(network_manager_ != nullptr);
|
||||
RTC_CHECK(socket_factory_ != nullptr);
|
||||
SetConfiguration(stun_servers, std::vector<RelayServerConfig>(), 0,
|
||||
webrtc::NO_PRUNE, nullptr);
|
||||
}
|
||||
@ -394,11 +407,6 @@ void BasicPortAllocatorSession::SetCandidateFilter(uint32_t filter) {
|
||||
void BasicPortAllocatorSession::StartGettingPorts() {
|
||||
RTC_DCHECK_RUN_ON(network_thread_);
|
||||
state_ = SessionState::GATHERING;
|
||||
if (!socket_factory_) {
|
||||
owned_socket_factory_.reset(
|
||||
new rtc::BasicPacketSocketFactory(network_thread_->socketserver()));
|
||||
socket_factory_ = owned_socket_factory_.get();
|
||||
}
|
||||
|
||||
network_thread_->PostTask(webrtc::ToQueuedTask(
|
||||
network_safety_, [this] { GetPortConfigurations(); }));
|
||||
|
||||
Reference in New Issue
Block a user