53 #if VER_PRODUCTBUILD < 6000
60 PSTR pRegularExpression;
68 #define P_HAS_RESOLV_H 1 // set if using Unix-style DNS routines
69 #include <arpa/nameser.h>
71 #if defined(P_MACOSX) || defined(P_IOS)
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_RESOLV_H
226 template <
unsigned type,
class RecordListType,
class RecordType>
232 recordList.RemoveAll();
246 while (dnsRecord != NULL) {
247 RecordType * record = recordList.HandleDNSRecord(dnsRecord, results);
249 recordList.Append(record);
250 dnsRecord = dnsRecord->
pNext;
253 return recordList.GetSize() != 0;
266 void PrintOn(ostream & strm)
const;
278 void PrintOn(ostream & strm) const;
295 {
return Lookup<DNS_TYPE_SRV, SRVRecordList, SRVRecord>(service, serviceList); }
302 SRVRecordList & serviceList
314 SRVRecordList & serviceList
351 Comparison Compare(
const PObject & obj)
const;
352 void PrintOn(ostream & strm)
const;
362 void PrintOn(ostream & strm) const;
378 MXRecordList & serviceList
380 {
return Lookup<DNS_TYPE_MX, MXRecordList, MXRecord>(domain, serviceList); }
387 MXRecordList & serviceList
396 #endif // P_DNS_RESOLVER
398 #endif // PTLIB_PDNS_H