Update talk to 56619788

R=wu@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/3839005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5120 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/talk/base/nethelpers.cc b/talk/base/nethelpers.cc
index 05e02c9..e6310ac 100644
--- a/talk/base/nethelpers.cc
+++ b/talk/base/nethelpers.cc
@@ -67,7 +67,27 @@
 }
 
 // AsyncResolver
-AsyncResolver::AsyncResolver() : error_(0) {
+AsyncResolver::AsyncResolver() : error_(-1) {
+}
+
+void AsyncResolver::Start(const SocketAddress& addr) {
+  addr_ = addr;
+  // SignalThred Start will kickoff the resolve process.
+  SignalThread::Start();
+}
+
+bool AsyncResolver::GetResolvedAddress(int family, SocketAddress* addr) const {
+  if (error_ != 0 || addresses_.empty())
+    return false;
+
+  *addr = addr_;
+  for (size_t i = 0; i < addresses_.size(); ++i) {
+    if (family == addresses_[i].family()) {
+      addr->SetIP(addresses_[i]);
+      return true;
+    }
+  }
+  return false;
 }
 
 void AsyncResolver::DoWork() {
@@ -76,9 +96,7 @@
 }
 
 void AsyncResolver::OnWorkDone() {
-  if (addresses_.size() > 0) {
-    addr_.SetIP(addresses_[0]);
-  }
+  SignalDone(this);
 }
 
 const char* inet_ntop(int af, const void *src, char* dst, socklen_t size) {