diff --git a/include/opendht/http.h b/include/opendht/http.h index bb70d2aeb71d791bf9b241ca569ffc2e199acea4..ca5f86aaf62aaacc1e771f0c69dcfe175f3bab90 100644 --- a/include/opendht/http.h +++ b/include/opendht/http.h @@ -140,7 +140,7 @@ public: std::vector<asio::ip::tcp::endpoint> endpoints)>; Resolver(asio::io_context& ctx, const std::string& url, std::shared_ptr<dht::Logger> logger = {}); - Resolver(asio::io_context& ctx, const std::string& host, const std::string& service = "80", + Resolver(asio::io_context& ctx, const std::string& host, const std::string& service, const bool ssl = false, std::shared_ptr<dht::Logger> logger = {}); // use already resolved endpoints with classes using this resolver @@ -152,7 +152,6 @@ public: inline const Url& get_url() const { return url_; }; - std::string get_service() const; void add_callback(ResolverCb cb); @@ -191,11 +190,11 @@ public: }; using OnStatusCb = std::function<void(unsigned int status_code)>; using OnDataCb = std::function<void(const char* at, size_t length)>; - using OnStateChangeCb = std::function<void(const State state, const Response response)>; + using OnStateChangeCb = std::function<void(State state, const Response& response)>; // resolves implicitly Request(asio::io_context& ctx, const std::string& url, std::shared_ptr<dht::Logger> logger = {}); - Request(asio::io_context& ctx, const std::string& host, const std::string& service = "80", + Request(asio::io_context& ctx, const std::string& host, const std::string& service, const bool ssl = false, std::shared_ptr<dht::Logger> logger = {}); // user defined resolver diff --git a/src/dht_proxy_client.cpp b/src/dht_proxy_client.cpp index a984a5adcc75b77069bf7f0cf022c2c502441982..09faf115613ac37ed0b7fff23d2ad0dbbf04ae20 100644 --- a/src/dht_proxy_client.cpp +++ b/src/dht_proxy_client.cpp @@ -325,7 +325,7 @@ DhtProxyClient::get(const InfoHash& key, GetCallback cb, DoneCallback donecb, Va } }); request->add_on_state_change_callback([this, reqid, opstate, donecb, key] - (const http::Request::State state, const http::Response response){ + (http::Request::State state, const http::Response& response){ if (state == http::Request::State::DONE){ if (response.status_code != 200){ if (logger_) @@ -464,7 +464,7 @@ DhtProxyClient::doPut(const InfoHash& key, Sp<Value> val, DoneCallback cb, time_ return 0; }); request->add_on_state_change_callback([this, reqid, ok, cb, key] - (const http::Request::State state, const http::Response response){ + (http::Request::State state, const http::Response& response){ if (state == http::Request::State::DONE){ if (response.status_code != 200) if (logger_) @@ -658,7 +658,7 @@ DhtProxyClient::queryProxyInfo(std::shared_ptr<InfoState> infoState, const sa_fa } }); request->add_on_state_change_callback([this, reqid, family, infoState] - (const http::Request::State state, const http::Response response){ + (http::Request::State state, const http::Response& response){ if (state == http::Request::State::DONE){ if (response.status_code != 200) if (logger_) @@ -948,7 +948,7 @@ DhtProxyClient::handleExpireListener(const asio::error_code &ec, const InfoHash& key.to_c_str(), status_code); }); request->add_on_state_change_callback([this, reqid, key] - (const http::Request::State state, const http::Response response){ + (http::Request::State state, const http::Response& response){ if (state == http::Request::State::DONE){ if (response.status_code != 200) if (logger_) @@ -1054,7 +1054,7 @@ DhtProxyClient::sendListen(const restinio::http_request_header_t header, } }); request->add_on_state_change_callback([this, reqid] - (const http::Request::State state, const http::Response response){ + (http::Request::State state, const http::Response& response){ if (state == http::Request::State::DONE){ if (response.status_code != 200) if (logger_) diff --git a/src/http.cpp b/src/http.cpp index 1224fa7f43d4004340d10c23f00de5d27945b289..cff3662dfbc6a3ddd0668970e21cae41d88f5f4a 100644 --- a/src/http.cpp +++ b/src/http.cpp @@ -19,7 +19,9 @@ #include "http.h" #include "log_enable.h" #include "crypto.h" +#include "base64.h" +#include <asio.hpp> #include <restinio/impl/tls_socket.hpp> #include <http_parser.h> @@ -367,12 +369,12 @@ Resolver::resolve(const std::string& host, const std::string& service) return; if (logger_){ if (ec) - logger_->e("[http:client] [resolver] error for %s:%s: %s", + logger_->e("[http:client] [resolver] error for %s:%s: %s", host.c_str(), service.c_str(), ec.message().c_str()); else { for (auto it = endpoints.begin(); it != endpoints.end(); ++it){ asio::ip::tcp::endpoint endpoint = *it; - logger_->d("[http:client] [resolver] %s:%s endpoint (ipv%i): %s", + logger_->d("[http:client] [resolver] %s:%s endpoint (ipv%i): %s", host.c_str(), service.c_str(), endpoint.address().is_v6() ? 6 : 4, endpoint.address().to_string().c_str()); }