- Header updates for winsock rewrite
[reactos.git] / reactos / include / psdk / windns.h
index 1c912c9..65a5467 100644 (file)
@@ -1,8 +1,5 @@
 #ifndef _WINDNS_H
 #define _WINDNS_H
-#if __GNUC__ >= 3
-#pragma GCC system_header
-#endif
 
 #ifdef __cplusplus
 extern "C" {
@@ -32,6 +29,8 @@ extern "C" {
 #define DNS_UPDATE_FORCE_SECURITY_NEGO 0x800
 #define DNS_UPDATE_RESERVED 0xffff0000
 
+#define DNS_CONFIG_FLAG_ALLOC TRUE
+
 #ifndef RC_INVOKE
 typedef DWORD IP4_ADDRESS;
 typedef DWORD DNS_STATUS;
@@ -174,6 +173,10 @@ typedef struct _DnsRecordFlags {
        DWORD Unused    :3;
        DWORD Reserved  :24;
 } DNS_RECORD_FLAGS;
+#define DNSREC_QUESTION 0
+#define DNSREC_ANSWER 1
+#define DNSREC_AUTHORITY 2
+#define DNSREC_ADDITIONAL 3
 typedef struct {
        IP4_ADDRESS IpAddress;
 } DNS_A_DATA, *PDNS_A_DATA;
@@ -472,6 +475,27 @@ typedef struct _DnsRRSet {
        PDNS_RECORD pLastRR;
 } DNS_RRSET, *PDNS_RRSET;
 
+#define DNS_RRSET_INIT( rrset )                          \
+{                                                        \
+    PDNS_RRSET  _prrset = &(rrset);                      \
+    _prrset->pFirstRR = NULL;                            \
+    _prrset->pLastRR = (PDNS_RECORD) &_prrset->pFirstRR; \
+}
+
+#define DNS_RRSET_ADD( rrset, pnewRR ) \
+{                                      \
+    PDNS_RRSET  _prrset = &(rrset);    \
+    PDNS_RECORD _prrnew = (pnewRR);    \
+    _prrset->pLastRR->pNext = _prrnew; \
+    _prrset->pLastRR = _prrnew;        \
+}
+
+#define DNS_RRSET_TERMINATE( rrset ) \
+{                                    \
+    PDNS_RRSET  _prrset = &(rrset);  \
+    _prrset->pLastRR->pNext = NULL;  \
+}
+
 DNS_STATUS WINAPI DnsAcquireContextHandle_A(DWORD,PVOID,HANDLE*);
 DNS_STATUS WINAPI DnsAcquireContextHandle_W(DWORD,PVOID,HANDLE*);
 DNS_STATUS WINAPI DnsExtractRecordsFromMessage_W(PDNS_MESSAGE_BUFFER,WORD,PDNS_RECORD*);