The InspIRCd Project
Home | Developers | Wiki | Forums | Bug Tracker | SVN | Download
Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

DNSRequest Class Reference

Collaboration diagram for DNSRequest:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 DNSRequest (InspIRCd *Instance, DNS *dns, int id, const std::string &original)
 ~DNSRequest ()
DNSInfo ResultIsReady (DNSHeader &h, int length, int result_we_want)
 A result is ready, process it.
int SendRequests (const DNSHeader *header, const int length, QueryType qt)
 Send requests we have previously built down the UDP socket.

Public Attributes

unsigned char id [2]
unsigned char * res
unsigned int rr_class
QueryType type
DNSdnsobj
unsigned long ttl
std::string orig
InspIRCdServerInstance

Detailed Description

Definition at line 90 of file dns.cpp.


Constructor & Destructor Documentation

DNSRequest::DNSRequest InspIRCd Instance,
DNS dns,
int  id,
const std::string original
 

Definition at line 152 of file dns.cpp.

References TimerManager::AddTimer(), InspIRCd::Config, ServerConfig::dns_timeout, orig, res, and InspIRCd::Timers.

DNSRequest::~DNSRequest  ) 
 

Definition at line 162 of file dns.cpp.

References res.


Member Function Documentation

DNSInfo DNSRequest::ResultIsReady DNSHeader h,
int  length,
int  result_we_want
 

A result is ready, process it.

Definition at line 777 of file dns.cpp.

References DNSHeader::ancount, ConvToStr(), DNS_QUERY_A, DNS_QUERY_AAAA, DNS_QUERY_CNAME, DNS_QUERY_NONE, DNS_QUERY_PTR, DNS::FillResourceRecord(), DNSHeader::flags1, DNSHeader::flags2, FLAGS_MASK_OPCODE, FLAGS_MASK_QR, FLAGS_MASK_RCODE, DNSHeader::payload, DNSHeader::qdcount, ResourceRecord::rdlength, res, ResourceRecord::rr_class, ttl, ResourceRecord::ttl, and ResourceRecord::type.

Referenced by DNS::GetResult().

int DNSRequest::SendRequests const DNSHeader header,
const int  length,
QueryType  qt
 

Send requests we have previously built down the UDP socket.

Definition at line 209 of file dns.cpp.

References DEBUG, dnsobj, DNS::EmptyHeader(), LogManager::Log(), InspIRCd::Logs, DNS::myserver4, DNS::QUERY_PORT, rr_class, InspIRCd::SE, SocketEngine::SendTo(), ServerInstance, and type.

Referenced by DNS::GetCName(), DNS::GetIP(), DNS::GetIP6(), DNS::GetName(), and DNS::GetNameForce().


Member Data Documentation

DNS* DNSRequest::dnsobj
 

Definition at line 97 of file dns.cpp.

Referenced by SendRequests().

unsigned char DNSRequest::id[2]
 

Definition at line 93 of file dns.cpp.

Referenced by DNS::AddQuery().

std::string DNSRequest::orig
 

Definition at line 99 of file dns.cpp.

Referenced by DNSRequest(), and DNS::GetResult().

unsigned char* DNSRequest::res
 

Definition at line 94 of file dns.cpp.

Referenced by DNSRequest(), ResultIsReady(), and ~DNSRequest().

unsigned int DNSRequest::rr_class
 

Definition at line 95 of file dns.cpp.

Referenced by SendRequests().

InspIRCd* DNSRequest::ServerInstance
 

Definition at line 100 of file dns.cpp.

Referenced by SendRequests().

unsigned long DNSRequest::ttl
 

Definition at line 98 of file dns.cpp.

Referenced by DNS::GetResult(), and ResultIsReady().

QueryType DNSRequest::type
 

Definition at line 96 of file dns.cpp.

Referenced by DNS::GetResult(), and SendRequests().


The documentation for this class was generated from the following file: