X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fthird_party%2Flibjingle%2Fsource%2Ftalk%2Fp2p%2Fbase%2Fteststunserver.h;h=eef15d798dfb3497d02fa2139942a326a4c05103;hb=1afa4dd80ef85af7c90efaea6959db1d92330844;hp=6f85009ab65da7483ab1b1a1d9f92bce712857be;hpb=90762837333c13ccf56f2ad88e4481fc71e8d281;p=platform%2Fframework%2Fweb%2Fcrosswalk.git diff --git a/src/third_party/libjingle/source/talk/p2p/base/teststunserver.h b/src/third_party/libjingle/source/talk/p2p/base/teststunserver.h index 6f85009..eef15d7 100644 --- a/src/third_party/libjingle/source/talk/p2p/base/teststunserver.h +++ b/src/third_party/libjingle/source/talk/p2p/base/teststunserver.h @@ -25,31 +25,51 @@ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef TALK_P2P_BASE_TESTSTUNSERVER_H_ -#define TALK_P2P_BASE_TESTSTUNSERVER_H_ +#ifndef WEBRTC_P2P_BASE_TESTSTUNSERVER_H_ +#define WEBRTC_P2P_BASE_TESTSTUNSERVER_H_ -#include "talk/p2p/base/stunserver.h" +#include "webrtc/p2p/base/stunserver.h" #include "webrtc/base/socketaddress.h" #include "webrtc/base/thread.h" namespace cricket { // A test STUN server. Useful for unit tests. -class TestStunServer { +class TestStunServer : StunServer { public: - TestStunServer(rtc::Thread* thread, - const rtc::SocketAddress& addr) - : socket_(thread->socketserver()->CreateAsyncSocket(addr.family(), - SOCK_DGRAM)), - udp_socket_(rtc::AsyncUDPSocket::Create(socket_, addr)), - server_(udp_socket_) { + static TestStunServer* Create(rtc::Thread* thread, + const rtc::SocketAddress& addr) { + rtc::AsyncSocket* socket = + thread->socketserver()->CreateAsyncSocket(addr.family(), SOCK_DGRAM); + rtc::AsyncUDPSocket* udp_socket = + rtc::AsyncUDPSocket::Create(socket, addr); + + return new TestStunServer(udp_socket); + } + + // Set a fake STUN address to return to the client. + void set_fake_stun_addr(const rtc::SocketAddress& addr) { + fake_stun_addr_ = addr; + } + + private: + explicit TestStunServer(rtc::AsyncUDPSocket* socket) : StunServer(socket) {} + + void OnBindingRequest(StunMessage* msg, + const rtc::SocketAddress& remote_addr) OVERRIDE { + if (fake_stun_addr_.IsNil()) { + StunServer::OnBindingRequest(msg, remote_addr); + } else { + StunMessage response; + GetStunBindReqponse(msg, fake_stun_addr_, &response); + SendResponse(response, remote_addr); + } } + private: - rtc::AsyncSocket* socket_; - rtc::AsyncUDPSocket* udp_socket_; - cricket::StunServer server_; + rtc::SocketAddress fake_stun_addr_; }; } // namespace cricket -#endif // TALK_P2P_BASE_TESTSTUNSERVER_H_ +#endif // WEBRTC_P2P_BASE_TESTSTUNSERVER_H_