Delete unused files httprequest.h and httprequest.cc.
This is a partial reland of cl https://codereview.webrtc.org/2366333002, without deleting httpclient.h. BUG=webrtc:6424 Review-Url: https://codereview.webrtc.org/2506983002 Cr-Commit-Position: refs/heads/master@{#15130}
This commit is contained in:
parent
ffbbcac4c6
commit
d51c4dccd7
@ -418,8 +418,6 @@ rtc_static_library("rtc_base") {
|
||||
"httpcommon-inl.h",
|
||||
"httpcommon.cc",
|
||||
"httpcommon.h",
|
||||
"httprequest.cc",
|
||||
"httprequest.h",
|
||||
"ipaddress.cc",
|
||||
"ipaddress.h",
|
||||
"linked_ptr.h",
|
||||
|
||||
@ -1,114 +0,0 @@
|
||||
/*
|
||||
* Copyright 2006 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/base/httprequest.h"
|
||||
|
||||
#include "webrtc/base/common.h"
|
||||
#include "webrtc/base/firewallsocketserver.h"
|
||||
#include "webrtc/base/httpclient.h"
|
||||
#include "webrtc/base/logging.h"
|
||||
#include "webrtc/base/physicalsocketserver.h"
|
||||
#include "webrtc/base/socketadapters.h"
|
||||
#include "webrtc/base/socketpool.h"
|
||||
#include "webrtc/base/ssladapter.h"
|
||||
|
||||
using namespace rtc;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// HttpMonitor
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
HttpMonitor::HttpMonitor(SocketServer *ss) {
|
||||
ASSERT(Thread::Current() != NULL);
|
||||
ss_ = ss;
|
||||
reset();
|
||||
}
|
||||
|
||||
void HttpMonitor::Connect(HttpClient *http) {
|
||||
http->SignalHttpClientComplete.connect(this,
|
||||
&HttpMonitor::OnHttpClientComplete);
|
||||
}
|
||||
|
||||
void HttpMonitor::OnHttpClientComplete(HttpClient * http, HttpErrorType error) {
|
||||
complete_ = true;
|
||||
error_ = error;
|
||||
ss_->WakeUp();
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// HttpRequest
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
const int kDefaultHTTPTimeout = 30 * 1000; // 30 sec
|
||||
|
||||
HttpRequest::HttpRequest(const std::string& user_agent)
|
||||
: firewall_(0),
|
||||
port_(80),
|
||||
secure_(false),
|
||||
timeout_(kDefaultHTTPTimeout),
|
||||
client_(user_agent.c_str(), NULL),
|
||||
error_(HE_NONE) {}
|
||||
|
||||
HttpRequest::~HttpRequest() = default;
|
||||
|
||||
void HttpRequest::Send() {
|
||||
// TODO: Rewrite this to use the thread's native socket server, and a more
|
||||
// natural flow?
|
||||
|
||||
PhysicalSocketServer physical;
|
||||
SocketServer * ss = &physical;
|
||||
if (firewall_) {
|
||||
ss = new FirewallSocketServer(ss, firewall_);
|
||||
}
|
||||
|
||||
SslSocketFactory factory(ss, client_.agent());
|
||||
factory.SetProxy(proxy_);
|
||||
if (secure_)
|
||||
factory.UseSSL(host_.c_str());
|
||||
|
||||
//factory.SetLogging("HttpRequest");
|
||||
|
||||
ReuseSocketPool pool(&factory);
|
||||
client_.set_pool(&pool);
|
||||
|
||||
bool transparent_proxy = (port_ == 80) && ((proxy_.type == PROXY_HTTPS) ||
|
||||
(proxy_.type == PROXY_UNKNOWN));
|
||||
|
||||
if (transparent_proxy) {
|
||||
client_.set_proxy(proxy_);
|
||||
}
|
||||
client_.set_redirect_action(HttpClient::REDIRECT_ALWAYS);
|
||||
|
||||
SocketAddress server(host_, port_);
|
||||
client_.set_server(server);
|
||||
|
||||
LOG(LS_INFO) << "HttpRequest start: " << host_ + client_.request().path;
|
||||
|
||||
HttpMonitor monitor(ss);
|
||||
monitor.Connect(&client_);
|
||||
client_.start();
|
||||
ss->Wait(timeout_, true);
|
||||
if (!monitor.done()) {
|
||||
LOG(LS_INFO) << "HttpRequest request timed out";
|
||||
client_.reset();
|
||||
return;
|
||||
}
|
||||
|
||||
set_error(monitor.error());
|
||||
if (error_) {
|
||||
LOG(LS_INFO) << "HttpRequest request error: " << error_;
|
||||
return;
|
||||
}
|
||||
|
||||
std::string value;
|
||||
if (client_.response().hasHeader(HH_LOCATION, &value)) {
|
||||
response_redirect_ = value.c_str();
|
||||
}
|
||||
}
|
||||
@ -1,116 +0,0 @@
|
||||
/*
|
||||
* Copyright 2006 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.
|
||||
*/
|
||||
|
||||
#ifndef _HTTPREQUEST_H_
|
||||
#define _HTTPREQUEST_H_
|
||||
|
||||
#include "webrtc/base/httpclient.h"
|
||||
#include "webrtc/base/logging.h"
|
||||
#include "webrtc/base/proxyinfo.h"
|
||||
#include "webrtc/base/socketserver.h"
|
||||
#include "webrtc/base/thread.h"
|
||||
#include "webrtc/base/sslsocketfactory.h" // Deprecated include
|
||||
|
||||
namespace rtc {
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// HttpRequest
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
class FirewallManager;
|
||||
class MemoryStream;
|
||||
|
||||
class HttpRequest {
|
||||
public:
|
||||
HttpRequest(const std::string &user_agent);
|
||||
~HttpRequest();
|
||||
|
||||
void Send();
|
||||
|
||||
void set_proxy(const ProxyInfo& proxy) {
|
||||
proxy_ = proxy;
|
||||
}
|
||||
void set_firewall(FirewallManager * firewall) {
|
||||
firewall_ = firewall;
|
||||
}
|
||||
|
||||
// The DNS name of the host to connect to.
|
||||
const std::string& host() { return host_; }
|
||||
void set_host(const std::string& host) { host_ = host; }
|
||||
|
||||
// The port to connect to on the target host.
|
||||
int port() { return port_; }
|
||||
void set_port(int port) { port_ = port; }
|
||||
|
||||
// Whether the request should use SSL.
|
||||
bool secure() { return secure_; }
|
||||
void set_secure(bool secure) { secure_ = secure; }
|
||||
|
||||
// Returns the redirect when redirection occurs
|
||||
const std::string& response_redirect() { return response_redirect_; }
|
||||
|
||||
// Time to wait on the download, in ms. Default is 5000 (5s)
|
||||
int timeout() { return timeout_; }
|
||||
void set_timeout(int timeout) { timeout_ = timeout; }
|
||||
|
||||
// Fail redirects to allow analysis of redirect urls, etc.
|
||||
bool fail_redirect() const { return fail_redirect_; }
|
||||
void set_fail_redirect(bool fail_redirect) { fail_redirect_ = fail_redirect; }
|
||||
|
||||
HttpRequestData& request() { return client_.request(); }
|
||||
HttpResponseData& response() { return client_.response(); }
|
||||
HttpErrorType error() { return error_; }
|
||||
|
||||
protected:
|
||||
void set_error(HttpErrorType error) { error_ = error; }
|
||||
|
||||
private:
|
||||
ProxyInfo proxy_;
|
||||
FirewallManager * firewall_;
|
||||
std::string host_;
|
||||
int port_;
|
||||
bool secure_;
|
||||
int timeout_;
|
||||
bool fail_redirect_;
|
||||
HttpClient client_;
|
||||
HttpErrorType error_;
|
||||
std::string response_redirect_;
|
||||
};
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// HttpMonitor
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
class HttpMonitor : public sigslot::has_slots<> {
|
||||
public:
|
||||
HttpMonitor(SocketServer *ss);
|
||||
|
||||
void reset() {
|
||||
complete_ = false;
|
||||
error_ = HE_DEFAULT;
|
||||
}
|
||||
|
||||
bool done() const { return complete_; }
|
||||
HttpErrorType error() const { return error_; }
|
||||
|
||||
void Connect(HttpClient* http);
|
||||
void OnHttpClientComplete(HttpClient * http, HttpErrorType error);
|
||||
|
||||
private:
|
||||
bool complete_;
|
||||
HttpErrorType error_;
|
||||
SocketServer *ss_;
|
||||
};
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
} // namespace rtc_
|
||||
|
||||
#endif // _HTTPREQUEST_H_
|
||||
Loading…
x
Reference in New Issue
Block a user