summaryrefslogtreecommitdiffstats
path: root/remoting/jingle_glue
diff options
context:
space:
mode:
authorlambroslambrou@chromium.org <lambroslambrou@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-11-15 19:27:28 +0000
committerlambroslambrou@chromium.org <lambroslambrou@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-11-15 19:27:28 +0000
commit0ecb2856d76fc0ba35d3bc963906209f7c84d3d5 (patch)
treec2eb34ad26bd7de16e771994060f78ae03276e6f /remoting/jingle_glue
parented8d9fed1c2debb67799d058ee87f41a73872793 (diff)
downloadchromium_src-0ecb2856d76fc0ba35d3bc963906209f7c84d3d5.zip
chromium_src-0ecb2856d76fc0ba35d3bc963906209f7c84d3d5.tar.gz
chromium_src-0ecb2856d76fc0ba35d3bc963906209f7c84d3d5.tar.bz2
Return dummy resolver from ChromiumPacketSocketFactory::CreateAsyncResolver()
This fixes a crash in Chromoting Android client, from the recent libjingle roll. R=sergeyu@chromium.org Review URL: https://codereview.chromium.org/73363002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@235400 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'remoting/jingle_glue')
-rw-r--r--remoting/jingle_glue/chromium_socket_factory.cc27
1 files changed, 25 insertions, 2 deletions
diff --git a/remoting/jingle_glue/chromium_socket_factory.cc b/remoting/jingle_glue/chromium_socket_factory.cc
index 32e05af..cc599be 100644
--- a/remoting/jingle_glue/chromium_socket_factory.cc
+++ b/remoting/jingle_glue/chromium_socket_factory.cc
@@ -13,6 +13,7 @@
#include "net/base/net_errors.h"
#include "net/udp/udp_server_socket.h"
#include "third_party/libjingle/source/talk/base/asyncpacketsocket.h"
+#include "third_party/libjingle/source/talk/base/asyncresolverinterface.h"
namespace remoting {
@@ -34,6 +35,29 @@ bool IsTransientError(int error) {
error == net::ERR_ADDRESS_INVALID;
}
+// TODO(lambroslambrou): Move STUN/relay address resolution from
+// PepperPortAllocator to this class.
+class DummyAsyncResolver : public talk_base::AsyncResolverInterface {
+ public:
+ DummyAsyncResolver() {}
+ virtual ~DummyAsyncResolver() {}
+ virtual void Start(const talk_base::SocketAddress& addr) OVERRIDE {}
+ virtual bool GetResolvedAddress(
+ int family,
+ talk_base::SocketAddress* addr) const OVERRIDE {
+ return false;
+ }
+ virtual int GetError() const OVERRIDE {
+ return 0;
+ }
+ virtual void Destroy(bool wait) OVERRIDE {
+ delete this;
+ }
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(DummyAsyncResolver);
+};
+
class UdpPacketSocket : public talk_base::AsyncPacketSocket {
public:
UdpPacketSocket();
@@ -373,8 +397,7 @@ ChromiumPacketSocketFactory::CreateClientTcpSocket(
talk_base::AsyncResolverInterface*
ChromiumPacketSocketFactory::CreateAsyncResolver() {
- NOTREACHED();
- return NULL;
+ return new DummyAsyncResolver();
}
} // namespace remoting