diff options
author | lambroslambrou@chromium.org <lambroslambrou@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-15 19:27:28 +0000 |
---|---|---|
committer | lambroslambrou@chromium.org <lambroslambrou@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-15 19:27:28 +0000 |
commit | 0ecb2856d76fc0ba35d3bc963906209f7c84d3d5 (patch) | |
tree | c2eb34ad26bd7de16e771994060f78ae03276e6f /remoting/jingle_glue | |
parent | ed8d9fed1c2debb67799d058ee87f41a73872793 (diff) | |
download | chromium_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.cc | 27 |
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 |