ReactOS 0.4.16-dev-1946-g52006dd
windns.h File Reference
#include <pshpack1.h>
#include <poppack.h>
Include dependency graph for windns.h:

Go to the source code of this file.

Classes

struct  IP6_ADDRESS
 
struct  _IP4_ARRAY
 
struct  _DNS_HEADER
 
struct  _DNS_MESSAGE_BUFFER
 
struct  DNS_A_DATA
 
struct  _DnsRecordFlags
 
struct  DNS_SOA_DATAA
 
struct  DNS_SOA_DATAW
 
struct  DNS_PTR_DATAA
 
struct  DNS_PTR_DATAW
 
struct  DNS_MINFO_DATAA
 
struct  DNS_MINFO_DATAW
 
struct  DNS_MX_DATAA
 
struct  DNS_MX_DATAW
 
struct  DNS_TXT_DATAA
 
struct  DNS_TXT_DATAW
 
struct  DNS_NULL_DATA
 
struct  DNS_WKS_DATA
 
struct  DNS_AAAA_DATA
 
struct  DNS_KEY_DATA
 
struct  DNS_LOC_DATA
 
struct  DNS_SIG_DATAA
 
struct  DNS_SIG_DATAW
 
struct  DNS_ATMA_DATA
 
struct  DNS_NXT_DATAA
 
struct  DNS_NXT_DATAW
 
struct  DNS_SRV_DATAA
 
struct  DNS_SRV_DATAW
 
struct  DNS_TKEY_DATAA
 
struct  DNS_TKEY_DATAW
 
struct  DNS_TSIG_DATAA
 
struct  DNS_TSIG_DATAW
 
struct  DNS_WINS_DATA
 
struct  DNS_WINSR_DATAA
 
struct  DNS_WINSR_DATAW
 
struct  DNS_OPT_DATA
 
struct  _DnsRecordA
 
struct  _DnsRecordW
 
struct  _DnsRRSet
 
struct  _DnsAddr
 
struct  _DnsAddrArray
 
struct  _DNS_QUERY_RESULT
 
struct  _DNS_QUERY_REQUEST
 
struct  _DNS_QUERY_CANCEL
 
struct  _DNS_CACHE_ENTRY
 
struct  _DNS_SERVICE_BROWSE_REQUEST
 
struct  _DNS_SERVICE_CANCEL
 

Macros

#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)
 
#define DNS_QUERY_STANDARD   0x00000000
 
#define DNS_QUERY_ACCEPT_TRUNCATED_RESPONSE   0x00000001
 
#define DNS_QUERY_USE_TCP_ONLY   0x00000002
 
#define DNS_QUERY_NO_RECURSION   0x00000004
 
#define DNS_QUERY_BYPASS_CACHE   0x00000008
 
#define DNS_QUERY_NO_WIRE_QUERY   0x00000010
 
#define DNS_QUERY_NO_LOCAL_NAME   0x00000020
 
#define DNS_QUERY_NO_HOSTS_FILE   0x00000040
 
#define DNS_QUERY_NO_NETBT   0x00000080
 
#define DNS_QUERY_WIRE_ONLY   0x00000100
 
#define DNS_QUERY_RETURN_MESSAGE   0x00000200
 
#define DNS_QUERY_MULTICAST_ONLY   0x00000400
 
#define DNS_QUERY_NO_MULTICAST   0x00000800
 
#define DNS_QUERY_TREAT_AS_FQDN   0x00001000
 
#define DNS_QUERY_ADDRCONFIG   0x00002000
 
#define DNS_QUERY_DUAL_ADDR   0x00004000
 
#define DNS_QUERY_DONT_RESET_TTL_VALUES   0x00100000
 
#define DNS_QUERY_DISABLE_IDN_ENCODING   0x00200000
 
#define DNS_QUERY_APPEND_MULTILABEL   0x00800000
 
#define DNS_QUERY_DNSSEC_OK   0x01000000
 
#define DNS_QUERY_DNSSEC_CHECKING_DISABLED   0x02000000
 
#define DNS_QUERY_RESERVED   0xff000000
 
#define INLINE_WORD_FLIP(out, in)   { WORD _in = (in); (out) = (_in << 8) | (_in >> 8); }
 
#define INLINE_HTONS(out, in)   INLINE_WORD_FLIP(out, in)
 
#define INLINE_NTOHS(out, in)   INLINE_WORD_FLIP(out, in)
 
#define DNS_BYTE_FLIP_HEADER_COUNTS(header)
 
#define SIZEOF_IP4_ADDRESS   4
 
#define IP4_ADDRESS_STRING_LENGTH   16
 
#define IP6_ADDRESS_STRING_LENGTH   65
 
#define DNS_ADDRESS_STRING_LENGTH   IP6_ADDRESS_STRING_LENGTH
 
#define IP4_ADDRESS_STRING_BUFFER_LENGTH   IP4_ADDRESS_STRING_LENGTH
 
#define IP6_ADDRESS_STRING_BUFFER_LENGTH   IP6_ADDRESS_STRING_LENGTH
 
#define DNS_MAX_NAME_LENGTH   255
 
#define DNS_MAX_LABEL_LENGTH   63
 
#define DNS_MAX_NAME_BUFFER_LENGTH   (DNS_MAX_NAME_LENGTH + 1)
 
#define DNS_MAX_LABEL_BUFFER_LENGTH   (DNS_MAX_LABEL_LENGTH + 1)
 
#define DNS_OPCODE_QUERY   0
 
#define DNS_OPCODE_IQUERY   1
 
#define DNS_OPCODE_SERVER_STATUS   2
 
#define DNS_OPCODE_UNKNOWN   3
 
#define DNS_OPCODE_NOTIFY   4
 
#define DNS_OPCODE_UPDATE   5
 
#define DNS_RCODE_NOERROR   0
 
#define DNS_RCODE_FORMERR   1
 
#define DNS_RCODE_SERVFAIL   2
 
#define DNS_RCODE_NXDOMAIN   3
 
#define DNS_RCODE_NOTIMPL   4
 
#define DNS_RCODE_REFUSED   5
 
#define DNS_RCODE_YXDOMAIN   6
 
#define DNS_RCODE_YXRRSET   7
 
#define DNS_RCODE_NXRRSET   8
 
#define DNS_RCODE_NOTAUTH   9
 
#define DNS_RCODE_NOTZONE   10
 
#define DNS_RCODE_MAX   15
 
#define DNS_RCODE_BADVERS   16
 
#define DNS_RCODE_BADSIG   16
 
#define DNS_RCODE_BADKEY   17
 
#define DNS_RCODE_BADTIME   18
 
#define DNS_RCODE_NO_ERROR   DNS_RCODE_NOERROR
 
#define DNS_RCODE_FORMAT_ERROR   DNS_RCODE_FORMERR
 
#define DNS_RCODE_SERVER_FAILURE   DNS_RCODE_SERVFAIL
 
#define DNS_RCODE_NAME_ERROR   DNS_RCODE_NXDOMAIN
 
#define DNS_RCODE_NOT_IMPLEMENTED   DNS_RCODE_NOTIMPL
 
#define DNS_ATMA_MAX_ADDR_LENGTH   20
 
#define DNS_RRSET_INIT(rrset)
 
#define DNS_RRSET_ADD(rrset, pnewRR)
 
#define DNS_RRSET_TERMINATE(rrset)
 
#define DNS_ADDR_MAX_SOCKADDR_LENGTH   32
 
#define DNS_QUERY_RESULTS_VERSION1   0x1
 
#define DNS_QUERY_REQUEST_VERSION1   0x1
 
#define DnsAcquireContextHandle   WINELIB_NAME_AW(DnsAcquireContextHandle_)
 
#define DnsModifyRecordsInSet   WINELIB_NAME_AW(DnsModifyRecordsInSet_)
 
#define DnsNameCompare   WINELIB_NAME_AW(DnsNameCompare_)
 
#define DnsQuery   WINELIB_NAME_AW(DnsQuery_)
 
#define DnsReplaceRecordSet   WINELIB_NAME_AW(DnsReplaceRecordSet)
 
#define DnsValidateName   WINELIB_NAME_AW(DnsValidateName_)
 

Typedefs

typedef enum _DNS_NAME_FORMAT DNS_NAME_FORMAT
 
typedef enum _DNS_FREE_TYPE DNS_FREE_TYPE
 
typedef enum _DNS_CHARSET DNS_CHARSET
 
typedef enum _DNS_CONFIG_TYPE DNS_CONFIG_TYPE
 
typedef enum _DnsSection DNS_SECTION
 
typedef LONG DNS_STATUS
 
typedef LONGPDNS_STATUS
 
typedef DWORD IP4_ADDRESS
 
typedef DWORDPIP4_ADDRESS
 
typedef struct IP6_ADDRESSPIP6_ADDRESS
 
typedef struct IP6_ADDRESS DNS_IP6_ADDRESS
 
typedef struct IP6_ADDRESSPDNS_IP6_ADDRESS
 
typedef struct _IP4_ARRAY IP4_ARRAY
 
typedef struct _IP4_ARRAYPIP4_ARRAY
 
typedef struct _DNS_HEADER DNS_HEADER
 
typedef struct _DNS_HEADERPDNS_HEADER
 
typedef struct _DNS_MESSAGE_BUFFER DNS_MESSAGE_BUFFER
 
typedef struct _DNS_MESSAGE_BUFFERPDNS_MESSAGE_BUFFER
 
typedef struct DNS_A_DATAPDNS_A_DATA
 
typedef struct _DnsRecordFlags DNS_RECORD_FLAGS
 
typedef struct DNS_SOA_DATAAPDNS_SOA_DATAA
 
typedef struct DNS_SOA_DATAWPDNS_SOA_DATAW
 
typedef struct DNS_PTR_DATAAPDNS_PTR_DATAA
 
typedef struct DNS_PTR_DATAWPDNS_PTR_DATAW
 
typedef struct DNS_MINFO_DATAAPDNS_MINFO_DATAA
 
typedef struct DNS_MINFO_DATAWPDNS_MINFO_DATAW
 
typedef struct DNS_MX_DATAAPDNS_MX_DATAA
 
typedef struct DNS_MX_DATAWPDNS_MX_DATAW
 
typedef struct DNS_TXT_DATAAPDNS_TXT_DATAA
 
typedef struct DNS_TXT_DATAWPDNS_TXT_DATAW
 
typedef struct DNS_NULL_DATAPDNS_NULL_DATA
 
typedef struct DNS_WKS_DATAPDNS_WKS_DATA
 
typedef struct DNS_AAAA_DATAPDNS_AAAA_DATA
 
typedef struct DNS_KEY_DATAPDNS_KEY_DATA
 
typedef struct DNS_LOC_DATAPDNS_LOC_DATA
 
typedef struct DNS_SIG_DATAAPDNS_SIG_DATAA
 
typedef struct DNS_SIG_DATAWPDNS_SIG_DATAW
 
typedef struct DNS_ATMA_DATAPDNS_ATMA_DATA
 
typedef struct DNS_NXT_DATAAPDNS_NXT_DATAA
 
typedef struct DNS_NXT_DATAWPDNS_NXT_DATAW
 
typedef struct DNS_SRV_DATAAPDNS_SRV_DATAA
 
typedef struct DNS_SRV_DATAWPDNS_SRV_DATAW
 
typedef struct DNS_TKEY_DATAAPDNS_TKEY_DATAA
 
typedef struct DNS_TKEY_DATAWPDNS_TKEY_DATAW
 
typedef struct DNS_TSIG_DATAAPDNS_TSIG_DATAA
 
typedef struct DNS_TSIG_DATAWPDNS_TSIG_DATAW
 
typedef struct DNS_WINS_DATAPDNS_WINS_DATA
 
