mirror of
https://github.com/rakshasa/rtorrent.git
synced 2026-10-17 22:56:18 +00:00
* Added 'network.http.dns_cache_timeout{,.set}' commands to allow for disabling the libcurl dns caching.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1261 e378c898-3ddf-0310-93e7-cc216c733640
This commit is contained in:
+12
-10
@@ -507,16 +507,18 @@ initialize_command_network() {
|
|||||||
CMD2_VAR_STRING ("protocol.choke_heuristics.down.leech", "download_leech");
|
CMD2_VAR_STRING ("protocol.choke_heuristics.down.leech", "download_leech");
|
||||||
CMD2_VAR_STRING ("protocol.choke_heuristics.down.seed", "download_leech");
|
CMD2_VAR_STRING ("protocol.choke_heuristics.down.seed", "download_leech");
|
||||||
|
|
||||||
CMD2_ANY ("network.http.capath", std::bind(&core::CurlStack::http_capath, httpStack));
|
CMD2_ANY ("network.http.capath", std::bind(&core::CurlStack::http_capath, httpStack));
|
||||||
CMD2_ANY_STRING_V("network.http.capath.set", std::bind(&core::CurlStack::set_http_capath, httpStack, std::placeholders::_2));
|
CMD2_ANY_STRING_V("network.http.capath.set", std::bind(&core::CurlStack::set_http_capath, httpStack, std::placeholders::_2));
|
||||||
CMD2_ANY ("network.http.cacert", std::bind(&core::CurlStack::http_cacert, httpStack));
|
CMD2_ANY ("network.http.cacert", std::bind(&core::CurlStack::http_cacert, httpStack));
|
||||||
CMD2_ANY_STRING_V("network.http.cacert.set", std::bind(&core::CurlStack::set_http_cacert, httpStack, std::placeholders::_2));
|
CMD2_ANY_STRING_V("network.http.cacert.set", std::bind(&core::CurlStack::set_http_cacert, httpStack, std::placeholders::_2));
|
||||||
CMD2_ANY ("network.http.proxy_address", std::bind(&core::CurlStack::http_proxy, httpStack));
|
CMD2_ANY ("network.http.proxy_address", std::bind(&core::CurlStack::http_proxy, httpStack));
|
||||||
CMD2_ANY_STRING_V("network.http.proxy_address.set", std::bind(&core::CurlStack::set_http_proxy, httpStack, std::placeholders::_2));
|
CMD2_ANY_STRING_V("network.http.proxy_address.set", std::bind(&core::CurlStack::set_http_proxy, httpStack, std::placeholders::_2));
|
||||||
CMD2_ANY ("network.http.max_open", std::bind(&core::CurlStack::max_active, httpStack));
|
CMD2_ANY ("network.http.max_open", std::bind(&core::CurlStack::max_active, httpStack));
|
||||||
CMD2_ANY_VALUE_V ("network.http.max_open.set", std::bind(&core::CurlStack::set_max_active, httpStack, std::placeholders::_2));
|
CMD2_ANY_VALUE_V ("network.http.max_open.set", std::bind(&core::CurlStack::set_max_active, httpStack, std::placeholders::_2));
|
||||||
CMD2_ANY ("network.http.ssl_verify_peer", std::bind(&core::CurlStack::ssl_verify_peer, httpStack));
|
CMD2_ANY ("network.http.ssl_verify_peer", std::bind(&core::CurlStack::ssl_verify_peer, httpStack));
|
||||||
CMD2_ANY_VALUE_V ("network.http.ssl_verify_peer.set", std::bind(&core::CurlStack::set_ssl_verify_peer, httpStack, std::placeholders::_2));
|
CMD2_ANY_VALUE_V ("network.http.ssl_verify_peer.set", std::bind(&core::CurlStack::set_ssl_verify_peer, httpStack, std::placeholders::_2));
|
||||||
|
CMD2_ANY ("network.http.dns_cache_timeout", std::bind(&core::CurlStack::ssl_verify_peer, httpStack));
|
||||||
|
CMD2_ANY_VALUE_V ("network.http.dns_cache_timeout.set", std::bind(&core::CurlStack::set_ssl_verify_peer, httpStack, std::placeholders::_2));
|
||||||
|
|
||||||
CMD2_ANY ("network.send_buffer.size", std::bind(&torrent::ConnectionManager::send_buffer_size, cm));
|
CMD2_ANY ("network.send_buffer.size", std::bind(&torrent::ConnectionManager::send_buffer_size, cm));
|
||||||
CMD2_ANY_VALUE_V ("network.send_buffer.size.set", std::bind(&torrent::ConnectionManager::set_send_buffer_size, cm, std::placeholders::_2));
|
CMD2_ANY_VALUE_V ("network.send_buffer.size.set", std::bind(&torrent::ConnectionManager::set_send_buffer_size, cm, std::placeholders::_2));
|
||||||
|
|||||||
@@ -52,7 +52,8 @@ CurlStack::CurlStack() :
|
|||||||
m_handle((void*)curl_multi_init()),
|
m_handle((void*)curl_multi_init()),
|
||||||
m_active(0),
|
m_active(0),
|
||||||
m_maxActive(32),
|
m_maxActive(32),
|
||||||
m_ssl_verify_peer(true) {
|
m_ssl_verify_peer(true),
|
||||||
|
m_dns_timeout(60) {
|
||||||
|
|
||||||
m_taskTimeout.set_slot(rak::mem_fn(this, &CurlStack::receive_timeout));
|
m_taskTimeout.set_slot(rak::mem_fn(this, &CurlStack::receive_timeout));
|
||||||
|
|
||||||
@@ -165,8 +166,8 @@ CurlStack::add_get(CurlGet* get) {
|
|||||||
if (!m_httpCaCert.empty())
|
if (!m_httpCaCert.empty())
|
||||||
curl_easy_setopt(get->handle(), CURLOPT_CAINFO, m_httpCaCert.c_str());
|
curl_easy_setopt(get->handle(), CURLOPT_CAINFO, m_httpCaCert.c_str());
|
||||||
|
|
||||||
if (!m_ssl_verify_peer)
|
curl_easy_setopt(get->handle(), CURLOPT_SSL_VERIFYPEER, (long)m_ssl_verify_peer);
|
||||||
curl_easy_setopt(get->handle(), CURLOPT_SSL_VERIFYPEER, 0);
|
curl_easy_setopt(get->handle(), CURLOPT_DNS_CACHE_TIMEOUT, m_dns_timeout);
|
||||||
|
|
||||||
base_type::push_back(get);
|
base_type::push_back(get);
|
||||||
|
|
||||||
|
|||||||
+10
-8
@@ -90,23 +90,23 @@ class CurlStack : std::deque<CurlGet*> {
|
|||||||
void set_max_active(unsigned int a) { m_maxActive = a; }
|
void set_max_active(unsigned int a) { m_maxActive = a; }
|
||||||
|
|
||||||
const std::string& user_agent() const { return m_userAgent; }
|
const std::string& user_agent() const { return m_userAgent; }
|
||||||
void set_user_agent(const std::string& s) { m_userAgent = s; }
|
|
||||||
|
|
||||||
const std::string& http_proxy() const { return m_httpProxy; }
|
const std::string& http_proxy() const { return m_httpProxy; }
|
||||||
void set_http_proxy(const std::string& s) { m_httpProxy = s; }
|
|
||||||
|
|
||||||
const std::string& bind_address() const { return m_bindAddress; }
|
const std::string& bind_address() const { return m_bindAddress; }
|
||||||
void set_bind_address(const std::string& s) { m_bindAddress = s; }
|
|
||||||
|
|
||||||
const std::string& http_capath() const { return m_httpCaPath; }
|
const std::string& http_capath() const { return m_httpCaPath; }
|
||||||
void set_http_capath(const std::string& s) { m_httpCaPath = s; }
|
|
||||||
|
|
||||||
const std::string& http_cacert() const { return m_httpCaCert; }
|
const std::string& http_cacert() const { return m_httpCaCert; }
|
||||||
|
|
||||||
|
void set_user_agent(const std::string& s) { m_userAgent = s; }
|
||||||
|
void set_http_proxy(const std::string& s) { m_httpProxy = s; }
|
||||||
|
void set_bind_address(const std::string& s) { m_bindAddress = s; }
|
||||||
|
void set_http_capath(const std::string& s) { m_httpCaPath = s; }
|
||||||
void set_http_cacert(const std::string& s) { m_httpCaCert = s; }
|
void set_http_cacert(const std::string& s) { m_httpCaCert = s; }
|
||||||
|
|
||||||
bool ssl_verify_peer() const { return m_ssl_verify_peer; }
|
bool ssl_verify_peer() const { return m_ssl_verify_peer; }
|
||||||
void set_ssl_verify_peer(bool s) { m_ssl_verify_peer = s; }
|
void set_ssl_verify_peer(bool s) { m_ssl_verify_peer = s; }
|
||||||
|
|
||||||
|
long dns_timeout() const { return m_dns_timeout; }
|
||||||
|
void set_dns_timeout(long timeout) { m_dns_timeout = timeout; }
|
||||||
|
|
||||||
static void global_init();
|
static void global_init();
|
||||||
static void global_cleanup();
|
static void global_cleanup();
|
||||||
|
|
||||||
@@ -138,7 +138,9 @@ class CurlStack : std::deque<CurlGet*> {
|
|||||||
std::string m_bindAddress;
|
std::string m_bindAddress;
|
||||||
std::string m_httpCaPath;
|
std::string m_httpCaPath;
|
||||||
std::string m_httpCaCert;
|
std::string m_httpCaCert;
|
||||||
|
|
||||||
bool m_ssl_verify_peer;
|
bool m_ssl_verify_peer;
|
||||||
|
long m_dns_timeout;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user