mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-02-07 07:44:13 +00:00
* Reseed.cpp : use new http classes
This commit is contained in:
parent
26be0c7c82
commit
25ba08abcf
31
Reseed.cpp
31
Reseed.cpp
@ -14,6 +14,7 @@
|
|||||||
#include "Log.h"
|
#include "Log.h"
|
||||||
#include "Identity.h"
|
#include "Identity.h"
|
||||||
#include "NetDb.h"
|
#include "NetDb.h"
|
||||||
|
#include "HTTP.h"
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
|
||||||
namespace i2p
|
namespace i2p
|
||||||
@ -372,13 +373,19 @@ namespace data
|
|||||||
|
|
||||||
std::string Reseeder::HttpsRequest (const std::string& address)
|
std::string Reseeder::HttpsRequest (const std::string& address)
|
||||||
{
|
{
|
||||||
i2p::util::http::url u(address);
|
i2p::http::URL url;
|
||||||
if (u.port_ == 80) u.port_ = 443;
|
if (!url.parse(address)) {
|
||||||
|
LogPrint(eLogError, "Reseed: failed to parse url: ", address);
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
url.schema = "https";
|
||||||
|
if (!url.port)
|
||||||
|
url.port = 443;
|
||||||
|
|
||||||
boost::asio::io_service service;
|
boost::asio::io_service service;
|
||||||
boost::system::error_code ecode;
|
boost::system::error_code ecode;
|
||||||
auto it = boost::asio::ip::tcp::resolver(service).resolve (
|
auto it = boost::asio::ip::tcp::resolver(service).resolve (
|
||||||
boost::asio::ip::tcp::resolver::query (u.host_, std::to_string (u.port_)), ecode);
|
boost::asio::ip::tcp::resolver::query (url.host, std::to_string(url.port)), ecode);
|
||||||
if (!ecode)
|
if (!ecode)
|
||||||
{
|
{
|
||||||
boost::asio::ssl::context ctx(service, boost::asio::ssl::context::sslv23);
|
boost::asio::ssl::context ctx(service, boost::asio::ssl::context::sslv23);
|
||||||
@ -390,12 +397,12 @@ namespace data
|
|||||||
s.handshake (boost::asio::ssl::stream_base::client, ecode);
|
s.handshake (boost::asio::ssl::stream_base::client, ecode);
|
||||||
if (!ecode)
|
if (!ecode)
|
||||||
{
|
{
|
||||||
LogPrint (eLogInfo, "Reseed: Connected to ", u.host_, ":", u.port_);
|
LogPrint (eLogDebug, "Reseed: Connected to ", url.host, ":", url.port);
|
||||||
// send request
|
i2p::http::HTTPReq req;
|
||||||
std::stringstream ss;
|
req.uri = url.to_string();
|
||||||
ss << "GET " << u.path_ << " HTTP/1.1\r\nHost: " << u.host_
|
req.add_header("User-Agent", "Wget/1.11.4");
|
||||||
<< "\r\nAccept: */*\r\n" << "User-Agent: Wget/1.11.4\r\n" << "Connection: close\r\n\r\n";
|
req.add_header("Connection", "close");
|
||||||
s.write_some (boost::asio::buffer (ss.str ()));
|
s.write_some (boost::asio::buffer (req.to_string()));
|
||||||
// read response
|
// read response
|
||||||
std::stringstream rs;
|
std::stringstream rs;
|
||||||
char response[1024]; size_t l = 0;
|
char response[1024]; size_t l = 0;
|
||||||
@ -412,10 +419,10 @@ namespace data
|
|||||||
LogPrint (eLogError, "Reseed: SSL handshake failed: ", ecode.message ());
|
LogPrint (eLogError, "Reseed: SSL handshake failed: ", ecode.message ());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
LogPrint (eLogError, "Reseed: Couldn't connect to ", u.host_, ": ", ecode.message ());
|
LogPrint (eLogError, "Reseed: Couldn't connect to ", url.host, ": ", ecode.message ());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
LogPrint (eLogError, "Reseed: Couldn't resolve address ", u.host_, ": ", ecode.message ());
|
LogPrint (eLogError, "Reseed: Couldn't resolve address ", url.host, ": ", ecode.message ());
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user