typedef struct DNS_WINSR_DATAAPDNS_WINSR_DATAA
 
typedef struct DNS_WINSR_DATAWPDNS_WINSR_DATAW
 
typedef struct DNS_OPT_DATAPDNS_OPT_DATA
 
typedef struct _DnsRecordA DNS_RECORDA
 
typedef struct _DnsRecordAPDNS_RECORDA
 
typedef struct _DnsRecordW DNS_RECORDW
 
typedef struct _DnsRecordWPDNS_RECORDW
 
typedef DNS_RECORDA DNS_RECORD
 
typedef PDNS_RECORDA PDNS_RECORD
 
typedef struct _DnsRRSet DNS_RRSET
 
typedef struct _DnsRRSetPDNS_RRSET
 
typedef struct _DnsAddr DNS_ADDR
 
typedef struct _DnsAddrPDNS_ADDR
 
typedef struct _DnsAddrArray DNS_ADDR_ARRAY
 
typedef struct _DnsAddrArrayPDNS_ADDR_ARRAY
 
typedef struct _DNS_QUERY_RESULT DNS_QUERY_RESULT
 
typedef struct _DNS_QUERY_RESULTPDNS_QUERY_RESULT
 
typedef void WINAPI DNS_QUERY_COMPLETION_ROUTINE(void *, DNS_QUERY_RESULT *)
 
typedef DNS_QUERY_COMPLETION_ROUTINEPDNS_QUERY_COMPLETION_ROUTINE
 
typedef struct _DNS_QUERY_REQUEST DNS_QUERY_REQUEST
 
typedef struct _DNS_QUERY_REQUESTPDNS_QUERY_REQUEST
 
typedef struct _DNS_QUERY_CANCEL DNS_QUERY_CANCEL
 
typedef struct _DNS_QUERY_CANCELPDNS_QUERY_CANCEL
 
typedef struct _DNS_CACHE_ENTRY DNS_CACHE_ENTRY
 
typedef struct _DNS_CACHE_ENTRYPDNS_CACHE_ENTRY
 
typedef void WINAPI DNS_SERVICE_BROWSE_CALLBACK(DWORD, void *, PDNS_RECORD)
 
typedef DNS_SERVICE_BROWSE_CALLBACKPDNS_SERVICE_BROWSE_CALLBACK
 
typedef struct _DNS_SERVICE_BROWSE_REQUEST DNS_SERVICE_BROWSE_REQUEST
 
typedef struct _DNS_SERVICE_BROWSE_REQUESTPDNS_SERVICE_BROWSE_REQUEST
 
typedef struct _DNS_SERVICE_CANCEL DNS_SERVICE_CANCEL
 
typedef struct _DNS_SERVICE_CANCELPDNS_SERVICE_CANCEL
 

Enumerations

enum  _DNS_NAME_FORMAT {
  DnsNameDomain , DnsNameDomainLabel , DnsNameHostnameFull , DnsNameHostnameLabel ,
  DnsNameWildcard , DnsNameSrvRecord , DnsNameDomain , DnsNameDomainLabel ,
  DnsNameHostnameFull , DnsNameHostnameLabel , DnsNameWildcard , DnsNameSrvRecord
}
 
enum  _DNS_FREE_TYPE { DnsFreeFlat , DnsFreeRecordList , DnsFreeParsedMessageFields }
 
enum  _DNS_CHARSET {
  DnsCharSetUnknown , DnsCharSetUnicode , DnsCharSetUtf8 , DnsCharSetAnsi ,
  DnsCharSetUnknown , DnsCharSetUnicode , DnsCharSetUtf8 , DnsCharSetAnsi
}
 
enum  _DNS_CONFIG_TYPE {
  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 , DnsConfigDnsServersUnspec = 4144 , DnsConfigDnsServersIpv4 ,
  DnsConfigDnsServersIpv6
}
 
enum  _DnsSection { DnsSectionQuestion , DnsSectionAnswer , DnsSectionAuthority , DnsSectionAddtional }
 

Functions

DNS_STATUS WINAPI DnsAcquireContextHandle_A (DWORD, PVOID, PHANDLE)
 
DNS_STATUS WINAPI DnsAcquireContextHandle_W (DWORD, PVOID, PHANDLE)
 
DNS_STATUS WINAPI DnsExtractRecordsFromMessage_W (PDNS_MESSAGE_BUFFER, WORD, PDNS_RECORDW *)
 
DNS_STATUS WINAPI DnsExtractRecordsFromMessage_UTF8 (PDNS_MESSAGE_BUFFER, WORD, PDNS_RECORDA *)
 
VOID WINAPI DnsFree (PVOID, DNS_FREE_TYPE)
 
DNS_STATUS WINAPI DnsModifyRecordsInSet_A (PDNS_RECORDA, PDNS_RECORDA, DWORD, HANDLE, PVOID, PVOID)
 
DNS_STATUS WINAPI DnsModifyRecordsInSet_W (PDNS_RECORDW, PDNS_RECORDW, DWORD, HANDLE, PVOID, PVOID)
 
DNS_STATUS WINAPI DnsModifyRecordsInSet_UTF8 (PDNS_RECORDA, PDNS_RECORDA, DWORD, HANDLE, PVOID, PVOID)
 
BOOL WINAPI DnsNameCompare_A (PCSTR, PCSTR)
 
BOOL WINAPI DnsNameCompare_W (PCWSTR, PCWSTR)
 
DNS_STATUS WINAPI DnsQuery_A (PCSTR, WORD, DWORD, PVOID, PDNS_RECORDA *, PVOID *)
 
DNS_STATUS WINAPI DnsQuery_W (PCWSTR, WORD, DWORD, PVOID, PDNS_RECORDW *, PVOID *)
 
DNS_STATUS WINAPI DnsQuery_UTF8 (PCSTR, WORD, DWORD, PVOID, PDNS_RECORDA *, PVOID *)
 
DNS_STATUS WINAPI DnsQueryEx (DNS_QUERY_REQUEST *, DNS_QUERY_RESULT *, DNS_QUERY_CANCEL *)
 
DNS_STATUS WINAPI DnsCancelQuery (DNS_QUERY_CANCEL *)
 
DNS_STATUS WINAPI DnsQueryConfig (DNS_CONFIG_TYPE, DWORD, PCWSTR, 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_RECORDA, DWORD, HANDLE, PVOID, PVOID)
 
DNS_STATUS WINAPI DnsReplaceRecordSetW (PDNS_RECORDW, DWORD, HANDLE, PVOID, PVOID)
 
DNS_STATUS WINAPI DnsReplaceRecordSetUTF8 (PDNS_RECORDA, DWORD, HANDLE, PVOID, PVOID)
 
DNS_STATUS WINAPI DnsServiceBrowse (PDNS_SERVICE_BROWSE_REQUEST, PDNS_SERVICE_CANCEL)
 
DNS_STATUS WINAPI DnsValidateName_A (PCSTR, DNS_NAME_FORMAT)
 
DNS_STATUS WINAPI DnsValidateName_W (PCWSTR, DNS_NAME_FORMAT)
 
DNS_STATUS WINAPI DnsValidateName_UTF8 (PCSTR, DNS_NAME_FORMAT)
 
BOOL WINAPI DnsWriteQuestionToBuffer_W (PDNS_MESSAGE_BUFFER, PDWORD, PCWSTR, WORD, WORD, BOOL)
 
BOOL WINAPI DnsWriteQuestionToBuffer_UTF8 (PDNS_MESSAGE_BUFFER, PDWORD, PCSTR, WORD, WORD, BOOL)
 
BOOL WINAPI DnsGetCacheDataTable (PDNS_CACHE_ENTRY *)
 

Macro Definition Documentation

◆ DNS_ADDR_MAX_SOCKADDR_LENGTH

#define DNS_ADDR_MAX_SOCKADDR_LENGTH   32

Definition at line 693 of file windns.h.

◆ DNS_ADDRESS_STRING_LENGTH

#define DNS_ADDRESS_STRING_LENGTH   IP6_ADDRESS_STRING_LENGTH

Definition at line 194 of file windns.h.

◆ DNS_ATMA_MAX_ADDR_LENGTH

#define DNS_ATMA_MAX_ADDR_LENGTH   20

Definition at line 435 of file windns.h.

◆ DNS_BYTE_FLIP_HEADER_COUNTS

#define DNS_BYTE_FLIP_HEADER_COUNTS (   header)
Value:
{ \
DNS_HEADER *_head = (header); \
INLINE_HTONS( _head->Xid, _head->Xid ); \
INLINE_HTONS( _head->QuestionCount, _head->QuestionCount ); \
INLINE_HTONS( _head->AnswerCount, _head->AnswerCount ); \
INLINE_HTONS( _head->NameServerCount, _head->NameServerCount ); \
INLINE_HTONS( _head->AdditionalCount, _head->AdditionalCount ); }
WORD AdditionalCount
Definition: windns.h:215
WORD QuestionCount
Definition: windns.h:212
WORD AnswerCount
Definition: windns.h:213
WORD Xid
Definition: windns.h:201
WORD NameServerCount
Definition: windns.h:214

Definition at line 115 of file windns.h.

◆ DNS_MAX_LABEL_BUFFER_LENGTH

#define DNS_MAX_LABEL_BUFFER_LENGTH   (DNS_MAX_LABEL_LENGTH + 1)

Definition at line 201 of file windns.h.

◆ DNS_MAX_LABEL_LENGTH

#define DNS_MAX_LABEL_LENGTH   63

Definition at line 199 of file windns.h.

◆ DNS_MAX_NAME_BUFFER_LENGTH

#define DNS_MAX_NAME_BUFFER_LENGTH   (DNS_MAX_NAME_LENGTH + 1)

Definition at line 200 of file windns.h.

◆ DNS_MAX_NAME_LENGTH

#define DNS_MAX_NAME_LENGTH   255

Definition at line 198 of file windns.h.

◆ DNS_OPCODE_IQUERY

#define DNS_OPCODE_IQUERY   1

Definition at line 210 of file windns.h.

◆ DNS_OPCODE_NOTIFY

#define DNS_OPCODE_NOTIFY   4

Definition at line 213 of file windns.h.

◆ DNS_OPCODE_QUERY

#define DNS_OPCODE_QUERY   0

Definition at line 209 of file windns.h.

◆ DNS_OPCODE_SERVER_STATUS

#define DNS_OPCODE_SERVER_STATUS   2

Definition at line 211 of file windns.h.

◆ DNS_OPCODE_UNKNOWN

#define DNS_OPCODE_UNKNOWN   3

Definition at line 212 of file windns.h.

◆ DNS_OPCODE_UPDATE

#define DNS_OPCODE_UPDATE   5

Definition at line 214 of file windns.h.

◆ DNS_QUERY_ACCEPT_TRUNCATED_RESPONSE

#define DNS_QUERY_ACCEPT_TRUNCATED_RESPONSE   0x00000001

Definition at line 89 of file windns.h.

◆ DNS_QUERY_ADDRCONFIG

#define DNS_QUERY_ADDRCONFIG   0x00002000

Definition at line 102 of file windns.h.

◆ DNS_QUERY_APPEND_MULTILABEL

#define DNS_QUERY_APPEND_MULTILABEL   0x00800000

Definition at line 106 of file windns.h.

◆ DNS_QUERY_BYPASS_CACHE

#define DNS_QUERY_BYPASS_CACHE   0x00000008

Definition at line 92 of file windns.h.

◆ DNS_QUERY_DISABLE_IDN_ENCODING

#define DNS_QUERY_DISABLE_IDN_ENCODING   0x00200000

Definition at line 105 of file windns.h.

◆ DNS_QUERY_DNSSEC_CHECKING_DISABLED

#define DNS_QUERY_DNSSEC_CHECKING_DISABLED   0x02000000

Definition at line 108 of file windns.h.

◆ DNS_QUERY_DNSSEC_OK

#define DNS_QUERY_DNSSEC_OK   0x01000000

Definition at line 107 of file windns.h.

◆ DNS_QUERY_DONT_RESET_TTL_VALUES

#define DNS_QUERY_DONT_RESET_TTL_VALUES   0x00100000

Definition at line 104 of file windns.h.

◆ DNS_QUERY_DUAL_ADDR

#define DNS_QUERY_DUAL_ADDR   0x00004000

Definition at line 103 of file windns.h.

◆ DNS_QUERY_MULTICAST_ONLY

#define DNS_QUERY_MULTICAST_ONLY   0x00000400

Definition at line 99 of file windns.h.

◆ DNS_QUERY_NO_HOSTS_FILE

#define DNS_QUERY_NO_HOSTS_FILE   0x00000040

Definition at line 95 of file windns.h.

◆ DNS_QUERY_NO_LOCAL_NAME

#define DNS_QUERY_NO_LOCAL_NAME   0x00000020

Definition at line 94 of file windns.h.

◆ DNS_QUERY_NO_MULTICAST

#define DNS_QUERY_NO_MULTICAST   0x00000800

Definition at line 100 of file windns.h.

◆ DNS_QUERY_NO_NETBT

#define DNS_QUERY_NO_NETBT   0x00000080

Definition at line 96 of file windns.h.

◆ DNS_QUERY_NO_RECURSION

#define DNS_QUERY_NO_RECURSION   0x00000004

Definition at line 91 of file windns.h.

◆ DNS_QUERY_NO_WIRE_QUERY

#define DNS_QUERY_NO_WIRE_QUERY   0x00000010

Definition at line 93 of file windns.h.

◆ DNS_QUERY_REQUEST_VERSION1

#define DNS_QUERY_REQUEST_VERSION1   0x1

Definition at line 735 of file windns.h.

◆ DNS_QUERY_RESERVED

#define DNS_QUERY_RESERVED   0xff000000

Definition at line 109 of file windns.h.

◆ DNS_QUERY_RESULTS_VERSION1

#define DNS_QUERY_RESULTS_VERSION1   0x1

Definition at line 721 of file windns.h.

◆ DNS_QUERY_RETURN_MESSAGE

#define DNS_QUERY_RETURN_MESSAGE   0x00000200

Definition at line 98 of file windns.h.

◆ DNS_QUERY_STANDARD

#define DNS_QUERY_STANDARD   0x00000000

Definition at line 88 of file windns.h.

◆ DNS_QUERY_TREAT_AS_FQDN

#define DNS_QUERY_TREAT_AS_FQDN   0x00001000

Definition at line 101 of file windns.h.

◆ DNS_QUERY_USE_TCP_ONLY

#define DNS_QUERY_USE_TCP_ONLY   0x00000002

Definition at line 90 of file windns.h.

◆ DNS_QUERY_WIRE_ONLY

#define DNS_QUERY_WIRE_ONLY   0x00000100

Definition at line 97 of file windns.h.

◆ DNS_RCODE_BADKEY

#define DNS_RCODE_BADKEY   17

Definition at line 230 of file windns.h.

◆ DNS_RCODE_BADSIG

#define DNS_RCODE_BADSIG   16

Definition at line 229 of file windns.h.

◆ DNS_RCODE_BADTIME

#define DNS_RCODE_BADTIME   18

Definition at line 231 of file windns.h.

◆ DNS_RCODE_BADVERS

#define DNS_RCODE_BADVERS   16

Definition at line 228 of file windns.h.

◆ DNS_RCODE_FORMAT_ERROR

#define DNS_RCODE_FORMAT_ERROR   DNS_RCODE_FORMERR

Definition at line 234 of file windns.h.

◆ DNS_RCODE_FORMERR

#define DNS_RCODE_FORMERR   1

Definition at line 217 of file windns.h.

◆ DNS_RCODE_MAX

#define DNS_RCODE_MAX   15

Definition at line 227 of file windns.h.

◆ DNS_RCODE_NAME_ERROR

#define DNS_RCODE_NAME_ERROR   DNS_RCODE_NXDOMAIN

Definition at line 236 of file windns.h.

◆ DNS_RCODE_NO_ERROR

#define DNS_RCODE_NO_ERROR   DNS_RCODE_NOERROR

Definition at line 233 of file windns.h.

◆ DNS_RCODE_NOERROR

#define DNS_RCODE_NOERROR   0

Definition at line 216 of file windns.h.

◆ DNS_RCODE_NOT_IMPLEMENTED

#define DNS_RCODE_NOT_IMPLEMENTED   DNS_RCODE_NOTIMPL

Definition at line 237 of file windns.h.

◆ DNS_RCODE_NOTAUTH

#define DNS_RCODE_NOTAUTH   9

Definition at line 225 of file windns.h.

◆ DNS_RCODE_NOTIMPL

#define DNS_RCODE_NOTIMPL   4

Definition at line 220 of file windns.h.

◆ DNS_RCODE_NOTZONE

#define DNS_RCODE_NOTZONE   10

Definition at line 226 of file windns.h.

◆ DNS_RCODE_NXDOMAIN

#define DNS_RCODE_NXDOMAIN   3

Definition at line 219 of file windns.h.

◆ DNS_RCODE_NXRRSET

#define DNS_RCODE_NXRRSET   8

Definition at line 224 of file windns.h.

◆ DNS_RCODE_REFUSED

#define DNS_RCODE_REFUSED   5

Definition at line 221 of file windns.h.

◆ DNS_RCODE_SERVER_FAILURE

#define DNS_RCODE_SERVER_FAILURE   DNS_RCODE_SERVFAIL

Definition at line 235 of file windns.h.

◆ DNS_RCODE_SERVFAIL

#define DNS_RCODE_SERVFAIL   2

Definition at line 218 of file windns.h.

◆ DNS_RCODE_YXDOMAIN

#define DNS_RCODE_YXDOMAIN   6

Definition at line 222 of file windns.h.

◆ DNS_RCODE_YXRRSET

#define DNS_RCODE_YXRRSET   7

Definition at line 223 of file windns.h.

◆ DNS_RRSET_ADD

#define DNS_RRSET_ADD (   rrset,
  pnewRR 
)
Value:
{ \
PDNS_RRSET _prrset = &(rrset); \
PDNS_RECORD _prrnew = (pnewRR); \
_prrset->pLastRR->pNext = _prrnew; \
_prrset->pLastRR = _prrnew; \
}
PDNS_RECORD pLastRR
Definition: windns.h:641
struct _DnsRecordA * pNext
Definition: windns.h:565

Definition at line 679 of file windns.h.

◆ DNS_RRSET_INIT

#define DNS_RRSET_INIT (   rrset)
Value:
{ \
PDNS_RRSET _prrset = &(rrset); \
_prrset->pFirstRR = NULL; \
_prrset->pLastRR = (PDNS_RECORD) &_prrset->pFirstRR; \
}
#define NULL
Definition: types.h:112
#define PDNS_RECORD
Definition: windns.h:636
PDNS_RECORD pFirstRR
Definition: windns.h:640

Definition at line 672 of file windns.h.

◆ DNS_RRSET_TERMINATE

#define DNS_RRSET_TERMINATE (   rrset)
Value:
{ \
PDNS_RRSET _prrset = &(rrset); \
_prrset->pLastRR->pNext = NULL; \
}

Definition at line 687 of file windns.h.

◆ DNS_TYPE_A

#define DNS_TYPE_A   0x0001

Definition at line 29 of file windns.h.

◆ DNS_TYPE_A6

#define DNS_TYPE_A6   0x0026

Definition at line 66 of file windns.h.

◆ DNS_TYPE_AAAA

#define DNS_TYPE_AAAA   0x001c

Definition at line 56 of file windns.h.

◆ DNS_TYPE_ADDRS

#define DNS_TYPE_ADDRS   0x00f8

Definition at line 74 of file windns.h.

◆ DNS_TYPE_AFSDB

#define DNS_TYPE_AFSDB   0x0012

Definition at line 46 of file windns.h.

◆ DNS_TYPE_ALL

#define DNS_TYPE_ALL   0x00ff

Definition at line 81 of file windns.h.

◆ DNS_TYPE_ANY

#define DNS_TYPE_ANY   0x00ff

Definition at line 82 of file windns.h.

◆ DNS_TYPE_ATMA

#define DNS_TYPE_ATMA   0x0022

Definition at line 62 of file windns.h.

◆ DNS_TYPE_AXFR

#define DNS_TYPE_AXFR   0x00fc

Definition at line 78 of file windns.h.

◆ DNS_TYPE_CERT

#define DNS_TYPE_CERT   0x0025

Definition at line 65 of file windns.h.

◆ DNS_TYPE_CNAME

#define DNS_TYPE_CNAME   0x0005

Definition at line 33 of file windns.h.

◆ DNS_TYPE_DNAME

#define DNS_TYPE_DNAME   0x0027

Definition at line 67 of file windns.h.

◆ DNS_TYPE_EID

#define DNS_TYPE_EID   0x001f

Definition at line 59 of file windns.h.

◆ DNS_TYPE_GID

#define DNS_TYPE_GID   0x0066

Definition at line 72 of file windns.h.

◆ DNS_TYPE_GPOS

#define DNS_TYPE_GPOS   0x001b

Definition at line 55 of file windns.h.

◆ DNS_TYPE_HINFO

#define DNS_TYPE_HINFO   0x000d

Definition at line 41 of file windns.h.

◆ DNS_TYPE_ISDN

#define DNS_TYPE_ISDN   0x0014

Definition at line 48 of file windns.h.

◆ DNS_TYPE_IXFR

#define DNS_TYPE_IXFR   0x00fb

Definition at line 77 of file windns.h.

◆ DNS_TYPE_KEY

#define DNS_TYPE_KEY   0x0019

Definition at line 53 of file windns.h.

◆ DNS_TYPE_KX

#define DNS_TYPE_KX   0x0024

Definition at line 64 of file windns.h.

◆ DNS_TYPE_LOC

#define DNS_TYPE_LOC   0x001d

Definition at line 57 of file windns.h.

◆ DNS_TYPE_MAILA

#define DNS_TYPE_MAILA   0x00fe

Definition at line 80 of file windns.h.

◆ DNS_TYPE_MAILB

#define DNS_TYPE_MAILB   0x00fd

Definition at line 79 of file windns.h.

◆ DNS_TYPE_MB

#define DNS_TYPE_MB   0x0007

Definition at line 35 of file windns.h.

◆ DNS_TYPE_MD

#define DNS_TYPE_MD   0x0003

Definition at line 31 of file windns.h.

◆ DNS_TYPE_MF

#define DNS_TYPE_MF   0x0004

Definition at line 32 of file windns.h.

◆ DNS_TYPE_MG

#define DNS_TYPE_MG   0x0008

Definition at line 36 of file windns.h.

◆ DNS_TYPE_MINFO

#define DNS_TYPE_MINFO   0x000e

Definition at line 42 of file windns.h.

◆ DNS_TYPE_MR

#define DNS_TYPE_MR   0x0009

Definition at line 37 of file windns.h.

◆ DNS_TYPE_MX

#define DNS_TYPE_MX   0x000f

Definition at line 43 of file windns.h.

◆ DNS_TYPE_NAPTR

#define DNS_TYPE_NAPTR   0x0023

Definition at line 63 of file windns.h.

◆ DNS_TYPE_NBSTAT

#define DNS_TYPE_NBSTAT   (DNS_TYPE_WINSR)

Definition at line 86 of file windns.h.

◆ DNS_TYPE_NIMLOC

#define DNS_TYPE_NIMLOC   0x0020

Definition at line 60 of file windns.h.

◆ DNS_TYPE_NS

