Repo created
This commit is contained in:
parent
81b91f4139
commit
f8c34fa5ee
22732 changed files with 4815320 additions and 2 deletions
48
TMessagesProj/jni/voip/webrtc/p2p/base/test_stun_server.cc
Normal file
48
TMessagesProj/jni/voip/webrtc/p2p/base/test_stun_server.cc
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
/*
|
||||
* Copyright 2017 The WebRTC Project Authors. All rights reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
#include "p2p/base/test_stun_server.h"
|
||||
|
||||
#include <memory>
|
||||
|
||||
#include "rtc_base/socket.h"
|
||||
#include "rtc_base/socket_server.h"
|
||||
|
||||
namespace cricket {
|
||||
|
||||
std::unique_ptr<TestStunServer, std::function<void(TestStunServer*)>>
|
||||
TestStunServer::Create(rtc::SocketServer* ss,
|
||||
const rtc::SocketAddress& addr,
|
||||
rtc::Thread& network_thread) {
|
||||
rtc::Socket* socket = ss->CreateSocket(addr.family(), SOCK_DGRAM);
|
||||
rtc::AsyncUDPSocket* udp_socket = rtc::AsyncUDPSocket::Create(socket, addr);
|
||||
TestStunServer* server = nullptr;
|
||||
network_thread.BlockingCall(
|
||||
[&]() { server = new TestStunServer(udp_socket, network_thread); });
|
||||
std::unique_ptr<TestStunServer, std::function<void(TestStunServer*)>> result(
|
||||
server, [&](TestStunServer* server) {
|
||||
network_thread.BlockingCall([server]() { delete server; });
|
||||
});
|
||||
return result;
|
||||
}
|
||||
|
||||
void TestStunServer::OnBindingRequest(StunMessage* msg,
|
||||
const rtc::SocketAddress& remote_addr) {
|
||||
RTC_DCHECK_RUN_ON(&network_thread_);
|
||||
if (fake_stun_addr_.IsNil()) {
|
||||
StunServer::OnBindingRequest(msg, remote_addr);
|
||||
} else {
|
||||
StunMessage response(STUN_BINDING_RESPONSE, msg->transaction_id());
|
||||
GetStunBindResponse(msg, fake_stun_addr_, &response);
|
||||
SendResponse(response, remote_addr);
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace cricket
|
||||
Loading…
Add table
Add a link
Reference in a new issue