source: trunk/server/librpc/idl/dnsp.idl@ 1010

Last change on this file since 1010 was 745, checked in by Silvan Scherrer, 13 years ago

Samba Server: updated trunk to 3.6.0

File size: 4.1 KB
Line 
1#include "idl_types.h"
2
3/*
4 IDL structures for DNSP structures
5
6 See [MS-DNSP].pdf in MCPP for details
7*/
8
9import "misc.idl";
10
11/*
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.
15 */
16[
17 uuid("bdd66e9e-d45f-4202-85c0-6132edc4f30a"),
18 version(0.0),
19 pointer_default(unique),
20 helper("../librpc/ndr/ndr_dnsp.h"),
21 helpstring("DNSP interfaces")
22]
23
24interface dnsp
25{
26 typedef [enum16bit] enum {
27 DNS_TYPE_TOMBSTONE = 0x0,
28 DNS_TYPE_A = 0x1,
29 DNS_TYPE_NS = 0x2,
30 DNS_TYPE_MD = 0x3,
31 DNS_TYPE_MF = 0x4,
32 DNS_TYPE_CNAME = 0x5,
33 DNS_TYPE_SOA = 0x6,
34 DNS_TYPE_MB = 0x7,
35 DNS_TYPE_MG = 0x8,
36 DNS_TYPE_MR = 0x9,
37 DNS_TYPE_NULL = 0xA,
38 DNS_TYPE_WKS = 0xB,
39 DNS_TYPE_PTR = 0xC,
40 DNS_TYPE_HINFO = 0xD,
41 DNS_TYPE_MINFO = 0xE,
42 DNS_TYPE_MX = 0xF,
43 DNS_TYPE_TXT = 0x10,
44 DNS_TYPE_RP = 0x11,
45 DNS_TYPE_AFSDB = 0x12,
46 DNS_TYPE_X25 = 0x13,
47 DNS_TYPE_ISDN = 0x14,
48 DNS_TYPE_RT = 0x15,
49 DNS_TYPE_SIG = 0x18,
50 DNS_TYPE_KEY = 0x19,
51 DNS_TYPE_AAAA = 0x1C,
52 DNS_TYPE_LOC = 0x1D,
53 DNS_TYPE_NXT = 0x1E,
54 DNS_TYPE_SRV = 0x21,
55 DNS_TYPE_ATMA = 0x22,
56 DNS_TYPE_NAPTR = 0x23,
57 DNS_TYPE_DNAME = 0x27,
58 DNS_TYPE_DS = 0x2B,
59 DNS_TYPE_RRSIG = 0x2E,
60 DNS_TYPE_NSEC = 0x2F,
61 DNS_TYPE_DNSKEY= 0x30,
62 DNS_TYPE_DHCID = 0x31,
63 DNS_TYPE_ALL = 0xFF,
64 DNS_TYPE_WINS = 0xFF01,
65 DNS_TYPE_WINSR = 0xFF02
66 } dns_record_type;
67
68 typedef [enum8bit] enum {
69 DNS_RANK_NONE = 0x00,
70 DNS_RANK_CACHE_BIT = 0x01,
71 DNS_RANK_ROOT_HINT = 0x08,
72 DNS_RANK_OUTSIDE_GLUE = 0x20,
73 DNS_RANK_CACHE_NA_ADDITIONAL = 0x31,
74 DNS_RANK_CACHE_NA_AUTHORITY = 0x41,
75 DNS_RANK_CACHE_A_ADDITIONAL = 0x51,
76 DNS_RANK_CACHE_NA_ANSWER = 0x61,
77 DNS_RANK_CACHE_A_AUTHORITY = 0x71,
78 DNS_RANK_GLUE = 0x80,
79 DNS_RANK_NS_GLUE = 0x82,
80 DNS_RANK_CACHE_A_ANSWER = 0xc1,
81 DNS_RANK_ZONE = 0xf0
82 } dns_record_rank;
83
84 typedef [public] struct {
85 uint32 serial;
86 uint32 refresh;
87 uint32 retry;
88 uint32 expire;
89 uint32 minimum;
90 dnsp_name mname;
91 dnsp_name rname;
92 } dnsp_soa;
93
94 typedef [public] struct {
95 uint16 wPriority;
96 dnsp_name nameTarget;
97 } dnsp_mx;
98
99 typedef [public] struct {
100 dnsp_string cpu;
101 dnsp_string os;
102 } dnsp_hinfo;
103
104 typedef [public] struct {
105 uint16 wPriority;
106 uint16 wWeight;
107 uint16 wPort;
108 dnsp_name nameTarget;
109 } dnsp_srv;
110
111 typedef [nodiscriminant,gensize] union {
112 [case(DNS_TYPE_TOMBSTONE)] NTTIME timestamp;
113 [case(DNS_TYPE_A)] [flag(NDR_BIG_ENDIAN)] ipv4address ipv4;
114 [case(DNS_TYPE_NS)] dnsp_name ns;
115 [case(DNS_TYPE_CNAME)] dnsp_name cname;
116 [case(DNS_TYPE_SOA)] [flag(NDR_BIG_ENDIAN)] dnsp_soa soa;
117 [case(DNS_TYPE_MX)] [flag(NDR_BIG_ENDIAN)] dnsp_mx mx;
118 [case(DNS_TYPE_TXT)] dnsp_string txt;
119 [case(DNS_TYPE_PTR)] dnsp_name ptr;
120 [case(DNS_TYPE_HINFO)] dnsp_hinfo hinfo;
121 [case(DNS_TYPE_AAAA)] ipv6address ipv6;
122 [case(DNS_TYPE_SRV)] [flag(NDR_BIG_ENDIAN)] dnsp_srv srv;
123 [default] [flag(NDR_REMAINING)] DATA_BLOB data;
124 } dnsRecordData;
125
126 /* this is the format for the dnsRecord attribute in the DNS
127 partitions in AD */
128 typedef [public] struct {
129 [value(ndr_size_dnsRecordData(&data,wType,ndr->flags))] uint16 wDataLength;
130 dns_record_type wType;
131 [value(5)] uint8 version;
132 dns_record_rank rank;
133 uint16 flags;
134 uint32 dwSerial;
135 [flag(NDR_BIG_ENDIAN)] uint32 dwTtlSeconds;
136 uint32 dwReserved;
137 uint32 dwTimeStamp;
138 [switch_is(wType)] dnsRecordData data;
139 } dnsp_DnssrvRpcRecord;
140
141
142 /*
143 this is a convenience hook for ndrdump
144 */
145 void decode_DnssrvRpcRecord(
146 [in] dnsp_DnssrvRpcRecord blob
147 );
148}
Note: See TracBrowser for help on using the repository browser.