#define DNS_TYPE_NS   0x0002

Definition at line 30 of file windns.h.

◆ DNS_TYPE_NSAP

#define DNS_TYPE_NSAP   0x0016

Definition at line 50 of file windns.h.

◆ DNS_TYPE_NSAPPTR

#define DNS_TYPE_NSAPPTR   0x0017

Definition at line 51 of file windns.h.

◆ DNS_TYPE_NULL

#define DNS_TYPE_NULL   0x000a

Definition at line 38 of file windns.h.

◆ DNS_TYPE_NXT

#define DNS_TYPE_NXT   0x001e

Definition at line 58 of file windns.h.

◆ DNS_TYPE_OPT

#define DNS_TYPE_OPT   0x0029

Definition at line 69 of file windns.h.

◆ DNS_TYPE_PTR

#define DNS_TYPE_PTR   0x000c

Definition at line 40 of file windns.h.

◆ DNS_TYPE_PX

#define DNS_TYPE_PX   0x001a

Definition at line 54 of file windns.h.

◆ DNS_TYPE_RP

#define DNS_TYPE_RP   0x0011

Definition at line 45 of file windns.h.

◆ DNS_TYPE_RT

#define DNS_TYPE_RT   0x0015

Definition at line 49 of file windns.h.

◆ DNS_TYPE_SIG

#define DNS_TYPE_SIG   0x0018

Definition at line 52 of file windns.h.

◆ DNS_TYPE_SINK

#define DNS_TYPE_SINK   0x0028

Definition at line 68 of file windns.h.

◆ DNS_TYPE_SOA

#define DNS_TYPE_SOA   0x0006

Definition at line 34 of file windns.h.

◆ DNS_TYPE_SRV

#define DNS_TYPE_SRV   0x0021

Definition at line 61 of file windns.h.

◆ DNS_TYPE_TEXT

#define DNS_TYPE_TEXT   0x0010

Definition at line 44 of file windns.h.

◆ DNS_TYPE_TKEY

#define DNS_TYPE_TKEY   0x00f9

Definition at line 75 of file windns.h.

◆ DNS_TYPE_TSIG

#define DNS_TYPE_TSIG   0x00fa

Definition at line 76 of file windns.h.

◆ DNS_TYPE_UID

#define DNS_TYPE_UID   0x0065

Definition at line 71 of file windns.h.

◆ DNS_TYPE_UINFO

#define DNS_TYPE_UINFO   0x0064

Definition at line 70 of file windns.h.

◆ DNS_TYPE_UNSPEC

#define DNS_TYPE_UNSPEC   0x0067

Definition at line 73 of file windns.h.

◆ DNS_TYPE_WINS

#define DNS_TYPE_WINS   0xff01

Definition at line 84 of file windns.h.

◆ DNS_TYPE_WINSR

#define DNS_TYPE_WINSR   0xff02

Definition at line 85 of file windns.h.

◆ DNS_TYPE_WKS

#define DNS_TYPE_WKS   0x000b

Definition at line 39 of file windns.h.

◆ DNS_TYPE_X25

#define DNS_TYPE_X25   0x0013

Definition at line 47 of file windns.h.

◆ DNS_TYPE_ZERO

#define DNS_TYPE_ZERO   0x0000

Definition at line 28 of file windns.h.

◆ DnsAcquireContextHandle

#define DnsAcquireContextHandle   WINELIB_NAME_AW(DnsAcquireContextHandle_)

Definition at line 786 of file windns.h.

◆ DnsModifyRecordsInSet

#define DnsModifyRecordsInSet   WINELIB_NAME_AW(DnsModifyRecordsInSet_)

Definition at line 793 of file windns.h.

◆ DnsNameCompare

#define DnsNameCompare   WINELIB_NAME_AW(DnsNameCompare_)

Definition at line 796 of file windns.h.

◆ DnsQuery

#define DnsQuery   WINELIB_NAME_AW(DnsQuery_)

Definition at line 800 of file windns.h.

◆ DnsReplaceRecordSet

#define DnsReplaceRecordSet   WINELIB_NAME_AW(DnsReplaceRecordSet)

Definition at line 814 of file windns.h.

◆ DnsValidateName

#define DnsValidateName   WINELIB_NAME_AW(DnsValidateName_)

Definition at line 819 of file windns.h.

◆ INLINE_HTONS

#define INLINE_HTONS (   out,
  in 
)    INLINE_WORD_FLIP(out, in)

Definition at line 112 of file windns.h.

◆ INLINE_NTOHS

#define INLINE_NTOHS (   out,
  in 
)    INLINE_WORD_FLIP(out, in)

Definition at line 113 of file windns.h.

◆ INLINE_WORD_FLIP

#define INLINE_WORD_FLIP (   out,
  in 
)    { WORD _in = (in); (out) = (_in << 8) | (_in >> 8); }

Definition at line 111 of file windns.h.

◆ IP4_ADDRESS_STRING_BUFFER_LENGTH

#define IP4_ADDRESS_STRING_BUFFER_LENGTH   IP4_ADDRESS_STRING_LENGTH

Definition at line 195 of file windns.h.

◆ IP4_ADDRESS_STRING_LENGTH

#define IP4_ADDRESS_STRING_LENGTH   16

Definition at line 192 of file windns.h.

◆ IP6_ADDRESS_STRING_BUFFER_LENGTH

#define IP6_ADDRESS_STRING_BUFFER_LENGTH   IP6_ADDRESS_STRING_LENGTH

Definition at line 196 of file windns.h.

◆ IP6_ADDRESS_STRING_LENGTH

#define IP6_ADDRESS_STRING_LENGTH   65

Definition at line 193 of file windns.h.

◆ SIZEOF_IP4_ADDRESS

#define SIZEOF_IP4_ADDRESS   4

Definition at line 191 of file windns.h.

Typedef Documentation

◆ DNS_ADDR

◆ DNS_ADDR_ARRAY

◆ DNS_CACHE_ENTRY

◆ DNS_CHARSET

◆ DNS_CONFIG_TYPE

◆ DNS_FREE_TYPE

◆ DNS_HEADER

◆ DNS_IP6_ADDRESS

◆ DNS_MESSAGE_BUFFER

◆ DNS_NAME_FORMAT

◆ DNS_QUERY_CANCEL

◆ DNS_QUERY_COMPLETION_ROUTINE

typedef void WINAPI DNS_QUERY_COMPLETION_ROUTINE(void *, DNS_QUERY_RESULT *)

Definition at line 732 of file windns.h.

◆ DNS_QUERY_REQUEST

◆ DNS_QUERY_RESULT

◆ DNS_RECORD

Definition at line 662 of file windns.h.

◆ DNS_RECORD_FLAGS

◆ DNS_RECORDA

◆ DNS_RECORDW

◆ DNS_RRSET

◆ DNS_SECTION

◆ DNS_SERVICE_BROWSE_CALLBACK

typedef void WINAPI DNS_SERVICE_BROWSE_CALLBACK(DWORD, void *, PDNS_RECORD)

Definition at line 763 of file windns.h.

◆ DNS_SERVICE_BROWSE_REQUEST

◆ DNS_SERVICE_CANCEL

◆ DNS_STATUS

typedef LONG DNS_STATUS

Definition at line 183 of file windns.h.

◆ IP4_ADDRESS

typedef DWORD IP4_ADDRESS

Definition at line 184 of file windns.h.

◆ IP4_ARRAY

◆ PDNS_A_DATA

◆ PDNS_AAAA_DATA

◆ PDNS_ADDR

◆ PDNS_ADDR_ARRAY

◆ PDNS_ATMA_DATA

◆ PDNS_CACHE_ENTRY

◆ PDNS_HEADER

◆ PDNS_IP6_ADDRESS

◆ PDNS_KEY_DATA

◆ PDNS_LOC_DATA

◆ PDNS_MESSAGE_BUFFER

◆ PDNS_MINFO_DATAA

◆ PDNS_MINFO_DATAW

◆ PDNS_MX_DATAA

◆ PDNS_MX_DATAW

◆ PDNS_NULL_DATA

◆ PDNS_NXT_DATAA

◆ PDNS_NXT_DATAW

◆ PDNS_OPT_DATA

◆ PDNS_PTR_DATAA

◆ PDNS_PTR_DATAW

◆ PDNS_QUERY_CANCEL

◆ PDNS_QUERY_COMPLETION_ROUTINE

◆ PDNS_QUERY_REQUEST

◆ PDNS_QUERY_RESULT

◆ PDNS_RECORD

Definition at line 663 of file windns.h.

◆ PDNS_RECORDA

◆ PDNS_RECORDW

◆ PDNS_RRSET

◆ PDNS_SERVICE_BROWSE_CALLBACK

◆ PDNS_SERVICE_BROWSE_REQUEST

◆ PDNS_SERVICE_CANCEL

◆ PDNS_SIG_DATAA

◆ PDNS_SIG_DATAW

◆ PDNS_SOA_DATAA

◆ PDNS_SOA_DATAW

◆ PDNS_SRV_DATAA

◆ PDNS_SRV_DATAW

◆ PDNS_STATUS

typedef LONG * PDNS_STATUS

Definition at line 183 of file windns.h.

◆ PDNS_TKEY_DATAA

◆ PDNS_TKEY_DATAW

◆ PDNS_TSIG_DATAA

◆ PDNS_TSIG_DATAW

◆ PDNS_TXT_DATAA

◆ PDNS_TXT_DATAW

◆ PDNS_WINS_DATA

◆ PDNS_WINSR_DATAA

◆ PDNS_WINSR_DATAW

◆ PDNS_WKS_DATA

◆ PIP4_ADDRESS

typedef DWORD * PIP4_ADDRESS

Definition at line 184 of file windns.h.

◆ PIP4_ARRAY

◆ PIP6_ADDRESS

Enumeration Type Documentation

◆ _DNS_CHARSET

Enumerator
DnsCharSetUnknown 
DnsCharSetUnicode 
DnsCharSetUtf8 
DnsCharSetAnsi 
DnsCharSetUnknown 
DnsCharSetUnicode 
DnsCharSetUtf8 
DnsCharSetAnsi 

Definition at line 140 of file windns.h.

