Added proxy to get_stream()
This commit is contained in:
parent
f019809133
commit
b9603587c5
|
@ -1,6 +1,6 @@
|
||||||
cmake_minimum_required (VERSION 3.7)
|
cmake_minimum_required (VERSION 3.7)
|
||||||
project (mastodon-cpp
|
project (mastodon-cpp
|
||||||
VERSION 0.15.0
|
VERSION 0.15.1
|
||||||
LANGUAGES CXX
|
LANGUAGES CXX
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
21
src/http.cpp
21
src/http.cpp
|
@ -35,8 +35,6 @@ API::http::http(const API &api, const string &instance,
|
||||||
, _instance(instance)
|
, _instance(instance)
|
||||||
, _access_token(access_token)
|
, _access_token(access_token)
|
||||||
, _cancel_stream(false)
|
, _cancel_stream(false)
|
||||||
, _proxy("")
|
|
||||||
, _proxy_userpw("")
|
|
||||||
{
|
{
|
||||||
curlpp::initialize();
|
curlpp::initialize();
|
||||||
}
|
}
|
||||||
|
@ -72,12 +70,17 @@ const uint_fast16_t API::http::request(const method &meth,
|
||||||
ttdebug << "User-Agent: " << parent.get_useragent() << "\n";
|
ttdebug << "User-Agent: " << parent.get_useragent() << "\n";
|
||||||
request.setOpt<curlopts::UserAgent>(parent.get_useragent());
|
request.setOpt<curlopts::UserAgent>(parent.get_useragent());
|
||||||
|
|
||||||
if (!_proxy.empty())
|
|
||||||
{
|
{
|
||||||
request.setOpt<curlopts::Proxy>(_proxy);
|
string proxy;
|
||||||
if (!_proxy_userpw.empty())
|
string userpw;
|
||||||
|
parent.get_proxy(proxy, userpw);
|
||||||
|
if (!proxy.empty())
|
||||||
{
|
{
|
||||||
request.setOpt<curlopts::ProxyUserPwd>(_proxy_userpw);
|
request.setOpt<curlopts::Proxy>(proxy);
|
||||||
|
if (!userpw.empty())
|
||||||
|
{
|
||||||
|
request.setOpt<curlopts::ProxyUserPwd>(userpw);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -228,9 +231,3 @@ std::mutex &API::http::get_mutex()
|
||||||
{
|
{
|
||||||
return _mutex;
|
return _mutex;
|
||||||
}
|
}
|
||||||
|
|
||||||
const void API::http::set_proxy(const string &proxy, const string &userpw)
|
|
||||||
{
|
|
||||||
_proxy = proxy;
|
|
||||||
_proxy_userpw = userpw;
|
|
||||||
}
|
|
||||||
|
|
|
@ -33,6 +33,8 @@ API::API(const string &instance, const string &access_token)
|
||||||
, _useragent(string("mastodon-cpp/") + global::version)
|
, _useragent(string("mastodon-cpp/") + global::version)
|
||||||
, _http(*this, instance, access_token)
|
, _http(*this, instance, access_token)
|
||||||
, _exceptions(false)
|
, _exceptions(false)
|
||||||
|
, _proxy("")
|
||||||
|
, _proxy_userpw("")
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
}
|
}
|
||||||
|
@ -574,5 +576,18 @@ const string API::unescape_html(const string &html)
|
||||||
|
|
||||||
const void API::set_proxy(const string &proxy, const string &userpw)
|
const void API::set_proxy(const string &proxy, const string &userpw)
|
||||||
{
|
{
|
||||||
_http.set_proxy(proxy, userpw);
|
_proxy = proxy;
|
||||||
|
_proxy_userpw = userpw;
|
||||||
|
}
|
||||||
|
|
||||||
|
const void API::get_proxy(string &proxy, string &userpw) const
|
||||||
|
{
|
||||||
|
if (!_proxy.empty())
|
||||||
|
{
|
||||||
|
proxy = _proxy;
|
||||||
|
if (!_proxy_userpw.empty())
|
||||||
|
{
|
||||||
|
userpw = _proxy_userpw;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -146,21 +146,6 @@ public:
|
||||||
*/
|
*/
|
||||||
std::mutex &get_mutex();
|
std::mutex &get_mutex();
|
||||||
|
|
||||||
/*!
|
|
||||||
* @brief Sets the proxy.
|
|
||||||
*
|
|
||||||
* Since mastodon-cpp is built on libcurl, it respects the same
|
|
||||||
* proxy environment variables. See `man curl`.
|
|
||||||
*
|
|
||||||
* @param proxy See `man 3 CURLOPT_PROXY`
|
|
||||||
* @param userpw See `man 3 CURLOPT_PROXYUSERPWD` (optional)
|
|
||||||
*
|
|
||||||
* @since 0.15.0
|
|
||||||
*
|
|
||||||
* @return { description_of_the_return_value }
|
|
||||||
*/
|
|
||||||
const void set_proxy(const string &proxy, const string &userpw = "");
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const API &parent;
|
const API &parent;
|
||||||
const string _instance;
|
const string _instance;
|
||||||
|
@ -168,8 +153,6 @@ public:
|
||||||
string _headers;
|
string _headers;
|
||||||
bool _cancel_stream;
|
bool _cancel_stream;
|
||||||
std::mutex _mutex;
|
std::mutex _mutex;
|
||||||
string _proxy;
|
|
||||||
string _proxy_userpw;
|
|
||||||
|
|
||||||
const size_t callback_write(char* data, size_t size, size_t nmemb,
|
const size_t callback_write(char* data, size_t size, size_t nmemb,
|
||||||
string *oss);
|
string *oss);
|
||||||
|
@ -413,12 +396,28 @@ public:
|
||||||
static const string unescape_html(const string &html);
|
static const string unescape_html(const string &html);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* @brief Calls Mastodon::API::http::set_proxy()
|
* @brief Sets the proxy.
|
||||||
|
*
|
||||||
|
* Since mastodon-cpp is built on libcurl, it respects the same
|
||||||
|
* proxy environment variables. See `man curl`.
|
||||||
|
*
|
||||||
|
* @param proxy See `man 3 CURLOPT_PROXY`
|
||||||
|
* @param userpw See `man 3 CURLOPT_PROXYUSERPWD` (optional)
|
||||||
*
|
*
|
||||||
* @since 0.15.0
|
* @since 0.15.0
|
||||||
*/
|
*/
|
||||||
const void set_proxy(const string &proxy, const string &userpw = "");
|
const void set_proxy(const string &proxy, const string &userpw = "");
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* @brief For internal use
|
||||||
|
*
|
||||||
|
* @param proxy URL
|
||||||
|
* @param userpw username:password
|
||||||
|
*
|
||||||
|
* @since 0.15.1
|
||||||
|
*/
|
||||||
|
const void get_proxy(string &proxy, string &userpw) const;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* @brief Make a GET request which doesn't require parameters.
|
* @brief Make a GET request which doesn't require parameters.
|
||||||
*
|
*
|
||||||
|
@ -683,6 +682,8 @@ private:
|
||||||
string _useragent;
|
string _useragent;
|
||||||
http _http;
|
http _http;
|
||||||
bool _exceptions;
|
bool _exceptions;
|
||||||
|
string _proxy;
|
||||||
|
string _proxy_userpw;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* @brief Converts map of parameters into a string.
|
* @brief Converts map of parameters into a string.
|
||||||
|
|
Reference in New Issue
Block a user