Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(333)

Unified Diff: webrtc/p2p/client/httpportallocator.cc

Issue 2392913002: Delete httpportallocator.h. (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/p2p/client/httpportallocator.h ('k') | webrtc/p2p/p2p.gyp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/p2p/client/httpportallocator.cc
diff --git a/webrtc/p2p/client/httpportallocator.cc b/webrtc/p2p/client/httpportallocator.cc
deleted file mode 100644
index 1342cf70e992edd60ee0618fc3fe2b4aa8fb9402..0000000000000000000000000000000000000000
--- a/webrtc/p2p/client/httpportallocator.cc
+++ /dev/null
@@ -1,222 +0,0 @@
-/*
- * Copyright 2004 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 "webrtc/p2p/client/httpportallocator.h"
-
-#include <algorithm>
-#include <map>
-
-#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"
-#include "webrtc/base/stringencode.h"
-
-namespace {
-
-// Helper routine to remove whitespace from the ends of a string.
-void Trim(std::string& str) {
- size_t first = str.find_first_not_of(" \t\r\n");
- if (first == std::string::npos) {
- str.clear();
- return;
- }
-
- ASSERT(str.find_last_not_of(" \t\r\n") != std::string::npos);
-}
-
-// Parses the lines in the result of the HTTP request that are of the form
-// 'a=b' and returns them in a map.
-typedef std::map<std::string, std::string> StringMap;
-void ParseMap(const std::string& string, StringMap& map) {
- size_t start_of_line = 0;
- size_t end_of_line = 0;
-
- for (;;) { // for each line
- start_of_line = string.find_first_not_of("\r\n", end_of_line);
- if (start_of_line == std::string::npos)
- break;
-
- end_of_line = string.find_first_of("\r\n", start_of_line);
- if (end_of_line == std::string::npos) {
- end_of_line = string.length();
- }
-
- size_t equals = string.find('=', start_of_line);
- if ((equals >= end_of_line) || (equals == std::string::npos))
- continue;
-
- std::string key(string, start_of_line, equals - start_of_line);
- std::string value(string, equals + 1, end_of_line - equals - 1);
-
- Trim(key);
- Trim(value);
-
- if ((key.size() > 0) && (value.size() > 0))
- map[key] = value;
- }
-}
-
-} // namespace
-
-namespace cricket {
-
-// HttpPortAllocatorBase
-
-const int HttpPortAllocatorBase::kNumRetries = 5;
-
-const char HttpPortAllocatorBase::kCreateSessionURL[] = "/create_session";
-
-HttpPortAllocatorBase::HttpPortAllocatorBase(
- rtc::NetworkManager* network_manager,
- rtc::PacketSocketFactory* socket_factory,
- const std::string &user_agent)
- : BasicPortAllocator(network_manager, socket_factory), agent_(user_agent) {
- relay_hosts_.push_back("relay.google.com");
- stun_hosts_.push_back(
- rtc::SocketAddress("stun.l.google.com", 19302));
-}
-
-HttpPortAllocatorBase::HttpPortAllocatorBase(
- rtc::NetworkManager* network_manager,
- const std::string &user_agent)
- : BasicPortAllocator(network_manager), agent_(user_agent) {
- relay_hosts_.push_back("relay.google.com");
- stun_hosts_.push_back(
- rtc::SocketAddress("stun.l.google.com", 19302));
-}
-
-HttpPortAllocatorBase::~HttpPortAllocatorBase() {
-}
-
-// HttpPortAllocatorSessionBase
-
-HttpPortAllocatorSessionBase::HttpPortAllocatorSessionBase(
- HttpPortAllocatorBase* 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_token,
- const std::string& user_agent)
- : BasicPortAllocatorSession(allocator, content_name, component,
- ice_ufrag, ice_pwd),
- relay_hosts_(relay_hosts), stun_hosts_(stun_hosts),
- relay_token_(relay_token), agent_(user_agent), attempts_(0) {
-}
-
-HttpPortAllocatorSessionBase::~HttpPortAllocatorSessionBase() {}
-
-void HttpPortAllocatorSessionBase::GetPortConfigurations() {
- // Creating relay sessions can take time and is done asynchronously.
- // Creating stun sessions could also take time and could be done aysnc also,
- // but for now is done here and added to the initial config. Note any later
- // configs will have unresolved stun ips and will be discarded by the
- // AllocationSequence.
- ServerAddresses hosts;
- for (std::vector<rtc::SocketAddress>::iterator it = stun_hosts_.begin();
- it != stun_hosts_.end(); ++it) {
- hosts.insert(*it);
- }
-
- PortConfiguration* config = new PortConfiguration(hosts,
- username(),
- password());
- ConfigReady(config);
- TryCreateRelaySession();
-}
-
-void HttpPortAllocatorSessionBase::TryCreateRelaySession() {
- if (allocator()->flags() & PORTALLOCATOR_DISABLE_RELAY) {
- LOG(LS_VERBOSE) << "HttpPortAllocator: Relay ports disabled, skipping.";
- return;
- }
-
- if (attempts_ == HttpPortAllocatorBase::kNumRetries) {
- LOG(LS_ERROR) << "HttpPortAllocator: maximum number of requests reached; "
- << "giving up on relay.";
- return;
- }
-
- if (relay_hosts_.size() == 0) {
- LOG(LS_ERROR) << "HttpPortAllocator: no relay hosts configured.";
- return;
- }
-
- // Choose the next host to try.
- std::string host = relay_hosts_[attempts_ % relay_hosts_.size()];
- attempts_++;
- LOG(LS_INFO) << "HTTPPortAllocator: sending to relay host " << host;
- if (relay_token_.empty()) {
- LOG(LS_WARNING) << "No relay auth token found.";
- }
-
- SendSessionRequest(host, rtc::HTTP_SECURE_PORT);
-}
-
-std::string HttpPortAllocatorSessionBase::GetSessionRequestUrl() {
- std::string url = std::string(HttpPortAllocatorBase::kCreateSessionURL);
- ASSERT(!username().empty());
- ASSERT(!password().empty());
- url = url + "?username=" + rtc::s_url_encode(username()) +
- "&password=" + rtc::s_url_encode(password());
- return url;
-}
-
-void HttpPortAllocatorSessionBase::ReceiveSessionResponse(
- const std::string& response) {
-
- StringMap map;
- ParseMap(response, map);
-
- if (!username().empty() && map["username"] != username()) {
- LOG(LS_WARNING) << "Received unexpected username value from relay server.";
- }
- if (!password().empty() && map["password"] != password()) {
- LOG(LS_WARNING) << "Received unexpected password value from relay server.";
- }
-
- std::string relay_ip = map["relay.ip"];
- std::string relay_udp_port = map["relay.udp_port"];
- std::string relay_tcp_port = map["relay.tcp_port"];
- std::string relay_ssltcp_port = map["relay.ssltcp_port"];
-
- ServerAddresses hosts;
- for (std::vector<rtc::SocketAddress>::iterator it = stun_hosts_.begin();
- it != stun_hosts_.end(); ++it) {
- hosts.insert(*it);
- }
-
- PortConfiguration* config = new PortConfiguration(hosts,
- map["username"],
- map["password"]);
-
- RelayServerConfig relay_config(RELAY_GTURN);
- if (!relay_udp_port.empty()) {
- rtc::SocketAddress address(relay_ip, atoi(relay_udp_port.c_str()));
- relay_config.ports.push_back(ProtocolAddress(address, PROTO_UDP));
- }
- if (!relay_tcp_port.empty()) {
- rtc::SocketAddress address(relay_ip, atoi(relay_tcp_port.c_str()));
- relay_config.ports.push_back(ProtocolAddress(address, PROTO_TCP));
- }
- if (!relay_ssltcp_port.empty()) {
- rtc::SocketAddress address(relay_ip, atoi(relay_ssltcp_port.c_str()));
- relay_config.ports.push_back(ProtocolAddress(address, PROTO_SSLTCP));
- }
- config->AddRelay(relay_config);
- ConfigReady(config);
-}
-
-} // namespace cricket
« no previous file with comments | « webrtc/p2p/client/httpportallocator.h ('k') | webrtc/p2p/p2p.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698