141{
@ DnsCharSetUnicode
Definition: windns.h:111
@ DnsCharSetUnknown
Definition: windns.h:110
@ DnsCharSetUtf8
Definition: windns.h:112
@ DnsCharSetAnsi
Definition: windns.h:113
enum _DNS_CHARSET DNS_CHARSET

◆ _DNS_CONFIG_TYPE

Enumerator
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 
DnsConfigDnsServersUnspec 
DnsConfigDnsServersIpv4 
DnsConfigDnsServersIpv6 

Definition at line 148 of file windns.h.

149{
168
169 /* These are undocumented and return a DNS_ADDR_ARRAY */
DNS_CONFIG_TYPE
Definition: windns.h:116
@ DnsConfigFullHostName_UTF8
Definition: windns.h:134
@ DnsConfigPrimaryDomainName_W
Definition: windns.h:117
@ DnsConfigPrimaryHostNameRegistrationEnabled
Definition: windns.h:126
@ DnsConfigSearchList
Definition: windns.h:124
@ DnsConfigHostName_W
Definition: windns.h:129
@ DnsConfigFullHostName_W
Definition: windns.h:132
@ DnsConfigAdapterHostNameRegistrationEnabled
Definition: windns.h:127
@ DnsConfigDnsServerList
Definition: windns.h:123
@ DnsConfigHostName_A
Definition: windns.h:130
@ DnsConfigHostName_UTF8
Definition: windns.h:131
@ DnsConfigAdapterInfo
Definition: windns.h:125
@ DnsConfigPrimaryDomainName_UTF8
Definition: windns.h:119
@ DnsConfigAdapterDomainName_W
Definition: windns.h:120
@ DnsConfigAdapterDomainName_A
Definition: windns.h:121
@ DnsConfigFullHostName_A
Definition: windns.h:133
@ DnsConfigPrimaryDomainName_A
Definition: windns.h:118
@ DnsConfigAddressRegistrationMaxCount
Definition: windns.h:128
@ DnsConfigAdapterDomainName_UTF8
Definition: windns.h:122
@ DnsConfigDnsServersUnspec
Definition: windns.h:170
@ DnsConfigDnsServersIpv4
Definition: windns.h:171
@ DnsConfigDnsServersIpv6
Definition: windns.h:172

◆ _DNS_FREE_TYPE

Enumerator
DnsFreeFlat 
DnsFreeRecordList 
DnsFreeParsedMessageFields 

Definition at line 133 of file windns.h.

134{
DNS_FREE_TYPE
Definition: windns.h:137
@ DnsFreeFlat
Definition: windns.h:138
@ DnsFreeRecordList
Definition: windns.h:139
@ DnsFreeParsedMessageFields
Definition: windns.h:140

◆ _DNS_NAME_FORMAT

Enumerator
DnsNameDomain 
DnsNameDomainLabel 
DnsNameHostnameFull 
DnsNameHostnameLabel 
DnsNameWildcard 
DnsNameSrvRecord 
DnsNameDomain 
DnsNameDomainLabel 
DnsNameHostnameFull 
DnsNameHostnameLabel 
DnsNameWildcard 
DnsNameSrvRecord 

Definition at line 123 of file windns.h.

124{
@ DnsNameSrvRecord
Definition: windns.h:149
@ DnsNameHostnameLabel
Definition: windns.h:147
@ DnsNameDomainLabel
Definition: windns.h:145
@ DnsNameDomain
Definition: windns.h:144
@ DnsNameHostnameFull
Definition: windns.h:146
@ DnsNameWildcard
Definition: windns.h:148
enum _DNS_NAME_FORMAT DNS_NAME_FORMAT

◆ _DnsSection

Enumerator
DnsSectionQuestion 
DnsSectionAnswer 
DnsSectionAuthority 
DnsSectionAddtional 

Definition at line 175 of file windns.h.

176{
180 DnsSectionAddtional /* Not a typo, as per Microsoft's headers */
DNS_SECTION
Definition: windns.h:152
@ DnsSectionAnswer
Definition: windns.h:154
@ DnsSectionQuestion
Definition: windns.h:153
@ DnsSectionAuthority
Definition: windns.h:155
@ DnsSectionAddtional
Definition: windns.h:180

Function Documentation

◆ DnsAcquireContextHandle_A()

DNS_STATUS WINAPI DnsAcquireContextHandle_A ( DWORD  ,
PVOID  ,
PHANDLE   
)

◆ DnsAcquireContextHandle_W()

DNS_STATUS WINAPI DnsAcquireContextHandle_W ( DWORD  ,
PVOID  ,
PHANDLE   
)

◆ DnsCancelQuery()

DNS_STATUS WINAPI DnsCancelQuery ( DNS_QUERY_CANCEL )

◆ DnsExtractRecordsFromMessage_UTF8()

DNS_STATUS WINAPI DnsExtractRecordsFromMessage_UTF8 ( PDNS_MESSAGE_BUFFER  pDnsBuffer,
WORD  wMessageLength,
PDNS_RECORDA ppRecord 
)

Definition at line 195 of file stubs.c.

198{
200 return ERROR_OUTOFMEMORY;
201}
#define UNIMPLEMENTED
Definition: ntoskrnl.c:15
#define ERROR_OUTOFMEMORY
Definition: deptool.c:13

◆ DnsExtractRecordsFromMessage_W()

DNS_STATUS WINAPI DnsExtractRecordsFromMessage_W ( PDNS_MESSAGE_BUFFER  ,
WORD  ,
PDNS_RECORDW  
)

◆ DnsFree()

VOID WINAPI DnsFree ( PVOID  Data,
DNS_FREE_TYPE  FreeType 
)

Definition at line 40 of file memory.c.

42{
43 switch(FreeType)
44 {
45 case DnsFreeFlat:
46 RtlFreeHeap( RtlGetProcessHeap(), 0, Data );
47 break;
48
51 break;
52
54 /* assert( FALSE ); XXX arty not yet implemented. */
55 break;
56 }
57}
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
Definition: heap.c:634
void DnsIntFreeRecordList(PDNS_RECORD ToFree)
Definition: query.c:889
__kernel_entry _Inout_ _Inout_ PSIZE_T _In_ ULONG FreeType
Definition: mmfuncs.h:174

◆ DnsGetCacheDataTable()

BOOL WINAPI DnsGetCacheDataTable ( PDNS_CACHE_ENTRY )

◆ DnsModifyRecordsInSet_A()

DNS_STATUS WINAPI DnsModifyRecordsInSet_A ( PDNS_RECORDA  ,
PDNS_RECORDA  ,
DWORD  ,
HANDLE  ,
PVOID  ,
PVOID   
)

◆ DnsModifyRecordsInSet_UTF8()

DNS_STATUS WINAPI DnsModifyRecordsInSet_UTF8 ( PDNS_RECORDA  ,
PDNS_RECORDA  ,
DWORD  ,
HANDLE  ,
PVOID  ,
PVOID   
)

◆ DnsModifyRecordsInSet_W()

DNS_STATUS WINAPI DnsModifyRecordsInSet_W ( PDNS_RECORDW  ,
PDNS_RECORDW  ,
DWORD  ,
HANDLE  ,
PVOID  ,
PVOID   
)

◆ DnsNameCompare_A()

BOOL WINAPI DnsNameCompare_A ( PCSTR  name1,
PCSTR  name2 
)

Definition at line 31 of file names.c.

32{
33 BOOL ret;
34 PWSTR name1W, name2W;
35
36 name1W = dns_strdup_aw( name1 );
37 name2W = dns_strdup_aw( name2 );
38
39 ret = DnsNameCompare_W( name1W, name2W );
40
41 HeapFree(GetProcessHeap(), 0, name1W );
42 HeapFree(GetProcessHeap(), 0, name2W );
43
44 return ret;
45}
#define GetProcessHeap()
Definition: compat.h:736
#define HeapFree(x, y, z)
Definition: compat.h:735
static LPWSTR dns_strdup_aw(LPCSTR str)
Definition: precomp.h:49
return ret
Definition: mutex.c:146
unsigned int BOOL
Definition: ntddk_ex.h:94
static WCHAR name1[]
Definition: record.c:34
static WCHAR name2[]
Definition: record.c:35
BOOL WINAPI DnsNameCompare_W(PCWSTR name1, PCWSTR name2)
Definition: names.c:51
uint16_t * PWSTR
Definition: typedefs.h:56

Referenced by test_DnsNameCompare_A().

◆ DnsNameCompare_W()

BOOL WINAPI DnsNameCompare_W ( PCWSTR  name1,
PCWSTR  name2 
)

Definition at line 51 of file names.c.

52{
53 PCWSTR p, q;
54
55 if (!name1 && !name2) return TRUE;
56 if (!name1 || !name2) return FALSE;
57
58 p = name1 + lstrlenW( name1 ) - 1;
59 q = name2 + lstrlenW( name2 ) - 1;
60
61 while (*p == '.' && p >= name1) p--;
62 while (*q == '.' && q >= name2) q--;
63
64 if (p - name1 != q - name2) return FALSE;
65
66 while (name1 <= p)
67 {
68 if (towupper( *name1 ) != towupper( *name2 ))
69 return FALSE;
70
71 name1++;
72 name2++;
73 }
74 return TRUE;
75}
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define lstrlenW
Definition: compat.h:750
GLdouble GLdouble GLdouble GLdouble q
Definition: gl.h:2063
GLfloat GLfloat p
Definition: glext.h:8902
#define towupper(c)
Definition: wctype.h:99
const uint16_t * PCWSTR
Definition: typedefs.h:57

Referenced by DnsNameCompare_A(), and SaBlob_Query().

◆ DnsQuery_A()

DNS_STATUS WINAPI DnsQuery_A ( PCSTR  Name,
WORD  Type,
DWORD  Options,
PVOID  Extra,
PDNS_RECORDA QueryResultSet,
PVOID Reserved 
)

Definition at line 446 of file query.c.

452{
453 return DnsQuery_CodePage(CP_ACP, Name, Type, Options, Extra, QueryResultSet, Reserved);
454}
Type
Definition: Type.h:7
LPWSTR Name
Definition: desk.c:124
#define CP_ACP
Definition: compat.h:109
DNS_STATUS WINAPI DnsQuery_CodePage(UINT CodePage, LPCSTR Name, WORD Type, DWORD Options, PVOID Extra, PDNS_RECORD *QueryResultSet, PVOID *Reserved)
Definition: query.c:272
_In_ PWDFDEVICE_INIT _In_ PWDF_REMOVE_LOCK_OPTIONS Options
Definition: wdfdevice.h:3540
_Reserved_ PVOID Reserved
Definition: winddi.h:3974

Referenced by TestHostName().

◆ DnsQuery_UTF8()

DNS_STATUS WINAPI DnsQuery_UTF8 ( PCSTR  Name,
WORD  Type,
DWORD  Options,
PVOID  Extra,
PDNS_RECORDA QueryResultSet,
PVOID Reserved 
)

Definition at line 457 of file query.c.

463{
464 return DnsQuery_CodePage(CP_UTF8, Name, Type, Options, Extra, QueryResultSet, Reserved);
465}
#define CP_UTF8
Definition: nls.h:20

Referenced by TestHostName().

◆ DnsQuery_W()

DNS_STATUS WINAPI DnsQuery_W ( PCWSTR  ,
WORD  ,
DWORD  ,
PVOID  ,
PDNS_RECORDW ,
PVOID  
)

◆ DnsQueryConfig()

DNS_STATUS WINAPI DnsQueryConfig ( DNS_CONFIG_TYPE  ,
DWORD  ,
PCWSTR  ,
PVOID  ,
PVOID  ,
PDWORD   
)

◆ DnsQueryEx()

◆ DnsRecordCompare()

BOOL WINAPI DnsRecordCompare ( PDNS_RECORD  r1,
PDNS_RECORD  r2 
)

Definition at line 104 of file record.c.

105{
106 BOOL wide;
107 unsigned int i;
108
109 DPRINT( "(%p,%p)\n", r1, r2 );
110
111 if (r1->wType != r2->wType ||
113 r1->Flags.S.Section != r2->Flags.S.Section ||
114 r1->Flags.S.Delete != r2->Flags.S.Delete ||
115 r1->Flags.S.Unused != r2->Flags.S.Unused ||
117 r1->dwReserved != r2->dwReserved) return FALSE;
118
120 if (dns_strcmpX( r1->pName, r2->pName, wide )) return FALSE;
121
122 switch (r1->wType)
123 {
124 case DNS_TYPE_A:
125 {
126 if (r1->Data.A.IpAddress != r2->Data.A.IpAddress) return FALSE;
127 break;
128 }
129 case DNS_TYPE_SOA:
130 {
136 return FALSE;
138 r2->Data.SOA.pNamePrimaryServer, wide ) ||
140 r2->Data.SOA.pNameAdministrator, wide ))
141 return FALSE;
142 break;
143 }
144 case DNS_TYPE_PTR:
145 case DNS_TYPE_NS:
146 case DNS_TYPE_CNAME:
147 case DNS_TYPE_MB:
148 case DNS_TYPE_MD:
149 case DNS_TYPE_MF:
150 case DNS_TYPE_MG:
151 case DNS_TYPE_MR:
152 {
154 r2->Data.PTR.pNameHost, wide )) return FALSE;
155 break;
156 }
157 case DNS_TYPE_MINFO:
158 case DNS_TYPE_RP:
159 {
161 r2->Data.MINFO.pNameMailbox, wide ) ||
164 return FALSE;
165 break;
166 }
167 case DNS_TYPE_MX:
168 case DNS_TYPE_AFSDB:
169 case DNS_TYPE_RT:
170 {
172 return FALSE;
174 r2->Data.MX.pNameExchange, wide ))
175 return FALSE;
176 break;
177 }
178 case DNS_TYPE_HINFO:
179 case DNS_TYPE_ISDN:
180 case DNS_TYPE_TEXT:
181 case DNS_TYPE_X25:
182 {
184 return FALSE;
185 for (i = 0; i < r1->Data.TXT.dwStringCount; i++)
186 {
188 r2->Data.TXT.pStringArray[i], wide ))
189 return FALSE;
190 }
191 break;
192 }
193 case DNS_TYPE_NULL:
194 {
196 return FALSE;
197 if (memcmp( r1->Data.Null.Data,
199 return FALSE;
200 break;
201 }
202 case DNS_TYPE_AAAA:
203 {
204 for (i = 0; i < sizeof(IP6_ADDRESS)/sizeof(DWORD); i++)
205 {
208 }
209 break;
210 }
211 case DNS_TYPE_KEY:
212 {
213 if (r1->Data.KEY.wFlags != r2->Data.KEY.wFlags ||
216 return FALSE;
217 if (memcmp( r1->Data.KEY.Key, r2->Data.KEY.Key,
218 r1->wDataLength - sizeof(DNS_KEY_DATA) + 1 ))
219 return FALSE;
220 break;
221 }
222 case DNS_TYPE_SIG:
223 {
225 r2->Data.SIG.pNameSigner, wide ))
226 return FALSE;
234 return FALSE;
236 r1->wDataLength - sizeof(DNS_SIG_DATAA) + 1 ))
237 return FALSE;
238 break;
239 }
240 case DNS_TYPE_ATMA:
241 {
243 return FALSE;
244 for (i = 0; i < DNS_ATMA_MAX_ADDR_LENGTH; i++)
245 {
246 if (r1->Data.ATMA.Address[i] != r2->Data.ATMA.Address[i])
247 return FALSE;
248 }
249 break;
250 }
251 case DNS_TYPE_NXT:
252 {
254 r2->Data.NXT.pNameNext, wide )) return FALSE;
255 if (r1->Data.NXT.wNumTypes != r2->Data.NXT.wNumTypes) return FALSE;
257 r1->wDataLength - sizeof(DNS_NXT_DATAA) + sizeof(WORD) ))
258 return FALSE;
259 break;
260 }
261 case DNS_TYPE_SRV:
262 {
264 r2->Data.SRV.pNameTarget, wide )) return FALSE;
265 if (r1->Data.SRV.wPriority != r2->Data.SRV.wPriority ||
268 return FALSE;
269 break;
270 }
271 case DNS_TYPE_TKEY:
272 {
274 r2->Data.TKEY.pNameAlgorithm, wide ))
275 return FALSE;
278 r1->Data.TKEY.wMode != r2->Data.TKEY.wMode ||
284 return FALSE;
285
286 /* FIXME: ignoring pAlgorithmPacket field */
288 r1->Data.TKEY.wKeyLength ) ||
290 r1->Data.TKEY.wOtherLength )) return FALSE;
291 break;
292 }
293 case DNS_TYPE_TSIG:
294 {
296 r2->Data.TSIG.pNameAlgorithm, wide ))
297 return FALSE;
306 return FALSE;
307
308 /* FIXME: ignoring pAlgorithmPacket field */
310 r1->Data.TSIG.wSigLength ) ||
312 r1->Data.TSIG.wOtherLength )) return FALSE;
313 break;
314 }
315 case DNS_TYPE_WINS:
316 {
321 return FALSE;
323 r1->wDataLength - sizeof(DNS_WINS_DATA) + sizeof(IP4_ADDRESS) ))
324 return FALSE;
325 break;
326 }
327 case DNS_TYPE_WINSR:
328 {
332 return FALSE;
335 return FALSE;
336 break;
337 }
338 default:
339 DPRINT1( "unknown type: %s\n", dns_type_to_str( r1->wType ) );
340 return FALSE;
341 }
342 return TRUE;
343}
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
Definition: utclib.c:112
#define DPRINT1
Definition: precomp.h:8
const char * dns_type_to_str(unsigned short type)
Definition: record.c:26
static int dns_strcmpX(LPCVOID str1, LPCVOID str2, BOOL wide)
Definition: record.c:92
unsigned short WORD
Definition: ntddk_ex.h:93
unsigned long DWORD
Definition: ntddk_ex.h:95
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
static DNS_RECORDW r1
Definition: record.c:37
static DNS_RECORDW r2
Definition: record.c:38
#define DNS_TYPE_WINSR
Definition: windns.h:97
#define DNS_TYPE_TKEY
Definition: windns.h:87
#define DNS_TYPE_MINFO
Definition: windns.h:54
#define DNS_TYPE_HINFO
Definition: windns.h:53
#define DNS_TYPE_RT
Definition: windns.h:61
#define DNS_TYPE_MX
Definition: windns.h:55
#define DNS_TYPE_ATMA
Definition: windns.h:74
#define DNS_TYPE_SIG
Definition: windns.h:64
#define DNS_TYPE_ISDN
Definition: windns.h:60
#define DNS_TYPE_TEXT
Definition: windns.h:56
#define DNS_TYPE_PTR
Definition: windns.h:52
#define DNS_TYPE_MB
Definition: windns.h:47
#define DNS_TYPE_X25
Definition: windns.h:59
#define DNS_TYPE_MG
Definition: windns.h:48
#define DNS_TYPE_KEY
Definition: windns.h:65
DWORD IP4_ADDRESS
Definition: windns.h:36
#define DNS_TYPE_CNAME
Definition: windns.h:45
#define DNS_TYPE_NS
Definition: windns.h:42
#define DNS_TYPE_SOA
Definition: windns.h:46
#define DNS_TYPE_MD
Definition: windns.h:43
#define DNS_TYPE_MF
Definition: windns.h:44
#define DNS_TYPE_AFSDB
Definition: windns.h:58
#define DNS_TYPE_SRV
Definition: windns.h:73
#define DNS_TYPE_AAAA
Definition: windns.h:68
#define DNS_TYPE_NULL
Definition: windns.h:50
#define DNS_TYPE_TSIG
Definition: windns.h:88
#define DNS_TYPE_RP
Definition: windns.h:57
#define DNS_TYPE_WINS
Definition: windns.h:96
#define DNS_TYPE_MR
Definition: windns.h:49
#define DNS_ATMA_MAX_ADDR_LENGTH
Definition: windns.h:105
#define DNS_TYPE_NXT
Definition: windns.h:70
#define DNS_TYPE_A
Definition: windns.h:41
#define DPRINT
Definition: sndvol32.h:73
DNS_IP6_ADDRESS Ip6Address
Definition: windns.h:250
BYTE Address[DNS_ATMA_MAX_ADDR_LENGTH]
Definition: windns.h:255
BYTE AddressType
Definition: windns.h:254
IP4_ADDRESS IpAddress
Definition: windns.h:246
BYTE chProtocol
Definition: windns.h:260
BYTE chAlgorithm
Definition: windns.h:261
BYTE Key[1]
Definition: windns.h:262
WORD wFlags
Definition: windns.h:259
LPWSTR pNameMailbox
Definition: windns.h:281
LPWSTR pNameErrorsMailbox
Definition: windns.h:282
WORD wPreference
Definition: windns.h:293
LPWSTR pNameExchange
Definition: windns.h:292
DWORD dwByteCount
Definition: windns.h:298
BYTE Data[1]
Definition: windns.h:299
LPWSTR pNameNext
Definition: windns.h:309
WORD wTypes[1]
Definition: windns.h:311
WORD wNumTypes
Definition: windns.h:310
LPWSTR pNameHost
Definition: windns.h:319
BYTE Signature[1]
Definition: windns.h:345
LPWSTR pNameSigner
Definition: windns.h:336
BYTE chAlgorithm
Definition: windns.h:338
WORD wTypeCovered
Definition: windns.h:337
WORD wKeyTag
Definition: windns.h:343
DWORD dwOriginalTtl
Definition: windns.h:340
DWORD dwTimeSigned
Definition: windns.h:342
DWORD dwExpiration
Definition: windns.h:341
BYTE chLabelCount
Definition: windns.h:339
LPWSTR pNameAdministrator
Definition: windns.h:360
LPWSTR pNamePrimaryServer
Definition: windns.h:359
DWORD dwRetry
Definition: windns.h:363
DWORD dwExpire
Definition: windns.h:364
DWORD dwRefresh
Definition: windns.h:362
DWORD dwDefaultTtl
Definition: windns.h:365
DWORD dwSerialNo
Definition: windns.h:361
WORD wPriority
Definition: windns.h:378
WORD wPort
Definition: windns.h:380
LPWSTR pNameTarget
Definition: windns.h:377
WORD wWeight
Definition: windns.h:379
WORD wMode
Definition: windns.h:416
LPWSTR pNameAlgorithm
Definition: windns.h:410
PBYTE pOtherData
Definition: windns.h:413
WORD wError
Definition: windns.h:417
WORD wOtherLength
Definition: windns.h:419
PBYTE pKey
Definition: windns.h:412
UCHAR cAlgNameLength
Definition: windns.h:420
WORD wKeyLength
Definition: windns.h:418
DWORD dwExpireTime
Definition: windns.h:415
BOOL bPacketPointers
Definition: windns.h:421
DWORD dwCreateTime
Definition: windns.h:414
LONGLONG i64CreateTime
Definition: windns.h:444
BOOL bPacketPointers
Definition: windns.h:451
LPWSTR pNameAlgorithm
Definition: windns.h:440
WORD wSigLength
Definition: windns.h:448
PBYTE pSignature
Definition: windns.h:442
WORD wError
Definition: windns.h:447
WORD wFudgeTime
Definition: windns.h:445
WORD wOtherLength
Definition: windns.h:449
UCHAR cAlgNameLength
Definition: windns.h:450
WORD wOriginalXid
Definition: windns.h:446
PBYTE pOtherData
Definition: windns.h:443
DWORD dwStringCount
Definition: windns.h:390
LPWSTR pStringArray[1]
Definition: windns.h:391
DWORD dwMappingFlag
Definition: windns.h:470
DWORD dwCacheTimeout
Definition: windns.h:472
DWORD dwLookupTimeout
Definition: windns.h:471
LPWSTR pNameResultDomain
Definition: windns.h:473
DWORD dwCacheTimeout
Definition: windns.h:457
DWORD dwMappingFlag
Definition: windns.h:455
DWORD dwLookupTimeout
Definition: windns.h:456
DWORD cWinsServerCount
Definition: windns.h:458
IP4_ADDRESS WinsServers[1]
Definition: windns.h:459
DWORD IP6Dword[4]
Definition: windns.h:165
DWORD Delete
Definition: windns.h:239
DWORD Unused
Definition: windns.h:241
DWORD Reserved
Definition: windns.h:242
DWORD CharSet
Definition: windns.h:240
DWORD Section
Definition: windns.h:238
DNS_NULL_DATA Null
Definition: windns.h:615
WORD wType
Definition: windns.h:600
DNS_ATMA_DATA ATMA
Definition: windns.h:620
DNS_WINSR_DATAW WINSR
Definition: windns.h:626
DNS_SRV_DATAW SRV
Definition: windns.h:622
LPWSTR pName
Definition: windns.h:599
union _DnsRecordW::@3512 Data
DNS_KEY_DATA KEY
Definition: windns.h:618
DNS_TSIG_DATAW TSIG
Definition: windns.h:624
DNS_A_DATA A
Definition: windns.h:609
DNS_WINS_DATA WINS
Definition: windns.h:625
DNS_AAAA_DATA AAAA
Definition: windns.h:617
DNS_RECORD_FLAGS S
Definition: windns.h:604
DNS_TXT_DATAW TXT
Definition: windns.h:614
DNS_MINFO_DATAW MINFO
Definition: windns.h:612
DNS_TKEY_DATAW TKEY
Definition: windns.h:623
DNS_SIG_DATAW SIG
Definition: windns.h:619
DNS_NXT_DATAW NXT
Definition: windns.h:621
WORD wDataLength
Definition: windns.h:601
DWORD dwReserved
Definition: windns.h:607
union _DnsRecordW::@3511 Flags
DNS_PTR_DATAW PTR
Definition: windns.h:611
DNS_MX_DATAW MX
Definition: windns.h:613
DNS_SOA_DATAW SOA
Definition: windns.h:610

