| Index: webrtc/p2p/stunprober/stunprober.cc
|
| diff --git a/webrtc/p2p/stunprober/stunprober.cc b/webrtc/p2p/stunprober/stunprober.cc
|
| index f32a2002fb0fed3069f01671ca15ec32ba42a137..2ec77323daa315a244d915cb28f1a997363d2278 100644
|
| --- a/webrtc/p2p/stunprober/stunprober.cc
|
| +++ b/webrtc/p2p/stunprober/stunprober.cc
|
| @@ -280,6 +280,19 @@ bool StunProber::Prepare(const std::vector<rtc::SocketAddress>& servers,
|
| timeout_ms_ = timeout_ms;
|
| servers_ = servers;
|
| observer_ = observer;
|
| + // Remove addresses that are already resolved.
|
| + for (auto it = servers_.begin(); it != servers_.end();) {
|
| + if (it->ipaddr().family() != AF_UNSPEC) {
|
| + all_servers_addrs_.push_back(*it);
|
| + it = servers_.erase(it);
|
| + } else {
|
| + ++it;
|
| + }
|
| + }
|
| + if (servers_.empty()) {
|
| + CreateSockets();
|
| + return true;
|
| + }
|
| return ResolveServerName(servers_.back());
|
| }
|
|
|
| @@ -339,6 +352,10 @@ void StunProber::OnServerResolved(rtc::AsyncResolverInterface* resolver) {
|
| return;
|
| }
|
|
|
| + CreateSockets();
|
| +}
|
| +
|
| +void StunProber::CreateSockets() {
|
| // Dedupe.
|
| std::set<rtc::SocketAddress> addrs(all_servers_addrs_.begin(),
|
| all_servers_addrs_.end());
|
|
|