X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fthird_party%2Flibjingle%2Fsource%2Ftalk%2Fp2p%2Fbase%2Ftestturnserver.h;h=6c30afe0690d0f41fe2c23bc29ebd254bcd3a8ed;hb=3545e9f2671f595d2a2f3ee75ca0393b01e35ef6;hp=e2c0ccb4e466c72c81e5b897002a4607f816f349;hpb=7d210d4c7e9ba36e635eabc5b5780495f8a63292;p=platform%2Fframework%2Fweb%2Fcrosswalk.git diff --git a/src/third_party/libjingle/source/talk/p2p/base/testturnserver.h b/src/third_party/libjingle/source/talk/p2p/base/testturnserver.h index e2c0ccb..6c30afe 100644 --- a/src/third_party/libjingle/source/talk/p2p/base/testturnserver.h +++ b/src/third_party/libjingle/source/talk/p2p/base/testturnserver.h @@ -29,6 +29,7 @@ #define TALK_P2P_BASE_TESTTURNSERVER_H_ #include +#include #include "talk/p2p/base/basicpacketsocketfactory.h" #include "talk/p2p/base/stun.h" @@ -41,6 +42,27 @@ namespace cricket { static const char kTestRealm[] = "example.org"; static const char kTestSoftware[] = "TestTurnServer"; +class TestTurnRedirector : public TurnRedirectInterface { + public: + explicit TestTurnRedirector(const std::vector& addresses) + : alternate_server_addresses_(addresses), + iter_(alternate_server_addresses_.begin()) { + } + + virtual bool ShouldRedirect(const rtc::SocketAddress&, + rtc::SocketAddress* out) { + if (!out || iter_ == alternate_server_addresses_.end()) { + return false; + } + *out = *iter_++; + return true; + } + + private: + const std::vector& alternate_server_addresses_; + std::vector::const_iterator iter_; +}; + class TestTurnServer : public TurnAuthInterface { public: TestTurnServer(rtc::Thread* thread, @@ -61,6 +83,10 @@ class TestTurnServer : public TurnAuthInterface { TurnServer* server() { return &server_; } + void set_redirect_hook(TurnRedirectInterface* redirect_hook) { + server_.set_redirect_hook(redirect_hook); + } + void AddInternalSocket(const rtc::SocketAddress& int_addr, ProtocolType proto) { rtc::Thread* thread = rtc::Thread::Current();