Referenced by DnsRecordSetCompare(), and test_DnsRecordCompare().

◆ DnsRecordCopyEx()

PDNS_RECORD WINAPI DnsRecordCopyEx ( PDNS_RECORD  src,
DNS_CHARSET  in,
DNS_CHARSET  out 
)

Definition at line 395 of file record.c.

396{
398 unsigned int i, size;
399
400 DPRINT( "(%p,%d,%d)\n", src, in, out );
401
402 size = FIELD_OFFSET(DNS_RECORD, Data) + src->wDataLength;
404 if (!dst) return NULL;
405
406 memcpy( dst, src, size );
407
408 if (src->Flags.S.CharSet == DnsCharSetUtf8 ||
409 src->Flags.S.CharSet == DnsCharSetAnsi ||
410 src->Flags.S.CharSet == DnsCharSetUnicode) in = src->Flags.S.CharSet;
411
412 dst->Flags.S.CharSet = out;
413 dst->pName = dns_strcpyX( src->pName, in, out );
414 if (!dst->pName) goto error;
415
416 switch (src->wType)
417 {
418 case DNS_TYPE_HINFO:
419 case DNS_TYPE_ISDN:
420 case DNS_TYPE_TEXT:
421 case DNS_TYPE_X25:
422 {
423 for (i = 0; i < src->Data.TXT.dwStringCount; i++)
424 {
425 dst->Data.TXT.pStringArray[i] =
426 dns_strcpyX( src->Data.TXT.pStringArray[i], in, out );
427
428 if (!dst->Data.TXT.pStringArray[i])
429 {
430 while (i > 0) HeapFree( GetProcessHeap(), 0, dst->Data.TXT.pStringArray[--i] );
431 goto error;
432 }
433 }
434 break;
435 }
436 case DNS_TYPE_MINFO:
437 case DNS_TYPE_RP:
438 {
439 dst->Data.MINFO.pNameMailbox =
440 dns_strcpyX( src->Data.MINFO.pNameMailbox, in, out );
441 if (!dst->Data.MINFO.pNameMailbox) goto error;
442
443 dst->Data.MINFO.pNameErrorsMailbox =
444 dns_strcpyX( src->Data.MINFO.pNameErrorsMailbox, in, out );
445 if (!dst->Data.MINFO.pNameErrorsMailbox)
446 {
447 HeapFree( GetProcessHeap(), 0, dst->Data.MINFO.pNameMailbox );
448 goto error;
449 }
450 break;
451 }
452 case DNS_TYPE_AFSDB:
453 case DNS_TYPE_RT:
454 case DNS_TYPE_MX:
455 {
456 dst->Data.MX.pNameExchange =
457 dns_strcpyX( src->Data.MX.pNameExchange, in, out );
458 if (!dst->Data.MX.pNameExchange) goto error;
459 break;
460 }
461 case DNS_TYPE_NXT:
462 {
463 dst->Data.NXT.pNameNext =
464 dns_strcpyX( src->Data.NXT.pNameNext, in, out );
465 if (!dst->Data.NXT.pNameNext) goto error;
466 break;
467 }
468 case DNS_TYPE_CNAME:
469 case DNS_TYPE_MB:
470 case DNS_TYPE_MD:
471 case DNS_TYPE_MF:
472 case DNS_TYPE_MG:
473 case DNS_TYPE_MR:
474 case DNS_TYPE_NS:
475 case DNS_TYPE_PTR:
476 {
477 dst->Data.PTR.pNameHost =
478 dns_strcpyX( src->Data.PTR.pNameHost, in, out );
479 if (!dst->Data.PTR.pNameHost) goto error;
480 break;
481 }
482 case DNS_TYPE_SIG:
483 {
484 dst->Data.SIG.pNameSigner =
485 dns_strcpyX( src->Data.SIG.pNameSigner, in, out );
486 if (!dst->Data.SIG.pNameSigner) goto error;
487 break;
488 }
489 case DNS_TYPE_SOA:
490 {
491 dst->Data.SOA.pNamePrimaryServer =
492 dns_strcpyX( src->Data.SOA.pNamePrimaryServer, in, out );
493 if (!dst->Data.SOA.pNamePrimaryServer) goto error;
494
495 dst->Data.SOA.pNameAdministrator =
496 dns_strcpyX( src->Data.SOA.pNameAdministrator, in, out );
497 if (!dst->Data.SOA.pNameAdministrator)
498 {
499 HeapFree( GetProcessHeap(), 0, dst->Data.SOA.pNamePrimaryServer );
500 goto error;
501 }
502 break;
503 }
504 case DNS_TYPE_SRV:
505 {
506 dst->Data.SRV.pNameTarget =
507 dns_strcpyX( src->Data.SRV.pNameTarget, in, out );
508 if (!dst->Data.SRV.pNameTarget) goto error;
509 break;
510 }
511 default:
512 break;
513 }
514 return dst;
515
516error:
517 HeapFree( GetProcessHeap(), 0, dst->pName );
518 HeapFree( GetProcessHeap(), 0, dst );
519 return NULL;
520}
#define HeapAlloc
Definition: compat.h:733
#define HEAP_ZERO_MEMORY
Definition: compat.h:134
static LPVOID dns_strcpyX(LPCVOID src, DNS_CHARSET in, DNS_CHARSET out)
Definition: record.c:345
GLenum src
Definition: glext.h:6340
GLsizeiptr size
Definition: glext.h:5919
GLuint in
Definition: glext.h:9616
GLenum GLenum dst
Definition: glext.h:6340
#define error(str)
Definition: mkdosfs.c:1605
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
#define FIELD_OFFSET(t, f)
Definition: typedefs.h:255
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
Definition: wcsftime.cpp:383

