Public Member Functions | Data Fields | Static Public Attributes | Private Member Functions | Static Private Attributes

DNSPacket Class Reference

#include <dns.h>

Inherits DNSQuery.

Collaboration diagram for DNSPacket:
Collaboration graph
[legend]

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

Detailed Description

A full packet sent or recieved to/from the nameserver

Definition at line 134 of file dns.h.


Constructor & Destructor Documentation

DNSPacket::DNSPacket ( sockaddrs a  ) 

Definition at line 272 of file dns.cpp.

References addr.


Member Function Documentation

void DNSPacket::Fill ( const unsigned char *  input,
const unsigned short  len 
)
unsigned short DNSPacket::Pack ( unsigned char *  output,
unsigned short  output_size 
)
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]

Field Documentation

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().


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