| Index: webrtc/p2p/client/httpportallocator.cc
|
| diff --git a/webrtc/p2p/client/httpportallocator.cc b/webrtc/p2p/client/httpportallocator.cc
|
| index b36de5671dea662a27f0dd0ee01e75ba17054a37..a2d5038f906048115ca6a1d19217f0ae8bad4457 100644
|
| --- a/webrtc/p2p/client/httpportallocator.cc
|
| +++ b/webrtc/p2p/client/httpportallocator.cc
|
| @@ -13,10 +13,10 @@
|
| #include <algorithm>
|
| #include <map>
|
|
|
| -#include "webrtc/base/asynchttprequest.h"
|
| #include "webrtc/base/basicdefs.h"
|
| #include "webrtc/base/common.h"
|
| #include "webrtc/base/helpers.h"
|
| +#include "webrtc/base/httpcommon.h"
|
| #include "webrtc/base/logging.h"
|
| #include "webrtc/base/nethelpers.h"
|
| #include "webrtc/base/signalthread.h"
|
| @@ -144,7 +144,7 @@ void HttpPortAllocatorSessionBase::TryCreateRelaySession() {
|
| return;
|
| }
|
|
|
| - if (attempts_ == HttpPortAllocator::kNumRetries) {
|
| + if (attempts_ == HttpPortAllocatorBase::kNumRetries) {
|
| LOG(LS_ERROR) << "HttpPortAllocator: maximum number of requests reached; "
|
| << "giving up on relay.";
|
| return;
|
| @@ -167,7 +167,7 @@ void HttpPortAllocatorSessionBase::TryCreateRelaySession() {
|
| }
|
|
|
| std::string HttpPortAllocatorSessionBase::GetSessionRequestUrl() {
|
| - std::string url = std::string(HttpPortAllocator::kCreateSessionURL);
|
| + std::string url = std::string(HttpPortAllocatorBase::kCreateSessionURL);
|
| ASSERT(!username().empty());
|
| ASSERT(!password().empty());
|
| url = url + "?username=" + rtc::s_url_encode(username()) +
|
| @@ -220,105 +220,4 @@ void HttpPortAllocatorSessionBase::ReceiveSessionResponse(
|
| ConfigReady(config);
|
| }
|
|
|
| -// HttpPortAllocator
|
| -
|
| -HttpPortAllocator::HttpPortAllocator(
|
| - rtc::NetworkManager* network_manager,
|
| - rtc::PacketSocketFactory* socket_factory,
|
| - const std::string &user_agent)
|
| - : HttpPortAllocatorBase(network_manager, socket_factory, user_agent) {
|
| -}
|
| -
|
| -HttpPortAllocator::HttpPortAllocator(
|
| - rtc::NetworkManager* network_manager,
|
| - const std::string &user_agent)
|
| - : HttpPortAllocatorBase(network_manager, user_agent) {
|
| -}
|
| -HttpPortAllocator::~HttpPortAllocator() {}
|
| -
|
| -PortAllocatorSession* HttpPortAllocator::CreateSessionInternal(
|
| - const std::string& content_name,
|
| - int component,
|
| - const std::string& ice_ufrag, const std::string& ice_pwd) {
|
| - return new HttpPortAllocatorSession(this, content_name, component,
|
| - ice_ufrag, ice_pwd, stun_hosts(),
|
| - relay_hosts(), relay_token(),
|
| - user_agent());
|
| -}
|
| -
|
| -// HttpPortAllocatorSession
|
| -
|
| -HttpPortAllocatorSession::HttpPortAllocatorSession(
|
| - HttpPortAllocator* allocator,
|
| - const std::string& content_name,
|
| - int component,
|
| - const std::string& ice_ufrag,
|
| - const std::string& ice_pwd,
|
| - const std::vector<rtc::SocketAddress>& stun_hosts,
|
| - const std::vector<std::string>& relay_hosts,
|
| - const std::string& relay,
|
| - const std::string& agent)
|
| - : HttpPortAllocatorSessionBase(allocator, content_name, component,
|
| - ice_ufrag, ice_pwd, stun_hosts,
|
| - relay_hosts, relay, agent) {
|
| -}
|
| -
|
| -HttpPortAllocatorSession::~HttpPortAllocatorSession() {
|
| - for (std::list<rtc::AsyncHttpRequest*>::iterator it = requests_.begin();
|
| - it != requests_.end(); ++it) {
|
| - (*it)->Destroy(true);
|
| - }
|
| -}
|
| -
|
| -void HttpPortAllocatorSession::SendSessionRequest(const std::string& host,
|
| - int port) {
|
| - // Initiate an HTTP request to create a session through the chosen host.
|
| - rtc::AsyncHttpRequest* request =
|
| - new rtc::AsyncHttpRequest(user_agent());
|
| - request->SignalWorkDone.connect(this,
|
| - &HttpPortAllocatorSession::OnRequestDone);
|
| -
|
| - request->set_secure(port == rtc::HTTP_SECURE_PORT);
|
| - request->set_proxy(allocator()->proxy());
|
| - request->response().document.reset(new rtc::MemoryStream);
|
| - request->request().verb = rtc::HV_GET;
|
| - request->request().path = GetSessionRequestUrl();
|
| - request->request().addHeader("X-Talk-Google-Relay-Auth", relay_token(), true);
|
| - request->request().addHeader("X-Stream-Type", "video_rtp", true);
|
| - request->set_host(host);
|
| - request->set_port(port);
|
| - request->Start();
|
| - request->Release();
|
| -
|
| - requests_.push_back(request);
|
| -}
|
| -
|
| -void HttpPortAllocatorSession::OnRequestDone(rtc::SignalThread* data) {
|
| - rtc::AsyncHttpRequest* request =
|
| - static_cast<rtc::AsyncHttpRequest*>(data);
|
| -
|
| - // Remove the request from the list of active requests.
|
| - std::list<rtc::AsyncHttpRequest*>::iterator it =
|
| - std::find(requests_.begin(), requests_.end(), request);
|
| - if (it != requests_.end()) {
|
| - requests_.erase(it);
|
| - }
|
| -
|
| - if (request->response().scode != 200) {
|
| - LOG(LS_WARNING) << "HTTPPortAllocator: request "
|
| - << " received error " << request->response().scode;
|
| - TryCreateRelaySession();
|
| - return;
|
| - }
|
| - LOG(LS_INFO) << "HTTPPortAllocator: request succeeded";
|
| -
|
| - rtc::MemoryStream* stream =
|
| - static_cast<rtc::MemoryStream*>(request->response().document.get());
|
| - stream->Rewind();
|
| - size_t length;
|
| - stream->GetSize(&length);
|
| - std::string resp = std::string(stream->GetBuffer(), length);
|
| - ReceiveSessionResponse(resp);
|
| -}
|
| -
|
| } // namespace cricket
|
|
|