4 IDL structures for DNSP structures
6 See [MS-DNSP].pdf in MCPP for details
12 note that this is not a real RPC interface. We are just using PIDL
13 to save us a lot of tedious hand parsing of the dnsRecord
14 attribute. The uuid is randomly generated.
17 uuid("bdd66e9e-d45f-4202-85c0-6132edc4f30a"),
19 pointer_default(unique),
20 helper
("../librpc/ndr/ndr_dnsp.h"),
21 helpstring("DNSP interfaces")
45 DNS_TYPE_AFSDB
= 0x12,
56 DNS_TYPE_NAPTR
= 0x23,
57 DNS_TYPE_DNAME
= 0x27,
59 DNS_TYPE_RRSIG
= 0x2E,
61 DNS_TYPE_DNSKEY
= 0x30,
62 DNS_TYPE_DHCID
= 0x31,
64 DNS_TYPE_WINS
= 0xFF01,
65 DNS_TYPE_WINSR
= 0xFF02
68 typedef [public] struct {
78 typedef [public] struct {
83 typedef [public] struct {
88 typedef [public] struct {
95 typedef [nodiscriminant
,gensize
] union {
96 [case(DNS_TYPE_A
)] [flag
(NDR_BIG_ENDIAN
)] ipv4address ipv4
;
97 [case(DNS_TYPE_NS
)] dnsp_name ns
;
98 [case(DNS_TYPE_CNAME
)] dnsp_name cname
;
99 [case(DNS_TYPE_SOA
)] [flag
(NDR_BIG_ENDIAN
)] dnsp_soa soa
;
100 [case(DNS_TYPE_MX
)] [flag
(NDR_BIG_ENDIAN
)] dnsp_mx mx
;
101 [case(DNS_TYPE_TXT
)] dnsp_string txt
;
102 [case(DNS_TYPE_PTR
)] dnsp_name
ptr;
103 [case(DNS_TYPE_HINFO
)] dnsp_hinfo hinfo
;
104 [case(DNS_TYPE_AAAA
)] ipv6address ipv6
;
105 [case(DNS_TYPE_SRV
)] [flag
(NDR_BIG_ENDIAN
)] dnsp_srv srv
;
106 [default] [flag
(NDR_REMAINING
)] DATA_BLOB data
;
109 /* this is the format for the dnsRecord attribute in the DNS
111 typedef [public] struct {
112 [value
(ndr_size_dnsRecordData
(&data
,wType
,ndr
->flags
))] uint16 wDataLength
;
113 dns_record_type wType
;
116 [flag
(NDR_BIG_ENDIAN
)] uint32 dwTtlSeconds
;
119 [switch_is(wType
)] dnsRecordData data
;
120 } dnsp_DnssrvRpcRecord
;
124 this is a convenience hook for ndrdump
126 void decode_DnssrvRpcRecord
(
127 [in] dnsp_DnssrvRpcRecord blob