53 #if VER_PRODUCTBUILD < 6000
60 PSTR pRegularExpression;
68 #define P_HAS_RESOLVER 1 // set if using Unix-style DNS routines
69 #include <arpa/nameser.h>
71 #if defined(P_MACOSX) && (P_MACOSX >= 700)
72 #include <arpa/nameser_compat.h>
95 #define DNS_STATUS int
96 #define DNS_TYPE_SRV T_SRV
97 #define DNS_TYPE_MX T_MX
98 #define DNS_TYPE_A T_A
99 #define DNS_TYPE_AAAA T_AAAA
100 #define DNS_TYPE_NAPTR T_NAPTR
101 #define DnsFreeRecordList 1
102 #define DNS_QUERY_STANDARD 0
103 #define DNS_QUERY_BYPASS_CACHE 0
105 typedef struct _DnsAData {
109 typedef struct _DnsAAAAData {
114 char pNameExchange[MAXDNAME];
119 char pNameHost[MAXDNAME];
122 typedef struct _DnsSRVData {
123 char pNameTarget[MAXDNAME];
129 typedef struct _DnsNULLData {
134 typedef struct _DnsRecordFlags
136 unsigned Section : 2;
138 unsigned CharSet : 2;
140 unsigned Reserved : 24;
143 typedef enum _DnsSection
189 #endif // P_HAS_RESOLVER
212 template <
unsigned type,
class RecordListType,
class RecordType>
218 recordList.RemoveAll();
232 while (dnsRecord != NULL) {
233 RecordType * record = recordList.HandleDNSRecord(dnsRecord, results);
235 recordList.Append(record);
236 dnsRecord = dnsRecord->
pNext;
242 return recordList.GetSize() != 0;
255 void PrintOn(ostream & strm)
const;
267 void PrintOn(ostream & strm) const;
284 {
return Lookup<DNS_TYPE_SRV, SRVRecordList, SRVRecord>(service, serviceList); }
291 SRVRecordList & serviceList
303 SRVRecordList & serviceList
338 Comparison Compare(
const PObject & obj)
const;
339 void PrintOn(ostream & strm)
const;
349 void PrintOn(ostream & strm) const;
365 MXRecordList & serviceList
367 {
return Lookup<DNS_TYPE_MX, MXRecordList, MXRecord>(domain, serviceList); }
374 MXRecordList & serviceList
385 #endif // PTLIB_PDNS_H