#include <dns.h>
Inherits DNSQuery.

Public Member Functions | |
| DNSPacket (sockaddrs *a) | |
| void | Fill (const unsigned char *input, const unsigned short len) |
| unsigned short | Pack (unsigned char *output, unsigned short output_size) |
Data Fields | |
| sockaddrs | addr |
| unsigned short | id |
| unsigned short | flags |
Static Public Attributes | |
| static const int | HEADER_LENGTH = 12 |
Private Member Functions | |
| void | PackName (unsigned char *output, unsigned short output_size, unsigned short &pos, const Anope::string &name) |
| Anope::string | UnpackName (const unsigned char *input, unsigned short input_size, unsigned short &pos) |
| Question | UnpackQuestion (const unsigned char *input, unsigned short input_size, unsigned short &pos) |
| ResourceRecord | UnpackResourceRecord (const unsigned char *input, unsigned short input_size, unsigned short &poss) |
Static Private Attributes | |
| static const int | DNS_POINTER = 0xC0 |
| static const int | DNS_LABEL = 0x3F |
A full packet sent or recieved to/from the nameserver
Definition at line 134 of file dns.h.
| void DNSPacket::Fill | ( | const unsigned char * | input, | |
| const unsigned short | len | |||
| ) |
Definition at line 278 of file dns.cpp.
References DNSQuery::additional, DNSQuery::answers, DNSQuery::authorities, flags, HEADER_LENGTH, LOG_DEBUG_2, and DNSQuery::questions.
Referenced by DNSManager::HandlePacket().
| unsigned short DNSPacket::Pack | ( | unsigned char * | output, | |
| unsigned short | output_size | |||
| ) |
Definition at line 318 of file dns.cpp.
References DNSQuery::additional, sockaddrs::addr(), DNSQuery::answers, DNSQuery::authorities, Config, DNS_QUERY_A, DNS_QUERY_AAAA, DNS_QUERY_CNAME, DNS_QUERY_NS, DNS_QUERY_PTR, DNS_QUERY_SOA, ServerConfig::DNSSOAAdmin, ServerConfig::DNSSOANS, ServerConfig::DNSSOARefresh, Anope::string::find(), flags, DNSManager::GetSerial(), HEADER_LENGTH, Question::name, Anope::string::npos, sockaddrs::ntop(), PackName(), Question::qclass, DNSQuery::questions, ResourceRecord::rdata, Anope::string::replace_all_cs(), sockaddrs::sa4, sockaddrs::sa6, ResourceRecord::ttl, and Question::type.
Referenced by DNSManager::UDPSocket::ProcessWrite(), and DNSManager::TCPSocket::Client::ProcessWrite().
| void DNSPacket::PackName | ( | unsigned char * | output, | |
| unsigned short | output_size, | |||
| unsigned short & | pos, | |||
| const Anope::string & | name | |||
| ) | [private] |
Definition at line 115 of file dns.cpp.
References Anope::string::c_str(), sepstream::GetToken(), Anope::string::length(), and LOG_DEBUG_2.
Referenced by Pack().
| Anope::string DNSPacket::UnpackName | ( | const unsigned char * | input, | |
| unsigned short | input_size, | |||
| unsigned short & | pos | |||
| ) | [private] |
Definition at line 135 of file dns.cpp.
References DNS_LABEL, DNS_POINTER, Anope::string::empty(), and LOG_DEBUG_2.
Referenced by UnpackQuestion(), and UnpackResourceRecord().
| Question DNSPacket::UnpackQuestion | ( | const unsigned char * | input, | |
| unsigned short | input_size, | |||
| unsigned short & | pos | |||
| ) | [private] |
Definition at line 193 of file dns.cpp.
References Question::name, Question::qclass, Question::type, and UnpackName().
Referenced by UnpackResourceRecord().
| ResourceRecord DNSPacket::UnpackResourceRecord | ( | const unsigned char * | input, | |
| unsigned short | input_size, | |||
| unsigned short & | poss | |||
| ) | [private] |
Definition at line 211 of file dns.cpp.
References sockaddrs::addr(), DNS_QUERY_A, DNS_QUERY_AAAA, DNS_QUERY_CNAME, DNS_QUERY_PTR, LOG_DEBUG_2, Question::name, sockaddrs::ntop(), ResourceRecord::rdata, ResourceRecord::ttl, Question::type, UnpackName(), and UnpackQuestion().
Definition at line 148 of file dns.h.
Referenced by DNSPacket(), and DNSManager::UDPSocket::ProcessWrite().
const int DNSPacket::DNS_LABEL = 0x3F [static, private] |
Definition at line 137 of file dns.h.
Referenced by UnpackName().
const int DNSPacket::DNS_POINTER = 0xC0 [static, private] |
Definition at line 136 of file dns.h.
Referenced by UnpackName().
| unsigned short DNSPacket::flags |
Definition at line 152 of file dns.h.
Referenced by Fill(), DNSManager::HandlePacket(), Pack(), and DNSRequest::Process().
const int DNSPacket::HEADER_LENGTH = 12 [static] |
Definition at line 145 of file dns.h.
Referenced by Fill(), DNSManager::HandlePacket(), and Pack().
| unsigned short DNSPacket::id |
Definition at line 150 of file dns.h.
Referenced by DNSManager::HandlePacket(), and DNSRequest::Process().
1.7.1