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

Unified Diff: webrtc/base/sslsocketfactory.cc

Issue 2541453002: Delete unused classes AutoDetectProxy and SslSocketFactory. (Closed)
Patch Set: Rebased. Created 3 years, 10 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/base/sslsocketfactory.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/base/sslsocketfactory.cc
diff --git a/webrtc/base/sslsocketfactory.cc b/webrtc/base/sslsocketfactory.cc
deleted file mode 100644
index 01d7d8145720e6da37d042276af849ae56b41f40..0000000000000000000000000000000000000000
--- a/webrtc/base/sslsocketfactory.cc
+++ /dev/null
@@ -1,197 +0,0 @@
-/*
- * Copyright 2007 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 <memory>
-
-#include "webrtc/base/autodetectproxy.h"
-#include "webrtc/base/checks.h"
-#include "webrtc/base/httpcommon.h"
-#include "webrtc/base/httpcommon-inl.h"
-#include "webrtc/base/socketadapters.h"
-#include "webrtc/base/ssladapter.h"
-#include "webrtc/base/sslsocketfactory.h"
-
-namespace rtc {
-
-///////////////////////////////////////////////////////////////////////////////
-// ProxySocketAdapter
-// TODO: Consider combining AutoDetectProxy and ProxySocketAdapter. I think
-// the socket adapter is the more appropriate idiom for automatic proxy
-// detection. We may or may not want to combine proxydetect.* as well.
-///////////////////////////////////////////////////////////////////////////////
-
-class ProxySocketAdapter : public AsyncSocketAdapter {
- public:
- ProxySocketAdapter(SslSocketFactory* factory, int family, int type)
- : AsyncSocketAdapter(NULL), factory_(factory), family_(family),
- type_(type), detect_(NULL) {
- }
- ~ProxySocketAdapter() override {
- Close();
- }
-
- int Connect(const SocketAddress& addr) override {
- RTC_DCHECK(NULL == detect_);
- RTC_DCHECK(NULL == socket_);
- remote_ = addr;
- if (remote_.IsAnyIP() && remote_.hostname().empty()) {
- LOG_F(LS_ERROR) << "Empty address";
- return SOCKET_ERROR;
- }
- Url<char> url("/", remote_.HostAsURIString(), remote_.port());
- detect_ = new AutoDetectProxy(factory_->agent_);
- detect_->set_server_url(url.url());
- detect_->SignalWorkDone.connect(this,
- &ProxySocketAdapter::OnProxyDetectionComplete);
- detect_->Start();
- return SOCKET_ERROR;
- }
- int GetError() const override {
- if (socket_) {
- return socket_->GetError();
- }
- return detect_ ? EWOULDBLOCK : EADDRNOTAVAIL;
- }
- int Close() override {
- if (socket_) {
- return socket_->Close();
- }
- if (detect_) {
- detect_->Destroy(false);
- detect_ = NULL;
- }
- return 0;
- }
- ConnState GetState() const override {
- if (socket_) {
- return socket_->GetState();
- }
- return detect_ ? CS_CONNECTING : CS_CLOSED;
- }
-
-private:
- // AutoDetectProxy Slots
- void OnProxyDetectionComplete(SignalThread* thread) {
- RTC_DCHECK(detect_ == thread);
- Attach(factory_->CreateProxySocket(detect_->proxy(), family_, type_));
- detect_->Release();
- detect_ = NULL;
- if (0 == AsyncSocketAdapter::Connect(remote_)) {
- SignalConnectEvent(this);
- } else if (!IsBlockingError(socket_->GetError())) {
- SignalCloseEvent(this, socket_->GetError());
- }
- }
-
- SslSocketFactory* factory_;
- int family_;
- int type_;
- SocketAddress remote_;
- AutoDetectProxy* detect_;
-};
-
-///////////////////////////////////////////////////////////////////////////////
-// SslSocketFactory
-///////////////////////////////////////////////////////////////////////////////
-
-SslSocketFactory::SslSocketFactory(SocketFactory* factory,
- const std::string& user_agent)
- : factory_(factory),
- agent_(user_agent),
- autodetect_proxy_(true),
- force_connect_(false),
- logging_level_(LS_VERBOSE),
- binary_mode_(false),
- ignore_bad_cert_(false) {
-}
-
-SslSocketFactory::~SslSocketFactory() = default;
-
-Socket* SslSocketFactory::CreateSocket(int type) {
- return CreateSocket(AF_INET, type);
-}
-
-Socket* SslSocketFactory::CreateSocket(int family, int type) {
- return factory_->CreateSocket(family, type);
-}
-
-AsyncSocket* SslSocketFactory::CreateAsyncSocket(int type) {
- return CreateAsyncSocket(AF_INET, type);
-}
-
-AsyncSocket* SslSocketFactory::CreateAsyncSocket(int family, int type) {
- if (autodetect_proxy_) {
- return new ProxySocketAdapter(this, family, type);
- } else {
- return CreateProxySocket(proxy_, family, type);
- }
-}
-
-
-AsyncSocket* SslSocketFactory::CreateProxySocket(const ProxyInfo& proxy,
- int family,
- int type) {
- AsyncSocket* socket = factory_->CreateAsyncSocket(family, type);
- if (!socket)
- return NULL;
-
- // Binary logging happens at the lowest level
- if (!logging_label_.empty() && binary_mode_) {
- socket = new LoggingSocketAdapter(socket, logging_level_,
- logging_label_.c_str(), binary_mode_);
- }
-
- if (proxy.type) {
- AsyncSocket* proxy_socket = 0;
- if (proxy_.type == PROXY_SOCKS5) {
- proxy_socket = new AsyncSocksProxySocket(socket, proxy.address,
- proxy.username, proxy.password);
- } else {
- // Note: we are trying unknown proxies as HTTPS currently
- AsyncHttpsProxySocket* http_proxy =
- new AsyncHttpsProxySocket(socket, agent_, proxy.address,
- proxy.username, proxy.password);
- http_proxy->SetForceConnect(force_connect_ || !hostname_.empty());
- proxy_socket = http_proxy;
- }
- if (!proxy_socket) {
- delete socket;
- return NULL;
- }
- socket = proxy_socket; // for our purposes the proxy is now the socket
- }
-
- if (!hostname_.empty()) {
- std::unique_ptr<SSLAdapter> ssl_adapter(SSLAdapter::Create(socket));
- if (!ssl_adapter) {
- LOG_F(LS_ERROR) << "SSL unavailable";
- delete socket;
- return NULL;
- }
-
- ssl_adapter->set_ignore_bad_cert(ignore_bad_cert_);
- if (ssl_adapter->StartSSL(hostname_.c_str(), true) != 0) {
- LOG_F(LS_ERROR) << "SSL failed to start.";
- return NULL;
- }
- socket = ssl_adapter.release();
- }
-
- // Regular logging occurs at the highest level
- if (!logging_label_.empty() && !binary_mode_) {
- socket = new LoggingSocketAdapter(socket, logging_level_,
- logging_label_.c_str(), binary_mode_);
- }
- return socket;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-
-} // namespace rtc
« no previous file with comments | « webrtc/base/sslsocketfactory.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698