[sigslot] - Remove signal from StunPort::AddressResolver.

Bug: webrtc:11943
Change-Id: I5c8fe10cbf47e85cfc26e1e7e548627a588ffcbf
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/225551
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34534}
diff --git a/p2p/base/stun_port.cc b/p2p/base/stun_port.cc
index 7b1a2a83..e149c20 100644
--- a/p2p/base/stun_port.cc
+++ b/p2p/base/stun_port.cc
@@ -115,8 +115,10 @@
   int64_t start_time_;
 };
 
-UDPPort::AddressResolver::AddressResolver(rtc::PacketSocketFactory* factory)
-    : socket_factory_(factory) {}
+UDPPort::AddressResolver::AddressResolver(
+    rtc::PacketSocketFactory* factory,
+    std::function<void(const rtc::SocketAddress&, int)> done_callback)
+    : socket_factory_(factory), done_(std::move(done_callback)) {}
 
 UDPPort::AddressResolver::~AddressResolver() {
   for (ResolverMap::iterator it = resolvers_.begin(); it != resolvers_.end();
@@ -159,7 +161,7 @@
   for (ResolverMap::iterator it = resolvers_.begin(); it != resolvers_.end();
        ++it) {
     if (it->second == resolver) {
-      SignalDone(it->first, resolver->GetError());
+      done_(it->first, resolver->GetError());
       return;
     }
   }
@@ -434,8 +436,10 @@
 
 void UDPPort::ResolveStunAddress(const rtc::SocketAddress& stun_addr) {
   if (!resolver_) {
-    resolver_.reset(new AddressResolver(socket_factory()));
-    resolver_->SignalDone.connect(this, &UDPPort::OnResolveResult);
+    resolver_.reset(new AddressResolver(
+        socket_factory(), [&](const rtc::SocketAddress& input, int error) {
+          OnResolveResult(input, error);
+        }));
   }
 
   RTC_LOG(LS_INFO) << ToString() << ": Starting STUN host lookup for "
diff --git a/p2p/base/stun_port.h b/p2p/base/stun_port.h
index aa57d66..45150ae 100644
--- a/p2p/base/stun_port.h
+++ b/p2p/base/stun_port.h
@@ -11,6 +11,7 @@
 #ifndef P2P_BASE_STUN_PORT_H_
 #define P2P_BASE_STUN_PORT_H_
 
+#include <functional>
 #include <map>
 #include <memory>
 #include <string>
@@ -20,8 +21,6 @@
 #include "p2p/base/stun_request.h"
 #include "rtc_base/async_packet_socket.h"
 
-// TODO(mallinath) - Rename stunport.cc|h to udpport.cc|h.
-
 namespace cricket {
 
 // Lifetime chosen for STUN ports on low-cost networks.
@@ -183,7 +182,9 @@
   // resolve one address per instance.
   class AddressResolver : public sigslot::has_slots<> {
    public:
-    explicit AddressResolver(rtc::PacketSocketFactory* factory);
+    explicit AddressResolver(
+        rtc::PacketSocketFactory* factory,
+        std::function<void(const rtc::SocketAddress&, int)> done_callback);
     ~AddressResolver() override;
 
     void Resolve(const rtc::SocketAddress& address);
@@ -191,11 +192,6 @@
                             int family,
                             rtc::SocketAddress* output) const;
 
-    // The signal is sent when resolving the specified address is finished. The
-    // first argument is the input address, the second argument is the error
-    // or 0 if it succeeded.
-    sigslot::signal2<const rtc::SocketAddress&, int> SignalDone;
-
    private:
     typedef std::map<rtc::SocketAddress, rtc::AsyncResolverInterface*>
         ResolverMap;
@@ -204,6 +200,10 @@
 
     rtc::PacketSocketFactory* socket_factory_;
     ResolverMap resolvers_;
+    // The function is called when resolving the specified address is finished.
+    // The first argument is the input address, the second argument is the error
+    // or 0 if it succeeded.
+    std::function<void(const rtc::SocketAddress&, int)> done_;
   };
 
   // DNS resolution of the STUN server.