Referenced by DnsRecordSetCompare(), and DnsRecordSetCopyEx().

◆ DnsRecordListFree()

VOID WINAPI DnsRecordListFree ( PDNS_RECORD  list,
DNS_FREE_TYPE  type 
)

Definition at line 526 of file record.c.

527{
528 DNS_RECORD *r, *next;
529 unsigned int i;
530
531 DPRINT( "(%p,%d)\n", list, type );
532
533 if (!list) return;
534
535 switch (type)
536 {
538 {
539 for (r = list; (list = r); r = next)
540 {
541 HeapFree( GetProcessHeap(), 0, r->pName );
542
543 switch (r->wType)
544 {
545 case DNS_TYPE_HINFO:
546 case DNS_TYPE_ISDN:
547 case DNS_TYPE_TEXT:
548 case DNS_TYPE_X25:
549 {
550 for (i = 0; i < r->Data.TXT.dwStringCount; i++)
551 HeapFree( GetProcessHeap(), 0, r->Data.TXT.pStringArray[i] );
552
553 break;
554 }
555 case DNS_TYPE_MINFO:
556 case DNS_TYPE_RP:
557 {
558 HeapFree( GetProcessHeap(), 0, r->Data.MINFO.pNameMailbox );
559 HeapFree( GetProcessHeap(), 0, r->Data.MINFO.pNameErrorsMailbox );
560 break;
561 }
562 case DNS_TYPE_AFSDB:
563 case DNS_TYPE_RT:
564 case DNS_TYPE_MX:
565 {
566 HeapFree( GetProcessHeap(), 0, r->Data.MX.pNameExchange );
567 break;
568 }
569 case DNS_TYPE_NXT:
570 {
571 HeapFree( GetProcessHeap(), 0, r->Data.NXT.pNameNext );
572 break;
573 }
574 case DNS_TYPE_CNAME:
575 case DNS_TYPE_MB:
576 case DNS_TYPE_MD:
577 case DNS_TYPE_MF:
578 case DNS_TYPE_MG:
579 case DNS_TYPE_MR:
580 case DNS_TYPE_NS:
581 case DNS_TYPE_PTR:
582 {
583 HeapFree( GetProcessHeap(), 0, r->Data.PTR.pNameHost );
584 break;
585 }
586 case DNS_TYPE_SIG:
587 {
588 HeapFree( GetProcessHeap(), 0, r->Data.SIG.pNameSigner );
589 break;
590 }
591 case DNS_TYPE_SOA:
592 {
593 HeapFree( GetProcessHeap(), 0, r->Data.SOA.pNamePrimaryServer );
594 HeapFree( GetProcessHeap(), 0, r->Data.SOA.pNameAdministrator );
595 break;
596 }
597 case DNS_TYPE_SRV:
598 {
599 HeapFree( GetProcessHeap(), 0, r->Data.SRV.pNameTarget );
600 break;
601 }
602 default:
603 break;
604 }
605
606 next = r->pNext;
607 HeapFree( GetProcessHeap(), 0, r );
608 }
609 break;
610 }
611 case DnsFreeFlat:
613 {
614 DPRINT1( "unhandled free type: %d\n", type );
615 break;
616 }
617 default:
618 DPRINT1( "unknown free type: %d\n", type );
619 break;
620 }
621}
Definition: list.h:37
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
static unsigned __int64 next
Definition: rand_nt.c:6

Referenced by DisplayDnsRecord(), DnsIntCacheRemoveEntryItem(), DnsRecordSetCompare(), DnsRecordSetCopyEx(), main(), NSP_GetHostByNameHeapAllocW(), SaBlob_Query(), test_DnsRecordSetCompare(), and TestHostName().

◆ DnsRecordSetCompare()

BOOL WINAPI DnsRecordSetCompare ( PDNS_RECORD  set1,
PDNS_RECORD  set2,
PDNS_RECORD diff1,
PDNS_RECORD diff2 
)

Definition at line 627 of file record.c.

