New DNS implementation.
This commit is contained in:
parent
5b189696d7
commit
3e41bdc552
14 changed files with 357 additions and 121 deletions
|
@ -23,11 +23,13 @@
|
|||
#include "base/io/log/Log.h"
|
||||
#include "base/kernel/Platform.h"
|
||||
#include "base/net/dns/Dns.h"
|
||||
#include "base/net/dns/DnsRecords.h"
|
||||
#include "base/net/tools/NetBuffer.h"
|
||||
#include "base/tools/Timer.h"
|
||||
|
||||
|
||||
#include <sstream>
|
||||
#include <uv.h>
|
||||
|
||||
|
||||
namespace xmrig {
|
||||
|
@ -48,7 +50,6 @@ xmrig::HttpClient::HttpClient(const char *tag, FetchRequest &&req, const std::we
|
|||
url = std::move(m_req.path);
|
||||
body = std::move(m_req.body);
|
||||
headers = std::move(m_req.headers);
|
||||
m_dns = std::make_shared<Dns>(this);
|
||||
|
||||
if (m_req.timeout) {
|
||||
m_timer = std::make_shared<Timer>(this, m_req.timeout, 0);
|
||||
|
@ -58,17 +59,20 @@ xmrig::HttpClient::HttpClient(const char *tag, FetchRequest &&req, const std::we
|
|||
|
||||
bool xmrig::HttpClient::connect()
|
||||
{
|
||||
return m_dns->resolve(m_req.host);
|
||||
m_dns = Dns::resolve(m_req.host, this);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
void xmrig::HttpClient::onResolved(const DnsRecords &records, int status)
|
||||
void xmrig::HttpClient::onResolved(const DnsRecords &records, int status, const char *error)
|
||||
{
|
||||
this->status = status;
|
||||
m_dns.reset();
|
||||
|
||||
if (status < 0 && records.isEmpty()) {
|
||||
if (!isQuiet()) {
|
||||
LOG_ERR("%s " RED("DNS error: ") RED_BOLD("\"%s\""), tag(), uv_strerror(status));
|
||||
LOG_ERR("%s " RED("DNS error: ") RED_BOLD("\"%s\""), tag(), error);
|
||||
}
|
||||
|
||||
return;
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
namespace xmrig {
|
||||
|
||||
|
||||
class Dns;
|
||||
class DnsRequest;
|
||||
|
||||
|
||||
class HttpClient : public HttpContext, public IDnsListener, public ITimerListener
|
||||
|
@ -51,7 +51,7 @@ public:
|
|||
bool connect();
|
||||
|
||||
protected:
|
||||
void onResolved(const DnsRecords &records, int status) override;
|
||||
void onResolved(const DnsRecords &records, int status, const char *error) override;
|
||||
void onTimer(const Timer *timer) override;
|
||||
|
||||
virtual void handshake();
|
||||
|
@ -65,7 +65,7 @@ private:
|
|||
|
||||
const char *m_tag;
|
||||
FetchRequest m_req;
|
||||
std::shared_ptr<Dns> m_dns;
|
||||
std::shared_ptr<DnsRequest> m_dns;
|
||||
std::shared_ptr<Timer> m_timer;
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue