PTLib  Version 2.14.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
pdns.h File Reference
#include <ptlib/sockets.h>
#include <ptclib/random.h>
#include <ptclib/url.h>
#include <arpa/nameser.h>
#include <resolv.h>
Include dependency graph for pdns.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  DNS_A_DATA
 
struct  DNS_AAAA_DATA
 
struct  DNS_MX_DATA
 
struct  DNS_PTR_DATA
 
struct  DNS_SRV_DATA
 
struct  DNS_NULL_DATA
 
struct  DNS_RECORD_FLAGS
 
class  DnsRecord
 
class  PDNS::PDnsRecords
 
class  PDNS::SRVRecord
 
class  MXRecord
 

Namespaces

namespace  PDNS
 

Macros

#define P_HAS_RESOLV_H   1
 
#define T_SRV   33
 
#define T_NAPTR   35
 
#define DNS_STATUS   int
 
#define DNS_TYPE_SRV   T_SRV
 
#define DNS_TYPE_MX   T_MX
 
#define DNS_TYPE_A   T_A
 
#define DNS_TYPE_AAAA   T_AAAA
 
#define DNS_TYPE_NAPTR   T_NAPTR
 
#define DnsFreeRecordList   1
 
#define DNS_QUERY_STANDARD   0
 
#define DNS_QUERY_BYPASS_CACHE   0
 

Typedefs

typedef DnsRecord DNS_RECORD
 
typedef DnsRecordPDNS_RECORD
 

Enumerations

enum  DNS_SECTION { DnsSectionQuestion, DnsSectionAnswer, DnsSectionAuthority, DnsSectionAdditional }
 

Functions

void DnsRecordListFree (PDNS_RECORD rec, int FreeType)
 
PDNS_RECORD DnsRecordSetCopy (PDNS_RECORD src)
 
DNS_STATUS DnsQuery_A (const char *service, WORD requestType, DWORD options, void *, PDNS_RECORD *results, void *)
 
DNS_STATUS PDNS::Cached_DnsQuery (const char *name, WORD type, DWORD options, void *extra, PDNS_RECORD *queryResults, void *reserved)
 
template<unsigned type, class RecordListType , class RecordType >
PBoolean PDNS::Lookup (const PString &name, RecordListType &recordList)
 
void PDNS::PrintOn (ostream &strm) const
 
SRVRecord * PDNS::GetFirst ()
 
SRVRecord * PDNS::GetNext ()
 
PDNS::NAPTRRecordPDNS::HandleDNSRecord (PDNS_RECORD dnsRecord, PDNS_RECORD results)
 
PBoolean GetRecords (const PString &service, SRVRecordList &serviceList)
 return a list of DNS SRV record with the specified service type More...
 
PBoolean GetSRVRecords (const PString &service, SRVRecordList &serviceList)
 provided for backwards compatibility More...
 
PBoolean GetSRVRecords (const PString &service, const PString &type, const PString &domain, SRVRecordList &serviceList)
 return a list of DNS SRV record with the specified service, type and domain More...
 
PBoolean LookupSRV (const PString &srvQuery, WORD defaultPort, PIPSocketAddressAndPortVector &addrList)
 Perform a DNS lookup of the specified service. More...
 
PBoolean LookupSRV (const PString &domain, const PString &service, WORD defaultPort, PIPSocketAddressAndPortVector &addrList)
 
PBoolean LookupSRV (const PURL &url, const PString &service, PStringList &returnStr)
 
void PrintOn (ostream &strm) const
 
MXRecordGetFirst ()
 
MXRecordGetNext ()
 
PDNS::MXRecord * HandleDNSRecord (PDNS_RECORD dnsRecord, PDNS_RECORD results)
 
PBoolean GetRecords (const PString &domain, MXRecordList &serviceList)
 return a list of MX records for the specified domain More...
 
PBoolean GetMXRecords (const PString &domain, MXRecordList &serviceList)
 provided for backwards compatibility More...
 

Variables

PINDEX PDNS::priPos
 
PWORDArray PDNS::priList
 
PINDEX lastIndex
 

Macro Definition Documentation

#define DNS_QUERY_BYPASS_CACHE   0
#define DNS_QUERY_STANDARD   0

Referenced by PDNS::Lookup().

#define DNS_STATUS   int

Referenced by PDNS::Lookup().

#define DNS_TYPE_A   T_A
#define DNS_TYPE_AAAA   T_AAAA
#define DNS_TYPE_MX   T_MX
#define DNS_TYPE_NAPTR   T_NAPTR
#define DNS_TYPE_SRV   T_SRV
#define DnsFreeRecordList   1
#define P_HAS_RESOLV_H   1
#define T_NAPTR   35
#define T_SRV   33

Typedef Documentation

Enumeration Type Documentation

Enumerator
DnsSectionQuestion 
DnsSectionAnswer 
DnsSectionAuthority 
DnsSectionAdditional 

Function Documentation

DNS_STATUS DnsQuery_A ( const char *  service,
WORD  requestType,
DWORD  options,
void *  ,
PDNS_RECORD results,
void *   
)
void DnsRecordListFree ( PDNS_RECORD  rec,
int  FreeType 
)
PDNS_RECORD DnsRecordSetCopy ( PDNS_RECORD  src)
MXRecord* GetFirst ( )
PBoolean GetMXRecords ( const PString domain,
MXRecordList &  serviceList 
)
inlineprotected

provided for backwards compatibility

References GetRecords().

MXRecord* GetNext ( )
PBoolean GetRecords ( const PString service,
SRVRecordList &  serviceList 
)
inline

return a list of DNS SRV record with the specified service type

PBoolean GetRecords ( const PString domain,
MXRecordList &  serviceList 
)
inlineprotected

return a list of MX records for the specified domain

PBoolean GetSRVRecords ( const PString service,
SRVRecordList &  serviceList 
)
inline

provided for backwards compatibility

References GetRecords().

PBoolean GetSRVRecords ( const PString service,
const PString type,
const PString domain,
SRVRecordList &  serviceList 
)

return a list of DNS SRV record with the specified service, type and domain

PDNS::MXRecord* HandleDNSRecord ( PDNS_RECORD  dnsRecord,
PDNS_RECORD  results 
)
PBoolean LookupSRV ( const PString srvQuery,
WORD  defaultPort,
PIPSocketAddressAndPortVector addrList 
)

Perform a DNS lookup of the specified service.

Returns
true if the service could be resolved, else false
PBoolean LookupSRV ( const PString domain,
const PString service,
WORD  defaultPort,
PIPSocketAddressAndPortVector addrList 
)
Parameters
domaindomain to lookup
serviceservice to use
defaultPortdefault por to use
addrListreturned list of sockets and ports
PBoolean LookupSRV ( const PURL url,
const PString service,
PStringList returnStr 
)
Parameters
urlURL to lookup
serviceservice to use
returnStrresolved addresses, if return value is true
void PrintOn ( ostream &  strm) const

Variable Documentation

PINDEX lastIndex