629{
630 BOOL ret = TRUE;
631 DNS_RECORD *r, *t, *u;
632 DNS_RRSET rr1, rr2;
633
634 DPRINT( "(%p,%p,%p,%p)\n", set1, set2, diff1, diff2 );
635
636 if (!set1 && !set2) return FALSE;
637
638 if (diff1) *diff1 = NULL;
639 if (diff2) *diff2 = NULL;
640
641 if (set1 && !set2)
642 {
643 if (diff1) *diff1 = DnsRecordSetCopyEx( set1, 0, set1->Flags.S.CharSet );
644 return FALSE;
645 }
646 if (!set1 && set2)
647 {
648 if (diff2) *diff2 = DnsRecordSetCopyEx( set2, 0, set2->Flags.S.CharSet );
649 return FALSE;
650 }
651
652 DNS_RRSET_INIT( rr1 );
653 DNS_RRSET_INIT( rr2 );
654
655 for (r = set1; r; r = r->pNext)
656 {
657 for (t = set2; t; t = t->pNext)
658 {
659 u = DnsRecordCopyEx( r, r->Flags.S.CharSet, t->Flags.S.CharSet );
660 if (!u) goto error;
661
662 if (!DnsRecordCompare( t, u ))
663 {
664 DNS_RRSET_ADD( rr1, u );
665 ret = FALSE;
666 }
668 }
669 }
670
671 for (t = set2; t; t = t->pNext)
672 {
673 for (r = set1; r; r = r->pNext)
674 {
675 u = DnsRecordCopyEx( t, t->Flags.S.CharSet, r->Flags.S.CharSet );
676 if (!u) goto error;
677
678 if (!DnsRecordCompare( r, u ))
679 {
680 DNS_RRSET_ADD( rr2, u );
681 ret = FALSE;
682 }
684 }
685 }
686
687 DNS_RRSET_TERMINATE( rr1 );
688 DNS_RRSET_TERMINATE( rr2 );
689
690 if (diff1) *diff1 = rr1.pFirstRR;
692
693 if (diff2) *diff2 = rr2.pFirstRR;
695
696 return ret;
697
698error:
699 DNS_RRSET_TERMINATE( rr1 );
700 DNS_RRSET_TERMINATE( rr2 );
701
704
705 return FALSE;
706}
VOID WINAPI DnsRecordListFree(PDNS_RECORD list, DNS_FREE_TYPE type)
Definition: record.c:526
PDNS_RECORD WINAPI DnsRecordSetCopyEx(PDNS_RECORD src_set, DNS_CHARSET in, DNS_CHARSET out)
Definition: record.c:712
PDNS_RECORD WINAPI DnsRecordCopyEx(PDNS_RECORD src, DNS_CHARSET in, DNS_CHARSET out)
Definition: record.c:395
BOOL WINAPI DnsRecordCompare(PDNS_RECORD r1, PDNS_RECORD r2)
Definition: record.c:104
GLdouble GLdouble t
Definition: gl.h:2047
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
Definition: glfuncs.h:240
static void set1(uint8 *data, int x, int y)
Definition: nanoxwin.c:811
#define DNS_RRSET_TERMINATE(rrset)
Definition: windns.h:659
#define DNS_RRSET_ADD(rrset, pnewRR)
Definition: windns.h:651
#define DNS_RRSET_INIT(rrset)
Definition: windns.h:644
DNS_RECORD_FLAGS S
Definition: windns.h:571
union _DnsRecordA::@3509 Flags

Referenced by test_DnsRecordSetCompare().

◆ DnsRecordSetCopyEx()

PDNS_RECORD WINAPI DnsRecordSetCopyEx ( PDNS_RECORD  src_set,
DNS_CHARSET  in,
DNS_CHARSET  out 
)

Definition at line 712 of file record.c.

713{
714 DNS_RRSET dst_set;
715 DNS_RECORD *src, *dst;
716
717 DPRINT( "(%p,%d,%d)\n", src_set, in, out );
718
719 DNS_RRSET_INIT( dst_set );
720
721 for (src = src_set; (src_set = src); src = src_set->pNext)
722 {
724 if (!dst)
725 {
726 DNS_RRSET_TERMINATE( dst_set );
728 return NULL;
729 }
730 DNS_RRSET_ADD( dst_set, dst );
731 }
732
733 DNS_RRSET_TERMINATE( dst_set );
734 return dst_set.pFirstRR;
735}

Referenced by DnsIntCacheAddEntry(), DnsIntCacheGetEntryByName(), and DnsRecordSetCompare().

◆ DnsRecordSetDetach()

PDNS_RECORD WINAPI DnsRecordSetDetach ( PDNS_RECORD  set)

Definition at line 741 of file record.c.

742{
743 DNS_RECORD *r, *s;
744
745 DPRINT( "(%p)\n", set );
746
747 for (r = set; (set = r); r = set->pNext)
748 {
749 if (r->pNext && !r->pNext->pNext)
750 {
751 s = r->pNext;
752 r->pNext = NULL;
753 return s;
754 }
755 }
756 return NULL;
757}
Definition: _set.h:50
GLdouble s
Definition: gl.h:2039

Referenced by test_DnsRecordSetDetach().

◆ DnsReleaseContextHandle()

void WINAPI DnsReleaseContextHandle ( HANDLE  ContextHandle)

Definition at line 118 of file context.c.

119{
120 PWINDNS_CONTEXT Context = (PWINDNS_CONTEXT)ContextHandle;
121
122 adns_finish(Context->State);
123 RtlFreeHeap(RtlGetProcessHeap(), 0, Context);
124}
ADNS_API void adns_finish(adns_state ads)
Definition: setup.c:650
struct WINDNS_CONTEXT * PWINDNS_CONTEXT

◆ DnsReplaceRecordSetA()

DNS_STATUS WINAPI DnsReplaceRecordSetA ( PDNS_RECORDA  ,
DWORD  ,
HANDLE  ,
PVOID  ,
PVOID   
)

◆ DnsReplaceRecordSetUTF8()

DNS_STATUS WINAPI DnsReplaceRecordSetUTF8 ( PDNS_RECORDA  ,
DWORD  ,
HANDLE  ,
PVOID  ,
PVOID   
)

◆ DnsReplaceRecordSetW()

DNS_STATUS WINAPI DnsReplaceRecordSetW ( PDNS_RECORDW  ,
DWORD  ,
HANDLE  ,
PVOID  ,
PVOID   
)

◆ DnsServiceBrowse()

◆ DnsValidateName_A()

DNS_STATUS WINAPI DnsValidateName_A ( PCSTR  name,
DNS_NAME_FORMAT  format 
)

Definition at line 81 of file names.c.

82{
85
88
90 return ret;
91}
static const WCHAR nameW[]
Definition: main.c:49
DNS_STATUS WINAPI DnsValidateName_W(PCWSTR name, DNS_NAME_FORMAT format)
Definition: names.c:124
Definition: format.c:58
Definition: name.c:39
LONG DNS_STATUS
Definition: windns.h:183

Referenced by test_DnsValidateName_A().

◆ DnsValidateName_UTF8()

DNS_STATUS WINAPI DnsValidateName_UTF8 ( PCSTR  name,
DNS_NAME_FORMAT  format 
)

Definition at line 97 of file names.c.

98{
101
104
106 return ret;
107}
static LPWSTR dns_strdup_uw(const char *str)
Definition: precomp.h:37

◆ DnsValidateName_W()

DNS_STATUS WINAPI DnsValidateName_W ( PCWSTR  name,
DNS_NAME_FORMAT  format 
)

Definition at line 124 of file names.c.

125{
126 PCWSTR p;
127 unsigned int i, j, state = 0;
128 static const WCHAR invalid[] = {
129 '{','|','}','~','[','\\',']','^','\'',':',';','<','=','>',
130 '?','@','!','\"','#','$','%','^','`','(',')','+','/',',',0 };
131
132 if (!name) return ERROR_INVALID_NAME;
133
134 for (p = name, i = 0, j = 0; *p; p++, i++, j++)
135 {
136 if (*p == '.')
137 {
138 j = 0;
139 state |= HAS_DOT;
140 if (p[1] == '.') state |= HAS_DOT_DOT;
141 }
142 else if (*p < '0' || *p > '9') state |= HAS_NON_NUMERIC;
143 else state |= HAS_NUMERIC;
144
145 if (j > 62) state |= HAS_LONG_LABEL;
146
147 if (wcschr( invalid, *p )) state |= HAS_INVALID;
148 else if ((unsigned)*p > 127) state |= HAS_EXTENDED;
149 else if (*p == ' ') state |= HAS_SPACE;
150 else if (*p == '_') state |= HAS_UNDERSCORE;
151 else if (*p == '*') state |= HAS_ASTERISK;
152 }
153
154 if (i == 0 || i > 255 ||
155 (state & HAS_LONG_LABEL) ||
156 (state & HAS_DOT_DOT) ||
157 (name[0] == '.' && name[1])) return ERROR_INVALID_NAME;
158
159 switch (format)
160 {
161 case DnsNameDomain:
162 {
163 if (!(state & HAS_NON_NUMERIC) && (state & HAS_NUMERIC))
165 if ((state & HAS_EXTENDED) || (state & HAS_UNDERSCORE))
167 if ((state & HAS_SPACE) ||
168 (state & HAS_INVALID) ||
170 break;
171 }
173 {
174 if (state & HAS_DOT) return ERROR_INVALID_NAME;
175 if ((state & HAS_EXTENDED) || (state & HAS_UNDERSCORE))
177 if ((state & HAS_SPACE) ||
178 (state & HAS_INVALID) ||
180 break;
181 }
183 {
184 if (!(state & HAS_NON_NUMERIC) && (state & HAS_NUMERIC))
186 if ((state & HAS_EXTENDED) || (state & HAS_UNDERSCORE))
188 if ((state & HAS_SPACE) ||
189 (state & HAS_INVALID) ||
191 break;
192 }
194 {
195 if (state & HAS_DOT) return ERROR_INVALID_NAME;
196 if (!(state & HAS_NON_NUMERIC) && (state & HAS_NUMERIC))
198 if ((state & HAS_EXTENDED) || (state & HAS_UNDERSCORE))
200 if ((state & HAS_SPACE) ||
201 (state & HAS_INVALID) ||
203 break;
204 }
205 case DnsNameWildcard:
206 {
207 if (!(state & HAS_NON_NUMERIC) && (state & HAS_NUMERIC))
208 return ERROR_INVALID_NAME;
209 if (name[0] != '*') return ERROR_INVALID_NAME;
210 if (name[1] && name[1] != '.')
212 if ((state & HAS_EXTENDED) ||
213 (state & HAS_SPACE) ||
215 break;
216 }
217 case DnsNameSrvRecord:
218 {
219 if (!(state & HAS_NON_NUMERIC) && (state & HAS_NUMERIC))
220 return ERROR_INVALID_NAME;
221 if (name[0] != '_') return ERROR_INVALID_NAME;
222 if ((state & HAS_UNDERSCORE) && !name[1])
224 if ((state & HAS_EXTENDED) ||
225 (state & HAS_SPACE) ||
227 break;
228 }
229 default:
230 DPRINT1( "unknown format: %d\n", format );
231 break;
232 }
233 return ERROR_SUCCESS;
234}
static int state
Definition: maze.c:121
#define ERROR_SUCCESS
Definition: deptool.c:10
#define wcschr
Definition: compat.h:17
#define ERROR_INVALID_NAME
Definition: compat.h:103
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
Definition: glfuncs.h:250
#define HAS_INVALID
Definition: names.c:115
#define HAS_DOT_DOT
Definition: names.c:113
#define HAS_LONG_LABEL
Definition: names.c:118
#define HAS_UNDERSCORE
Definition: names.c:117
#define HAS_EXTENDED
Definition: names.c:109
#define HAS_SPACE
Definition: names.c:114
#define HAS_NON_NUMERIC
Definition: names.c:111
#define HAS_ASTERISK
Definition: names.c:116
#define HAS_DOT
Definition: names.c:112
#define HAS_NUMERIC
Definition: names.c:110
#define DNS_ERROR_NUMERIC_NAME
Definition: winerror.h:2694
#define DNS_ERROR_NON_RFC_NAME
Definition: winerror.h:2683
#define DNS_ERROR_INVALID_NAME_CHAR
Definition: winerror.h:2693
__wchar_t WCHAR
Definition: xmlstorage.h:180

Referenced by DnsValidateName_A(), DnsValidateName_UTF8(), IsValidComputerName(), and IsValidDomainName().

◆ DnsWriteQuestionToBuffer_UTF8()

BOOL WINAPI DnsWriteQuestionToBuffer_UTF8 ( PDNS_MESSAGE_BUFFER  ,
PDWORD  ,
PCSTR  ,
WORD  ,
WORD  ,
BOOL   
)

◆ DnsWriteQuestionToBuffer_W()

BOOL WINAPI DnsWriteQuestionToBuffer_W ( PDNS_MESSAGE_BUFFER  ,
PDWORD  ,
PCWSTR  ,
WORD  ,
WORD  ,
BOOL   
)