New header: <windns.h>

Peter Lemenkov petro at mail.ru
Tue Nov 8 04:39:53 CST 2005


Hello, All!

Based on the w32api:

http://cvs.sourceforge.net/viewcvs.py/mingw/w32api/include/windns.h?rev=1.2

This header is needed then we try to compile Miranda-IM's Jabber-plugin.
-- 
With best regards, Peter Lemenkov.
-------------- next part --------------
diff -u -r1.191 Makefile.in
--- ./include/Makefile.in	6 Oct 2005 12:28:46 -0000	1.191
+++ ./include/Makefile.in	8 Nov 2005 10:31:38 -0000
@@ -254,6 +254,7 @@
 	wincon.h \
 	wincrypt.h \
 	windef.h \
+	windns.h \
 	windows.h \
 	windowsx.h \
 	winerror.h \
--- /dev/null	2005-11-08 08:15:53.882337250 +0300
+++ ./include/windns.h	2005-11-08 13:21:11.000000000 +0300
@@ -0,0 +1,370 @@
+/*
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+#ifndef _WINDNS_H
+#define _WINDNS_H
+
+#define DNS_QUERY_STANDARD 0x0
+#define DNS_QUERY_ACCEPT_TRUNCATED_RESPONSE 0x1
+#define DNS_QUERY_USE_TCP_ONLY 0x2
+#define DNS_QUERY_NO_RECURSION 0x4
+#define DNS_QUERY_BYPASS_CACHE 0x8
+#define DNS_QUERY_NO_WIRE_QUERY	0x10
+#define DNS_QUERY_NO_LOCAL_NAME 0x20
+#define DNS_QUERY_NO_HOSTS_FILE 0x40
+#define DNS_QUERY_NO_NETBT 0x80
+#define DNS_QUERY_TREAT_AS_FQDN 0x1000
+#define DNS_QUERY_WIRE_ONLY 0x100
+#define DNS_QUERY_RETURN_MESSAGE 0x200
+#define DNS_QUERY_DONT_RESET_TTL_VALUES 0x100000
+#define DNS_QUERY_RESERVED 0xff000000
+#define DNS_QUERY_CACHE_ONLY                DNS_QUERY_NO_WIRE_QUERY
+
+#define DNS_UPDATE_SECURITY_USE_DEFAULT	0x0
+#define DNS_UPDATE_SECURITY_OFF 0x10
+#define DNS_UPDATE_SECURITY_ON 0x20
+#define DNS_UPDATE_SECURITY_ONLY 0x100
+#define DNS_UPDATE_CACHE_SECURITY_CONTEXT 0x200
+#define DNS_UPDATE_TEST_USE_LOCAL_SYS_ACCT 0x400
+#define DNS_UPDATE_FORCE_SECURITY_NEGO 0x800
+#define DNS_UPDATE_RESERVED 0xffff0000
+#define DNS_UPDATE_TRY_ALL_MASTER_SERVERS   0x00001000
+#define DNS_UPDATE_SKIP_NO_UPDATE_ADAPTERS  0x00002000
+#define DNS_UPDATE_REMOTE_SERVER            0x00004000
+
+typedef DWORD IP4_ADDRESS;
+typedef DWORD DNS_STATUS;
+
+#define DNS_TYPE_ZERO       0x0000
+#define DNS_TYPE_A          0x0001
+#define DNS_TYPE_NS         0x0002
+#define DNS_TYPE_MD         0x0003
+#define DNS_TYPE_MF         0x0004
+#define DNS_TYPE_CNAME      0x0005
+#define DNS_TYPE_SOA        0x0006
+#define DNS_TYPE_MB         0x0007
+#define DNS_TYPE_MG         0x0008
+#define DNS_TYPE_MR         0x0009
+#define DNS_TYPE_NULL       0x000a
+#define DNS_TYPE_WKS        0x000b
+#define DNS_TYPE_PTR        0x000c
+#define DNS_TYPE_HINFO      0x000d
+#define DNS_TYPE_MINFO      0x000e
+#define DNS_TYPE_MX         0x000f
+#define DNS_TYPE_TEXT       0x0010
+#define DNS_TYPE_RP         0x0011
+#define DNS_TYPE_AFSDB      0x0012
+#define DNS_TYPE_X25        0x0013
+#define DNS_TYPE_ISDN       0x0014
+#define DNS_TYPE_RT         0x0015
+#define DNS_TYPE_NSAP       0x0016
+#define DNS_TYPE_NSAPPTR    0x0017
+#define DNS_TYPE_SIG        0x0018
+#define DNS_TYPE_KEY        0x0019
+#define DNS_TYPE_PX         0x001a
+#define DNS_TYPE_GPOS       0x001b
+#define DNS_TYPE_AAAA       0x001c
+#define DNS_TYPE_LOC        0x001d
+#define DNS_TYPE_NXT        0x001e
+#define DNS_TYPE_EID        0x001f
+#define DNS_TYPE_NIMLOC     0x0020
+#define DNS_TYPE_SRV        0x0021
+#define DNS_TYPE_ATMA       0x0022
+#define DNS_TYPE_NAPTR      0x0023
+#define DNS_TYPE_KX         0x0024
+#define DNS_TYPE_CERT       0x0025
+#define DNS_TYPE_A6         0x0026
+#define DNS_TYPE_DNAME      0x0027
+#define DNS_TYPE_SINK       0x0028
+#define DNS_TYPE_OPT        0x0029
+#define DNS_TYPE_UINFO      0x0064
+#define DNS_TYPE_UID        0x0065
+#define DNS_TYPE_GID        0x0066
+#define DNS_TYPE_UNSPEC     0x0067
+#define DNS_TYPE_ADDRS      0x00f8
+#define DNS_TYPE_TKEY       0x00f9
+#define DNS_TYPE_TSIG       0x00fa
+#define DNS_TYPE_IXFR       0x00fb
+#define DNS_TYPE_AXFR       0x00fc
+#define DNS_TYPE_MAILB      0x00fd
+#define DNS_TYPE_MAILA      0x00fe
+#define DNS_TYPE_ALL        0x00ff
+#define DNS_TYPE_ANY        0x00ff
+#define DNS_TYPE_WINS       0xff01
+#define DNS_TYPE_WINSR      0xff02
+#define DNS_TYPE_NBSTAT     (DNS_TYPE_WINSR)
+
+typedef enum _DNS_CHARSET
+{
+	DnsCharSetUnknown, 
+	DnsCharSetUnicode, 
+	DnsCharSetUtf8, 
+	DnsCharSetAnsi
+} DNS_CHARSET;
+typedef enum 
+{
+	DnsConfigPrimaryDomainName_W, 
+	DnsConfigPrimaryDomainName_A, 
+	DnsConfigPrimaryDomainName_UTF8, 
+	DnsConfigAdapterDomainName_W, 
+	DnsConfigAdapterDomainName_A, 
+	DnsConfigAdapterDomainName_UTF8, 
+	DnsConfigDnsServerList, 
+	DnsConfigSearchList, 
+	DnsConfigAdapterInfo, 
+	DnsConfigPrimaryHostNameRegistrationEnabled, 
+	DnsConfigAdapterHostNameRegistrationEnabled, 
+	DnsConfigAddressRegistrationMaxCount, 
+	DnsConfigHostName_W, 
+	DnsConfigHostName_A, 
+	DnsConfigHostName_UTF8, 
+	DnsConfigFullHostName_W, 
+	DnsConfigFullHostName_A, 
+	DnsConfigFullHostName_UTF8
+} DNS_CONFIG_TYPE;
+typedef enum 
+{
+	DnsFreeFlat = 0, 
+	DnsFreeRecordList, 
+	DnsFreeParsedMessageFields
+} DNS_FREE_TYPE;
+typedef enum _DNS_NAME_FORMAT
+{
+	DnsNameDomain, 
+	DnsNameDomainLabel, 
+	DnsNameHostnameFull, 
+	DnsNameHostnameLabel, 
+	DnsNameWildcard, 
+	DnsNameSrvRecord
+} DNS_NAME_FORMAT;
+typedef enum 
+{
+	DnsSectionQuestion, 
+	DnsSectionAnswer, 
+	DnsSectionAuthority, 
+	DnsSectionAdditional
+} DNS_SECTION;
+typedef struct _IP4_ARRAY {
+	DWORD AddrCount;
+	IP4_ADDRESS AddrArray[1];
+} IP4_ARRAY, *PIP4_ARRAY;
+typedef struct {
+	DWORD IP6Dword[4];
+} IP6_ADDRESS, *PIP6_ADDRESS, DNS_IP6_ADDRESS, *PDNS_IP6_ADDRESS;
+typedef struct _DNS_HEADER {
+	WORD Xid;
+	BYTE RecursionDesired;
+	BYTE Truncation;
+	BYTE Authoritative;
+	BYTE Opcode;
+	BYTE IsResponse;
+	BYTE ResponseCode;
+	BYTE Reserved;
+	BYTE RecursionAvailable;
+	WORD QuestionCount;
+	WORD AnswerCount;
+	WORD NameServerCount;
+	WORD AdditionalCount;
+} DNS_HEADER, *PDNS_HEADER;
+typedef struct _DNS_MESSAGE_BUFFER {
+	DNS_HEADER MessageHead;
+	CHAR MessageBody[1];
+} DNS_MESSAGE_BUFFER, *PDNS_MESSAGE_BUFFER;
+typedef struct _DnsRecordFlags {
+	DWORD Section	:2;
+	DWORD Delete	:1;
+	DWORD CharSet	:2;
+	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;
+typedef struct {
+	DNS_IP6_ADDRESS Ip6Address;
+} DNS_AAAA_DATA, *PDNS_AAAA_DATA;
+#define DNS_ATMA_MAX_ADDR_LENGTH 20
+typedef struct {
+	BYTE AddressType;
+	BYTE Address[DNS_ATMA_MAX_ADDR_LENGTH];
+} DNS_ATMA_DATA, *PDNS_ATMA_DATA;
+typedef struct {
+	WORD wFlags;
+	BYTE chProtocol;
+	BYTE chAlgorithm;
+	BYTE Key[1];
+} DNS_KEY_DATA, *PDNS_KEY_DATA;
+typedef struct {
+	WORD wVersion;
+	WORD wSize;
+	WORD wHorPrec;
+	WORD wVerPrec;
+	DWORD dwLatitude;
+	DWORD dwLongitude;
+	DWORD dwAltitude;
+} DNS_LOC_DATA, *PDNS_LOC_DATA;
+typedef struct {
+	LPTSTR pNameMailbox;
+	LPTSTR pNameErrorsMailbox;
+} DNS_MINFO_DATA, *PDNS_MINFO_DATA;
+typedef struct {
+	LPTSTR pNameExchange;
+	WORD wPreference;
+	WORD Pad;
+} DNS_MX_DATA, *PDNS_MX_DATA;
+typedef struct {
+	DWORD dwByteCount;
+	BYTE Data[1];
+} DNS_NULL_DATA, *PDNS_NULL_DATA;
+typedef struct {
+	LPTSTR pNameNext;
+	WORD wNumTypes;
+	WORD wTypes[1];
+} DNS_NXT_DATA, *PDNS_NXT_DATA;
+typedef struct {
+	LPTSTR pNameHost;
+} DNS_PTR_DATA, *PDNS_PTR_DATA;
+typedef struct {
+	LPTSTR pNameSigner;
+	WORD wTypeCovered;
+	BYTE chAlgorithm;
+	BYTE chLabelCount;
+	DWORD dwOriginalTtl;
+	DWORD dwExpiration;
+	DWORD dwTimeSigned;
+	WORD wKeyTag;
+	WORD Pad;
+	BYTE Signature[1];
+} DNS_SIG_DATA, *PDNS_SIG_DATA;
+typedef struct {
+	LPTSTR pNamePrimaryServer;
+	LPTSTR pNameAdministrator;
+	DWORD dwSerialNo;
+	DWORD dwRefresh;
+	DWORD dwRetry;
+	DWORD dwExpire;
+	DWORD dwDefaultTtl;
+} DNS_SOA_DATA, *PDNS_SOA_DATA;
+typedef struct {
+	LPTSTR pNameTarget;
+	WORD wPriority;
+	WORD wWeight;
+	WORD wPort;
+	WORD Pad;
+} DNS_SRV_DATA, *PDNS_SRV_DATA;
+typedef struct {
+	DWORD dwStringCount;
+	LPTSTR pStringArray[1];
+} DNS_TXT_DATA, *PDNS_TXT_DATA;
+typedef struct {
+	LPTSTR pNameAlgorithm;
+	PBYTE pAlgorithmPacket;
+	PBYTE pKey;
+	PBYTE pOtherData;
+	DWORD dwCreateTime;
+	DWORD dwExpireTime;
+	WORD wMode;
+	WORD wError;
+	WORD wKeyLength;
+	WORD wOtherLength;
+	UCHAR cAlgNameLength;
+	BOOL bPacketPointers;
+} DNS_TKEY_DATA, *PDNS_TKEY_DATA;
+typedef struct {
+	LPTSTR pNameAlgorithm;
+	PBYTE pAlgorithmPacket;
+	PBYTE pSignature;
+	PBYTE pOtherData;
+	LONGLONG i64CreateTime;
+	WORD wFudgeTime;
+	WORD wOriginalXid;
+	WORD wError;
+	WORD wSigLength;
+	WORD wOtherLength;
+	UCHAR cAlgNameLength;
+	BOOL bPacketPointers;
+} DNS_TSIG_DATA, *PDNS_TSIG_DATA;
+typedef struct {
+	DWORD dwMappingFlag;
+	DWORD dwLookupTimeout;
+	DWORD dwCacheTimeout;
+	DWORD cWinsServerCount;
+	IP4_ADDRESS WinsServers[1];
+} DNS_WINS_DATA, *PDNS_WINS_DATA;
+typedef struct {
+	DWORD dwMappingFlag;
+	DWORD dwLookupTimeout;
+	DWORD dwCacheTimeout;
+	LPTSTR pNameResultDomain;
+} DNS_WINSR_DATA, *PDNS_WINSR_DATA;
+typedef struct _DNS_WIRE_QUESTION {
+	WORD QuestionType;
+	WORD QuestionClass;
+} DNS_WIRE_QUESTION, *PDNS_WIRE_QUESTION;
+typedef struct _DNS_WIRE_RECORD {
+	WORD RecordType;
+	WORD RecordClass;
+	DWORD TimeToLive;
+	WORD DataLength;
+} DNS_WIRE_RECORD, *PDNS_WIRE_RECORD;
+typedef struct {
+	IP4_ADDRESS IpAddress;
+	UCHAR chProtocol;
+	BYTE BitMask[1];
+} DNS_WKS_DATA, *PDNS_WKS_DATA;
+typedef struct _DnsRecord {
+	struct _DnsRecord* pNext;
+	LPTSTR pName;
+	WORD wType;
+	WORD wDataLength;
+	union {
+		DWORD DW;
+		DNS_RECORD_FLAGS S;
+	} Flags;
+	DWORD dwTtl;
+	DWORD dwReserved;
+	union {
+		DNS_A_DATA A;
+		DNS_SOA_DATA SOA, Soa;
+		DNS_PTR_DATA PTR, Ptr, NS, Ns, CNAME, Cname, MB, Mb,
+			     MD, Md, MF, Mf, MG, Mg, MR, Mr;
+		DNS_MINFO_DATA MINFO, Minfo, RP, Rp;
+		DNS_MX_DATA MX, Mx, AFSDB, Afsdb, RT, Rt;
+		DNS_TXT_DATA HINFO, Hinfo, ISDN, Isdn, TXT, Txt, X25;
+		DNS_NULL_DATA Null;
+		DNS_WKS_DATA WKS, Wks;
+		DNS_AAAA_DATA AAAA;
+		DNS_KEY_DATA KEY, Key;
+		DNS_SIG_DATA SIG, Sig;
+		DNS_ATMA_DATA ATMA, Atma;
+		DNS_NXT_DATA NXT, Nxt;
+		DNS_SRV_DATA SRV, Srv;
+		DNS_TKEY_DATA TKEY, Tkey;
+		DNS_TSIG_DATA TSIG, Tsig;
+		DNS_WINS_DATA WINS, Wins;
+		DNS_WINSR_DATA WINSR, WinsR, NBSTAT, Nbstat;
+	} Data;
+} DNS_RECORD, *PDNS_RECORD;
+typedef struct _DnsRRSet {
+	PDNS_RECORD pFirstRR;
+	PDNS_RECORD pLastRR;
+} DNS_RRSET, *PDNS_RRSET;
+
+#endif /* _WINDNS_H */


More information about the wine-patches mailing list