diff options
author | Danny Smith <dannysmith@users.sourceforge.net> | 2004-02-11 19:54:28 +0000 |
---|---|---|
committer | Danny Smith <dannysmith@users.sourceforge.net> | 2004-02-11 19:54:28 +0000 |
commit | efdce2bd3b6233011b5f3eaab8b67fa3eb67658c (patch) | |
tree | 6965d7bc98c0c13e3e7a207e6bfd8eb6b3b0ce02 /winsup/w32api | |
parent | be6f31e7b7e6ae4d1e16b9c22d2d42612f402f78 (diff) | |
download | newlib-efdce2bd3b6233011b5f3eaab8b67fa3eb67658c.zip newlib-efdce2bd3b6233011b5f3eaab8b67fa3eb67658c.tar.gz newlib-efdce2bd3b6233011b5f3eaab8b67fa3eb67658c.tar.bz2 |
2004-02-11 Pierre A. Humblet <Pierre.Humblet@ieee.org>
* include/windns.h: New file.
Diffstat (limited to 'winsup/w32api')
-rw-r--r-- | winsup/w32api/ChangeLog | 4 | ||||
-rw-r--r-- | winsup/w32api/include/windns.h | 363 |
2 files changed, 367 insertions, 0 deletions
diff --git a/winsup/w32api/ChangeLog b/winsup/w32api/ChangeLog index 0551080..0c59f44 100644 --- a/winsup/w32api/ChangeLog +++ b/winsup/w32api/ChangeLog @@ -1,3 +1,7 @@ +2004-02-11 Pierre A. Humblet <Pierre.Humblet@ieee.org> + + * include/windns.h: New file. + 2004-02-11 Danny Smith <dannysmith@users.sourceforge.net> * include/sqlucode.h (SQLGetStmtAttr[AW]): Remove duplicate diff --git a/winsup/w32api/include/windns.h b/winsup/w32api/include/windns.h new file mode 100644 index 0000000..3eb8f24 --- /dev/null +++ b/winsup/w32api/include/windns.h @@ -0,0 +1,363 @@ +#ifndef _WINDNS_H +#define _WINDNS_H +#if __GNUC__ >= 3 +#pragma GCC system_header +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#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_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 + +#ifndef RC_INVOKE +typedef DWORD IP4_ADDRESS; +typedef DWORD DNS_STATUS; +enum { + DNS_TYPE_A=1, + DNS_TYPE_NS, + DNS_TYPE_MD, + DNS_TYPE_MF, + DNS_TYPE_CNAME, + DNS_TYPE_SOA, + DNS_TYPE_MB, + DNS_TYPE_MG, + DNS_TYPE_MR, + DNS_TYPE_NULL, + DNS_TYPE_WKS, + DNS_TYPE_PTR, + DNS_TYPE_HINFO, + DNS_TYPE_MINFO, + DNS_TYPE_MX, + DNS_TYPE_TEXT +}; +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; +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; + +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*); +DNS_STATUS WINAPI DnsExtractRecordsFromMessage_UTF8(PDNS_MESSAGE_BUFFER,WORD,PDNS_RECORD*); +DNS_STATUS WINAPI DnsModifyRecordsInSet_A(PDNS_RECORD,PDNS_RECORD,DWORD,HANDLE,PIP4_ARRAY,PVOID); +DNS_STATUS WINAPI DnsModifyRecordsInSet_W(PDNS_RECORD,PDNS_RECORD,DWORD,HANDLE,PIP4_ARRAY,PVOID); +DNS_STATUS WINAPI DnsModifyRecordsInSet_UTF8(PDNS_RECORD,PDNS_RECORD,DWORD,HANDLE,PIP4_ARRAY,PVOID); +BOOL WINAPI DnsNameCompare_A(LPSTR,LPSTR); +BOOL WINAPI DnsNameCompare_W(LPWSTR,LPWSTR); +DNS_STATUS WINAPI DnsQuery_A(PCSTR,WORD,DWORD,PIP4_ARRAY,PDNS_RECORD*,PVOID*); +DNS_STATUS WINAPI DnsQuery_W(PCWSTR,WORD,DWORD,PIP4_ARRAY,PDNS_RECORD*,PVOID*); +DNS_STATUS WINAPI DnsQuery_UTF8(PCSTR,WORD,DWORD,PIP4_ARRAY,PDNS_RECORD*,PVOID*); +DNS_STATUS WINAPI DnsQueryConfig(DNS_CONFIG_TYPE,DWORD,PWSTR,PVOID,PVOID,PDWORD); +BOOL WINAPI DnsRecordCompare(PDNS_RECORD,PDNS_RECORD); +PDNS_RECORD WINAPI DnsRecordCopyEx(PDNS_RECORD,DNS_CHARSET,DNS_CHARSET); +void WINAPI DnsRecordListFree(PDNS_RECORD,DNS_FREE_TYPE); +BOOL WINAPI DnsRecordSetCompare(PDNS_RECORD,PDNS_RECORD,PDNS_RECORD*,PDNS_RECORD*); +PDNS_RECORD WINAPI DnsRecordSetCopyEx(PDNS_RECORD,DNS_CHARSET,DNS_CHARSET); +PDNS_RECORD WINAPI DnsRecordSetDetach(PDNS_RECORD); +void WINAPI DnsReleaseContextHandle(HANDLE); +DNS_STATUS WINAPI DnsReplaceRecordSetA(PDNS_RECORD,DWORD,HANDLE,PIP4_ARRAY,PVOID); +DNS_STATUS WINAPI DnsReplaceRecordSetW(PDNS_RECORD,DWORD,HANDLE,PIP4_ARRAY,PVOID); +DNS_STATUS WINAPI DnsReplaceRecordSetUTF8(PDNS_RECORD,DWORD,HANDLE,PIP4_ARRAY,PVOID); +DNS_STATUS WINAPI DnsValidateName_A(LPCSTR,DNS_NAME_FORMAT); +DNS_STATUS WINAPI DnsValidateName_W(LPCWSTR, DNS_NAME_FORMAT); +DNS_STATUS WINAPI DnsValidateName_UTF8(LPCSTR,DNS_NAME_FORMAT); +BOOL WINAPI DnsWriteQuestionToBuffer_W(PDNS_MESSAGE_BUFFER,LPDWORD,LPWSTR,WORD,WORD,BOOL); +BOOL WINAPI DnsWriteQuestionToBuffer_UTF8(PDNS_MESSAGE_BUFFER,LPDWORD,LPSTR,WORD,WORD,BOOL); + +#ifdef UNICODE +#define DnsAcquireContextHandle DnsAcquireContextHandle_W +#define DnsModifyRecordsInSet DnsModifyRecordsInSet_W +#define DnsNameCompare DnsNameCompare_W +#define DnsQuery DnsQuery_W +#define DnsReplaceRecordSet DnsReplaceRecordSetW +#define DnsValidateName DnsValidateName_W +#else +#define DnsAcquireContextHandle DnsAcquireContextHandle_A +#define DnsModifyRecordsInSet DnsModifyRecordsInSet_A +#define DnsNameCompare DnsNameCompare_A +#define DnsQuery DnsQuery_A +#define DnsReplaceRecordSet DnsReplaceRecordSetA +#define DnsValidateName DnsValidateName_A +#endif + +#endif /* RC_INVOKED */ + +#ifdef __cplusplus +} +#endif + +#endif /* _WINDNS_H */ |