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 {
90 typedef [nodiscriminant] union {
91 [case(DNS_TYPE_A)] [flag(NDR_BIG_ENDIAN)] ipv4address ip;
92 [case(DNS_TYPE_NS)] dnsp_name ns;
93 [case(DNS_TYPE_CNAME)] dnsp_name cname;
94 [case(DNS_TYPE_SOA)] [flag(NDR_BIG_ENDIAN)] dnsp_soa soa;
95 [case(DNS_TYPE_MX)] [flag(NDR_BIG_ENDIAN)] dnsp_mx mx;
96 [case(DNS_TYPE_TXT)] dnsp_string txt;
97 [case(DNS_TYPE_PTR)] dnsp_name ptr;
98 [case(DNS_TYPE_AAAA)] ipv6address ip;
99 [case(DNS_TYPE_SRV)] [flag(NDR_BIG_ENDIAN)] dnsp_srv srv;
100 [default] [flag(NDR_REMAINING)] DATA_BLOB data;
103 /* this is the format for the dnsRecord attribute in the DNS
105 typedef [public] struct {
107 dns_record_type wType;
113 [switch_is(wType)] dnsRecordData data;
114 } dnsp_DnssrvRpcRecord;
118 this is a convenience hook for ndrdump
120 void decode_DnssrvRpcRecord(
121 [in] dnsp_DnssrvRpcRecord blob