Line data Source code
1 : /* parser auto-generated by pidl */
2 :
3 : #include "includes.h"
4 : #include "bin/default/librpc/gen_ndr/ndr_dfsblobs.h"
5 :
6 : #include "librpc/gen_ndr/ndr_misc.h"
7 6066 : static enum ndr_err_code ndr_push_DFS_HEADER_FLAG(struct ndr_push *ndr, ndr_flags_type ndr_flags, uint32_t r)
8 : {
9 6066 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
10 6064 : return NDR_ERR_SUCCESS;
11 : }
12 :
13 46 : static enum ndr_err_code ndr_pull_DFS_HEADER_FLAG(struct ndr_pull *ndr, ndr_flags_type ndr_flags, uint32_t *r)
14 : {
15 4 : uint32_t v;
16 46 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17 46 : *r = v;
18 46 : return NDR_ERR_SUCCESS;
19 : }
20 :
21 4 : _PUBLIC_ void ndr_print_DFS_HEADER_FLAG(struct ndr_print *ndr, const char *name, uint32_t r)
22 : {
23 4 : ndr_print_uint32(ndr, name, r);
24 4 : ndr->depth++;
25 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DFS_HEADER_FLAG_REFERAL_SVR", DFS_HEADER_FLAG_REFERAL_SVR, r);
26 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DFS_HEADER_FLAG_STORAGE_SVR", DFS_HEADER_FLAG_STORAGE_SVR, r);
27 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DFS_HEADER_FLAG_TARGET_BCK", DFS_HEADER_FLAG_TARGET_BCK, r);
28 4 : ndr->depth--;
29 4 : }
30 :
31 10192 : static enum ndr_err_code ndr_push_DFS_SERVER_TYPE(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum DFS_SERVER_TYPE r)
32 : {
33 10192 : NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
34 10190 : return NDR_ERR_SUCCESS;
35 : }
36 :
37 66 : static enum ndr_err_code ndr_pull_DFS_SERVER_TYPE(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum DFS_SERVER_TYPE *r)
38 : {
39 6 : uint16_t v;
40 66 : NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
41 66 : *r = v;
42 66 : return NDR_ERR_SUCCESS;
43 : }
44 :
45 6 : _PUBLIC_ void ndr_print_DFS_SERVER_TYPE(struct ndr_print *ndr, const char *name, enum DFS_SERVER_TYPE r)
46 : {
47 6 : const char *val = NULL;
48 :
49 6 : switch (r) {
50 6 : case DFS_SERVER_NON_ROOT: val = "DFS_SERVER_NON_ROOT"; break;
51 0 : case DFS_SERVER_ROOT: val = "DFS_SERVER_ROOT"; break;
52 : }
53 6 : ndr_print_enum(ndr, name, "ENUM", val, r);
54 6 : }
55 :
56 10192 : static enum ndr_err_code ndr_push_DFS_FLAGS_REFERRAL(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum DFS_FLAGS_REFERRAL r)
57 : {
58 10192 : NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
59 10190 : return NDR_ERR_SUCCESS;
60 : }
61 :
62 66 : static enum ndr_err_code ndr_pull_DFS_FLAGS_REFERRAL(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum DFS_FLAGS_REFERRAL *r)
63 : {
64 6 : uint16_t v;
65 66 : NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
66 66 : *r = v;
67 66 : return NDR_ERR_SUCCESS;
68 : }
69 :
70 6 : _PUBLIC_ void ndr_print_DFS_FLAGS_REFERRAL(struct ndr_print *ndr, const char *name, enum DFS_FLAGS_REFERRAL r)
71 : {
72 6 : const char *val = NULL;
73 :
74 6 : switch (r) {
75 6 : case DFS_FLAG_REFERRAL_DOMAIN_RESP: val = "DFS_FLAG_REFERRAL_DOMAIN_RESP"; break;
76 0 : case DFS_FLAG_REFERRAL_FIRST_TARGET_SET: val = "DFS_FLAG_REFERRAL_FIRST_TARGET_SET"; break;
77 : }
78 6 : ndr_print_enum(ndr, name, "ENUM", val, r);
79 6 : }
80 :
81 0 : static enum ndr_err_code ndr_push_dfs_referral_v1(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct dfs_referral_v1 *r)
82 : {
83 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
84 0 : if (ndr_flags & NDR_SCALARS) {
85 0 : NDR_CHECK(ndr_push_align(ndr, 5));
86 0 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
87 0 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->server_type));
88 0 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->entry_flags));
89 : {
90 0 : libndr_flags _flags_save_string = ndr->flags;
91 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
92 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->share_name));
93 0 : ndr->flags = _flags_save_string;
94 : }
95 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
96 : }
97 0 : if (ndr_flags & NDR_BUFFERS) {
98 : {
99 0 : libndr_flags _flags_save_string = ndr->flags;
100 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
101 0 : if (r->share_name) {
102 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->share_name));
103 : }
104 0 : ndr->flags = _flags_save_string;
105 : }
106 : }
107 0 : return NDR_ERR_SUCCESS;
108 : }
109 :
110 0 : static enum ndr_err_code ndr_pull_dfs_referral_v1(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct dfs_referral_v1 *r)
111 : {
112 0 : uint32_t _ptr_share_name;
113 0 : TALLOC_CTX *_mem_save_share_name_0 = NULL;
114 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
115 0 : if (ndr_flags & NDR_SCALARS) {
116 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
117 0 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
118 0 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->server_type));
119 0 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->entry_flags));
120 : {
121 0 : libndr_flags _flags_save_string = ndr->flags;
122 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
123 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_share_name));
124 0 : if (_ptr_share_name) {
125 0 : NDR_PULL_ALLOC(ndr, r->share_name);
126 : } else {
127 0 : r->share_name = NULL;
128 : }
129 0 : ndr->flags = _flags_save_string;
130 : }
131 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
132 : }
133 0 : if (ndr_flags & NDR_BUFFERS) {
134 : {
135 0 : libndr_flags _flags_save_string = ndr->flags;
136 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
137 0 : if (r->share_name) {
138 0 : _mem_save_share_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
139 0 : NDR_PULL_SET_MEM_CTX(ndr, r->share_name, 0);
140 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->share_name));
141 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_share_name_0, 0);
142 : }
143 0 : ndr->flags = _flags_save_string;
144 : }
145 : }
146 0 : return NDR_ERR_SUCCESS;
147 : }
148 :
149 0 : _PUBLIC_ void ndr_print_dfs_referral_v1(struct ndr_print *ndr, const char *name, const struct dfs_referral_v1 *r)
150 : {
151 0 : ndr_print_struct(ndr, name, "dfs_referral_v1");
152 0 : if (r == NULL) { ndr_print_null(ndr); return; }
153 0 : ndr->depth++;
154 0 : ndr_print_uint16(ndr, "size", r->size);
155 0 : ndr_print_uint16(ndr, "server_type", r->server_type);
156 0 : ndr_print_uint16(ndr, "entry_flags", r->entry_flags);
157 : {
158 0 : libndr_flags _flags_save_string = ndr->flags;
159 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
160 0 : ndr_print_ptr(ndr, "share_name", r->share_name);
161 0 : ndr->depth++;
162 0 : if (r->share_name) {
163 0 : ndr_print_string(ndr, "share_name", r->share_name);
164 : }
165 0 : ndr->depth--;
166 0 : ndr->flags = _flags_save_string;
167 : }
168 0 : ndr->depth--;
169 : }
170 :
171 0 : static enum ndr_err_code ndr_push_dfs_referral_v2(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct dfs_referral_v2 *r)
172 : {
173 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
174 0 : if (ndr_flags & NDR_SCALARS) {
175 0 : NDR_CHECK(ndr_push_align(ndr, 5));
176 0 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
177 0 : NDR_CHECK(ndr_push_DFS_SERVER_TYPE(ndr, NDR_SCALARS, r->server_type));
178 0 : NDR_CHECK(ndr_push_DFS_FLAGS_REFERRAL(ndr, NDR_SCALARS, r->entry_flags));
179 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->proximity));
180 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ttl));
181 : {
182 0 : libndr_flags _flags_save_string = ndr->flags;
183 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
184 0 : NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->DFS_path));
185 0 : ndr->flags = _flags_save_string;
186 : }
187 : {
188 0 : libndr_flags _flags_save_string = ndr->flags;
189 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
190 0 : NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->DFS_alt_path));
191 0 : ndr->flags = _flags_save_string;
192 : }
193 : {
194 0 : libndr_flags _flags_save_string = ndr->flags;
195 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
196 0 : NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->netw_address));
197 0 : ndr->flags = _flags_save_string;
198 : }
199 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
200 : }
201 0 : if (ndr_flags & NDR_BUFFERS) {
202 : {
203 0 : libndr_flags _flags_save_string = ndr->flags;
204 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
205 0 : if (r->DFS_path) {
206 0 : NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->DFS_path));
207 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->DFS_path));
208 : }
209 0 : ndr->flags = _flags_save_string;
210 : }
211 : {
212 0 : libndr_flags _flags_save_string = ndr->flags;
213 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
214 0 : if (r->DFS_alt_path) {
215 0 : NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->DFS_alt_path));
216 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->DFS_alt_path));
217 : }
218 0 : ndr->flags = _flags_save_string;
219 : }
220 : {
221 0 : libndr_flags _flags_save_string = ndr->flags;
222 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
223 0 : if (r->netw_address) {
224 0 : NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->netw_address));
225 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->netw_address));
226 : }
227 0 : ndr->flags = _flags_save_string;
228 : }
229 : }
230 0 : return NDR_ERR_SUCCESS;
231 : }
232 :
233 0 : static enum ndr_err_code ndr_pull_dfs_referral_v2(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct dfs_referral_v2 *r)
234 : {
235 0 : uint16_t _ptr_DFS_path;
236 0 : TALLOC_CTX *_mem_save_DFS_path_0 = NULL;
237 0 : uint16_t _ptr_DFS_alt_path;
238 0 : TALLOC_CTX *_mem_save_DFS_alt_path_0 = NULL;
239 0 : uint16_t _ptr_netw_address;
240 0 : TALLOC_CTX *_mem_save_netw_address_0 = NULL;
241 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
242 0 : if (ndr_flags & NDR_SCALARS) {
243 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
244 0 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
245 0 : NDR_CHECK(ndr_pull_DFS_SERVER_TYPE(ndr, NDR_SCALARS, &r->server_type));
246 0 : NDR_CHECK(ndr_pull_DFS_FLAGS_REFERRAL(ndr, NDR_SCALARS, &r->entry_flags));
247 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->proximity));
248 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ttl));
249 : {
250 0 : libndr_flags _flags_save_string = ndr->flags;
251 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
252 0 : NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_DFS_path));
253 0 : if (_ptr_DFS_path) {
254 0 : NDR_PULL_ALLOC(ndr, r->DFS_path);
255 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->DFS_path, _ptr_DFS_path));
256 : } else {
257 0 : r->DFS_path = NULL;
258 : }
259 0 : ndr->flags = _flags_save_string;
260 : }
261 : {
262 0 : libndr_flags _flags_save_string = ndr->flags;
263 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
264 0 : NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_DFS_alt_path));
265 0 : if (_ptr_DFS_alt_path) {
266 0 : NDR_PULL_ALLOC(ndr, r->DFS_alt_path);
267 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->DFS_alt_path, _ptr_DFS_alt_path));
268 : } else {
269 0 : r->DFS_alt_path = NULL;
270 : }
271 0 : ndr->flags = _flags_save_string;
272 : }
273 : {
274 0 : libndr_flags _flags_save_string = ndr->flags;
275 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
276 0 : NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_netw_address));
277 0 : if (_ptr_netw_address) {
278 0 : NDR_PULL_ALLOC(ndr, r->netw_address);
279 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->netw_address, _ptr_netw_address));
280 : } else {
281 0 : r->netw_address = NULL;
282 : }
283 0 : ndr->flags = _flags_save_string;
284 : }
285 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
286 : }
287 0 : if (ndr_flags & NDR_BUFFERS) {
288 : {
289 0 : libndr_flags _flags_save_string = ndr->flags;
290 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
291 0 : if (r->DFS_path) {
292 0 : uint32_t _relative_save_offset;
293 0 : _relative_save_offset = ndr->offset;
294 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->DFS_path));
295 0 : _mem_save_DFS_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
296 0 : NDR_PULL_SET_MEM_CTX(ndr, r->DFS_path, 0);
297 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->DFS_path));
298 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_DFS_path_0, 0);
299 0 : if (ndr->offset > ndr->relative_highest_offset) {
300 0 : ndr->relative_highest_offset = ndr->offset;
301 : }
302 0 : ndr->offset = _relative_save_offset;
303 : }
304 0 : ndr->flags = _flags_save_string;
305 : }
306 : {
307 0 : libndr_flags _flags_save_string = ndr->flags;
308 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
309 0 : if (r->DFS_alt_path) {
310 0 : uint32_t _relative_save_offset;
311 0 : _relative_save_offset = ndr->offset;
312 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->DFS_alt_path));
313 0 : _mem_save_DFS_alt_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
314 0 : NDR_PULL_SET_MEM_CTX(ndr, r->DFS_alt_path, 0);
315 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->DFS_alt_path));
316 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_DFS_alt_path_0, 0);
317 0 : if (ndr->offset > ndr->relative_highest_offset) {
318 0 : ndr->relative_highest_offset = ndr->offset;
319 : }
320 0 : ndr->offset = _relative_save_offset;
321 : }
322 0 : ndr->flags = _flags_save_string;
323 : }
324 : {
325 0 : libndr_flags _flags_save_string = ndr->flags;
326 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
327 0 : if (r->netw_address) {
328 0 : uint32_t _relative_save_offset;
329 0 : _relative_save_offset = ndr->offset;
330 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->netw_address));
331 0 : _mem_save_netw_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
332 0 : NDR_PULL_SET_MEM_CTX(ndr, r->netw_address, 0);
333 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->netw_address));
334 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_netw_address_0, 0);
335 0 : if (ndr->offset > ndr->relative_highest_offset) {
336 0 : ndr->relative_highest_offset = ndr->offset;
337 : }
338 0 : ndr->offset = _relative_save_offset;
339 : }
340 0 : ndr->flags = _flags_save_string;
341 : }
342 : }
343 0 : return NDR_ERR_SUCCESS;
344 : }
345 :
346 0 : _PUBLIC_ void ndr_print_dfs_referral_v2(struct ndr_print *ndr, const char *name, const struct dfs_referral_v2 *r)
347 : {
348 0 : ndr_print_struct(ndr, name, "dfs_referral_v2");
349 0 : if (r == NULL) { ndr_print_null(ndr); return; }
350 0 : ndr->depth++;
351 0 : ndr_print_uint16(ndr, "size", r->size);
352 0 : ndr_print_DFS_SERVER_TYPE(ndr, "server_type", r->server_type);
353 0 : ndr_print_DFS_FLAGS_REFERRAL(ndr, "entry_flags", r->entry_flags);
354 0 : ndr_print_uint32(ndr, "proximity", r->proximity);
355 0 : ndr_print_uint32(ndr, "ttl", r->ttl);
356 : {
357 0 : libndr_flags _flags_save_string = ndr->flags;
358 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
359 0 : ndr_print_ptr(ndr, "DFS_path", r->DFS_path);
360 0 : ndr->depth++;
361 0 : if (r->DFS_path) {
362 0 : ndr_print_string(ndr, "DFS_path", r->DFS_path);
363 : }
364 0 : ndr->depth--;
365 0 : ndr->flags = _flags_save_string;
366 : }
367 : {
368 0 : libndr_flags _flags_save_string = ndr->flags;
369 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
370 0 : ndr_print_ptr(ndr, "DFS_alt_path", r->DFS_alt_path);
371 0 : ndr->depth++;
372 0 : if (r->DFS_alt_path) {
373 0 : ndr_print_string(ndr, "DFS_alt_path", r->DFS_alt_path);
374 : }
375 0 : ndr->depth--;
376 0 : ndr->flags = _flags_save_string;
377 : }
378 : {
379 0 : libndr_flags _flags_save_string = ndr->flags;
380 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
381 0 : ndr_print_ptr(ndr, "netw_address", r->netw_address);
382 0 : ndr->depth++;
383 0 : if (r->netw_address) {
384 0 : ndr_print_string(ndr, "netw_address", r->netw_address);
385 : }
386 0 : ndr->depth--;
387 0 : ndr->flags = _flags_save_string;
388 : }
389 0 : ndr->depth--;
390 : }
391 :
392 20272 : static enum ndr_err_code ndr_push_dfs_normal_referral(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct dfs_normal_referral *r)
393 : {
394 20272 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
395 20272 : if (ndr_flags & NDR_SCALARS) {
396 10136 : NDR_CHECK(ndr_push_align(ndr, 5));
397 : {
398 10136 : libndr_flags _flags_save_string = ndr->flags;
399 10136 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
400 10136 : NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->DFS_path));
401 10136 : ndr->flags = _flags_save_string;
402 : }
403 : {
404 10136 : libndr_flags _flags_save_string = ndr->flags;
405 10136 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
406 10136 : NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->DFS_alt_path));
407 10136 : ndr->flags = _flags_save_string;
408 : }
409 : {
410 10136 : libndr_flags _flags_save_string = ndr->flags;
411 10136 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
412 10136 : NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->netw_address));
413 10136 : ndr->flags = _flags_save_string;
414 : }
415 10136 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
416 : }
417 20272 : if (ndr_flags & NDR_BUFFERS) {
418 : {
419 10136 : libndr_flags _flags_save_string = ndr->flags;
420 10136 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
421 10136 : if (r->DFS_path) {
422 10136 : NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->DFS_path));
423 10136 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->DFS_path));
424 : }
425 10136 : ndr->flags = _flags_save_string;
426 : }
427 : {
428 10136 : libndr_flags _flags_save_string = ndr->flags;
429 10136 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
430 10136 : if (r->DFS_alt_path) {
431 10136 : NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->DFS_alt_path));
432 10136 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->DFS_alt_path));
433 : }
434 10136 : ndr->flags = _flags_save_string;
435 : }
436 : {
437 10136 : libndr_flags _flags_save_string = ndr->flags;
438 10136 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
439 10136 : if (r->netw_address) {
440 10136 : NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->netw_address));
441 10136 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->netw_address));
442 : }
443 10136 : ndr->flags = _flags_save_string;
444 : }
445 : }
446 20272 : return NDR_ERR_SUCCESS;
447 : }
448 :
449 12 : static enum ndr_err_code ndr_pull_dfs_normal_referral(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct dfs_normal_referral *r)
450 : {
451 0 : uint16_t _ptr_DFS_path;
452 12 : TALLOC_CTX *_mem_save_DFS_path_0 = NULL;
453 0 : uint16_t _ptr_DFS_alt_path;
454 12 : TALLOC_CTX *_mem_save_DFS_alt_path_0 = NULL;
455 0 : uint16_t _ptr_netw_address;
456 12 : TALLOC_CTX *_mem_save_netw_address_0 = NULL;
457 12 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
458 12 : if (ndr_flags & NDR_SCALARS) {
459 6 : NDR_CHECK(ndr_pull_align(ndr, 5));
460 : {
461 6 : libndr_flags _flags_save_string = ndr->flags;
462 6 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
463 6 : NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_DFS_path));
464 6 : if (_ptr_DFS_path) {
465 6 : NDR_PULL_ALLOC(ndr, r->DFS_path);
466 6 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->DFS_path, _ptr_DFS_path));
467 : } else {
468 0 : r->DFS_path = NULL;
469 : }
470 6 : ndr->flags = _flags_save_string;
471 : }
472 : {
473 6 : libndr_flags _flags_save_string = ndr->flags;
474 6 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
475 6 : NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_DFS_alt_path));
476 6 : if (_ptr_DFS_alt_path) {
477 6 : NDR_PULL_ALLOC(ndr, r->DFS_alt_path);
478 6 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->DFS_alt_path, _ptr_DFS_alt_path));
479 : } else {
480 0 : r->DFS_alt_path = NULL;
481 : }
482 6 : ndr->flags = _flags_save_string;
483 : }
484 : {
485 6 : libndr_flags _flags_save_string = ndr->flags;
486 6 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
487 6 : NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_netw_address));
488 6 : if (_ptr_netw_address) {
489 6 : NDR_PULL_ALLOC(ndr, r->netw_address);
490 6 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->netw_address, _ptr_netw_address));
491 : } else {
492 0 : r->netw_address = NULL;
493 : }
494 6 : ndr->flags = _flags_save_string;
495 : }
496 6 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
497 : }
498 12 : if (ndr_flags & NDR_BUFFERS) {
499 : {
500 6 : libndr_flags _flags_save_string = ndr->flags;
501 6 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
502 6 : if (r->DFS_path) {
503 0 : uint32_t _relative_save_offset;
504 6 : _relative_save_offset = ndr->offset;
505 6 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->DFS_path));
506 6 : _mem_save_DFS_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
507 6 : NDR_PULL_SET_MEM_CTX(ndr, r->DFS_path, 0);
508 6 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->DFS_path));
509 6 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_DFS_path_0, 0);
510 6 : if (ndr->offset > ndr->relative_highest_offset) {
511 6 : ndr->relative_highest_offset = ndr->offset;
512 : }
513 6 : ndr->offset = _relative_save_offset;
514 : }
515 6 : ndr->flags = _flags_save_string;
516 : }
517 : {
518 6 : libndr_flags _flags_save_string = ndr->flags;
519 6 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
520 6 : if (r->DFS_alt_path) {
521 0 : uint32_t _relative_save_offset;
522 6 : _relative_save_offset = ndr->offset;
523 6 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->DFS_alt_path));
524 6 : _mem_save_DFS_alt_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
525 6 : NDR_PULL_SET_MEM_CTX(ndr, r->DFS_alt_path, 0);
526 6 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->DFS_alt_path));
527 6 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_DFS_alt_path_0, 0);
528 6 : if (ndr->offset > ndr->relative_highest_offset) {
529 6 : ndr->relative_highest_offset = ndr->offset;
530 : }
531 6 : ndr->offset = _relative_save_offset;
532 : }
533 6 : ndr->flags = _flags_save_string;
534 : }
535 : {
536 6 : libndr_flags _flags_save_string = ndr->flags;
537 6 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
538 6 : if (r->netw_address) {
539 0 : uint32_t _relative_save_offset;
540 6 : _relative_save_offset = ndr->offset;
541 6 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->netw_address));
542 6 : _mem_save_netw_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
543 6 : NDR_PULL_SET_MEM_CTX(ndr, r->netw_address, 0);
544 6 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->netw_address));
545 6 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_netw_address_0, 0);
546 6 : if (ndr->offset > ndr->relative_highest_offset) {
547 6 : ndr->relative_highest_offset = ndr->offset;
548 : }
549 6 : ndr->offset = _relative_save_offset;
550 : }
551 6 : ndr->flags = _flags_save_string;
552 : }
553 : }
554 12 : return NDR_ERR_SUCCESS;
555 : }
556 :
557 0 : _PUBLIC_ void ndr_print_dfs_normal_referral(struct ndr_print *ndr, const char *name, const struct dfs_normal_referral *r)
558 : {
559 0 : ndr_print_struct(ndr, name, "dfs_normal_referral");
560 0 : if (r == NULL) { ndr_print_null(ndr); return; }
561 0 : ndr->depth++;
562 : {
563 0 : libndr_flags _flags_save_string = ndr->flags;
564 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
565 0 : ndr_print_ptr(ndr, "DFS_path", r->DFS_path);
566 0 : ndr->depth++;
567 0 : if (r->DFS_path) {
568 0 : ndr_print_string(ndr, "DFS_path", r->DFS_path);
569 : }
570 0 : ndr->depth--;
571 0 : ndr->flags = _flags_save_string;
572 : }
573 : {
574 0 : libndr_flags _flags_save_string = ndr->flags;
575 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
576 0 : ndr_print_ptr(ndr, "DFS_alt_path", r->DFS_alt_path);
577 0 : ndr->depth++;
578 0 : if (r->DFS_alt_path) {
579 0 : ndr_print_string(ndr, "DFS_alt_path", r->DFS_alt_path);
580 : }
581 0 : ndr->depth--;
582 0 : ndr->flags = _flags_save_string;
583 : }
584 : {
585 0 : libndr_flags _flags_save_string = ndr->flags;
586 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
587 0 : ndr_print_ptr(ndr, "netw_address", r->netw_address);
588 0 : ndr->depth++;
589 0 : if (r->netw_address) {
590 0 : ndr_print_string(ndr, "netw_address", r->netw_address);
591 : }
592 0 : ndr->depth--;
593 0 : ndr->flags = _flags_save_string;
594 : }
595 0 : ndr->depth--;
596 : }
597 :
598 112 : static enum ndr_err_code ndr_push_dfs_domain_referral(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct dfs_domain_referral *r)
599 : {
600 112 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
601 112 : if (ndr_flags & NDR_SCALARS) {
602 56 : NDR_CHECK(ndr_push_align(ndr, 5));
603 : {
604 56 : libndr_flags _flags_save_string = ndr->flags;
605 56 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
606 56 : NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->special_name));
607 56 : ndr->flags = _flags_save_string;
608 : }
609 56 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nb_expanded_names));
610 : {
611 56 : libndr_flags _flags_save_string_array = ndr->flags;
612 56 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING|LIBNDR_FLAG_STR_NULLTERM);
613 56 : NDR_CHECK(ndr_push_short_relative_ptr1(ndr, r->expanded_names));
614 56 : ndr->flags = _flags_save_string_array;
615 : }
616 56 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
617 : }
618 112 : if (ndr_flags & NDR_BUFFERS) {
619 : {
620 56 : libndr_flags _flags_save_string = ndr->flags;
621 56 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
622 56 : if (r->special_name) {
623 56 : NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->special_name));
624 56 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->special_name));
625 : }
626 56 : ndr->flags = _flags_save_string;
627 : }
628 : {
629 56 : libndr_flags _flags_save_string_array = ndr->flags;
630 56 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING|LIBNDR_FLAG_STR_NULLTERM);
631 56 : if (r->expanded_names) {
632 20 : NDR_CHECK(ndr_push_short_relative_ptr2(ndr, r->expanded_names));
633 : {
634 2 : struct ndr_push *_ndr_expanded_names;
635 20 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_expanded_names, 0, -1));
636 20 : NDR_CHECK(ndr_push_string_array(_ndr_expanded_names, NDR_SCALARS, r->expanded_names));
637 20 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_expanded_names, 0, -1));
638 : }
639 : }
640 56 : ndr->flags = _flags_save_string_array;
641 : }
642 : }
643 108 : return NDR_ERR_SUCCESS;
644 : }
645 :
646 120 : static enum ndr_err_code ndr_pull_dfs_domain_referral(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct dfs_domain_referral *r)
647 : {
648 12 : uint16_t _ptr_special_name;
649 120 : TALLOC_CTX *_mem_save_special_name_0 = NULL;
650 12 : uint16_t _ptr_expanded_names;
651 120 : TALLOC_CTX *_mem_save_expanded_names_0 = NULL;
652 120 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
653 120 : if (ndr_flags & NDR_SCALARS) {
654 60 : NDR_CHECK(ndr_pull_align(ndr, 5));
655 : {
656 60 : libndr_flags _flags_save_string = ndr->flags;
657 60 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
658 60 : NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_special_name));
659 60 : if (_ptr_special_name) {
660 60 : NDR_PULL_ALLOC(ndr, r->special_name);
661 60 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->special_name, _ptr_special_name));
662 : } else {
663 0 : r->special_name = NULL;
664 : }
665 60 : ndr->flags = _flags_save_string;
666 : }
667 60 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nb_expanded_names));
668 : {
669 60 : libndr_flags _flags_save_string_array = ndr->flags;
670 60 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING|LIBNDR_FLAG_STR_NULLTERM);
671 60 : NDR_CHECK(ndr_pull_relative_ptr_short(ndr, &_ptr_expanded_names));
672 60 : if (_ptr_expanded_names) {
673 20 : NDR_PULL_ALLOC(ndr, r->expanded_names);
674 20 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->expanded_names, _ptr_expanded_names));
675 : } else {
676 40 : r->expanded_names = NULL;
677 : }
678 60 : ndr->flags = _flags_save_string_array;
679 : }
680 60 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
681 : }
682 120 : if (ndr_flags & NDR_BUFFERS) {
683 : {
684 60 : libndr_flags _flags_save_string = ndr->flags;
685 60 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
686 60 : if (r->special_name) {
687 6 : uint32_t _relative_save_offset;
688 60 : _relative_save_offset = ndr->offset;
689 60 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->special_name));
690 60 : _mem_save_special_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
691 60 : NDR_PULL_SET_MEM_CTX(ndr, r->special_name, 0);
692 60 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->special_name));
693 60 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_special_name_0, 0);
694 60 : if (ndr->offset > ndr->relative_highest_offset) {
695 60 : ndr->relative_highest_offset = ndr->offset;
696 : }
697 60 : ndr->offset = _relative_save_offset;
698 : }
699 60 : ndr->flags = _flags_save_string;
700 : }
701 : {
702 60 : libndr_flags _flags_save_string_array = ndr->flags;
703 60 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING|LIBNDR_FLAG_STR_NULLTERM);
704 60 : if (r->expanded_names) {
705 2 : uint32_t _relative_save_offset;
706 20 : _relative_save_offset = ndr->offset;
707 20 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->expanded_names));
708 20 : _mem_save_expanded_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
709 20 : NDR_PULL_SET_MEM_CTX(ndr, r->expanded_names, 0);
710 : {
711 2 : struct ndr_pull *_ndr_expanded_names;
712 20 : ssize_t sub_size = -1;
713 20 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_expanded_names, 0, sub_size));
714 20 : NDR_CHECK(ndr_pull_string_array(_ndr_expanded_names, NDR_SCALARS, &r->expanded_names));
715 20 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_expanded_names, 0, sub_size));
716 : }
717 20 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_expanded_names_0, 0);
718 20 : if (ndr->offset > ndr->relative_highest_offset) {
719 20 : ndr->relative_highest_offset = ndr->offset;
720 : }
721 20 : ndr->offset = _relative_save_offset;
722 : }
723 60 : ndr->flags = _flags_save_string_array;
724 : }
725 : }
726 108 : return NDR_ERR_SUCCESS;
727 : }
728 :
729 6 : _PUBLIC_ void ndr_print_dfs_domain_referral(struct ndr_print *ndr, const char *name, const struct dfs_domain_referral *r)
730 : {
731 6 : ndr_print_struct(ndr, name, "dfs_domain_referral");
732 6 : if (r == NULL) { ndr_print_null(ndr); return; }
733 6 : ndr->depth++;
734 : {
735 6 : libndr_flags _flags_save_string = ndr->flags;
736 6 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
737 6 : ndr_print_ptr(ndr, "special_name", r->special_name);
738 6 : ndr->depth++;
739 6 : if (r->special_name) {
740 6 : ndr_print_string(ndr, "special_name", r->special_name);
741 : }
742 6 : ndr->depth--;
743 6 : ndr->flags = _flags_save_string;
744 : }
745 6 : ndr_print_uint16(ndr, "nb_expanded_names", r->nb_expanded_names);
746 : {
747 6 : libndr_flags _flags_save_string_array = ndr->flags;
748 6 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING|LIBNDR_FLAG_STR_NULLTERM);
749 6 : ndr_print_ptr(ndr, "expanded_names", r->expanded_names);
750 6 : ndr->depth++;
751 6 : if (r->expanded_names) {
752 2 : ndr_print_string_array(ndr, "expanded_names", r->expanded_names);
753 : }
754 6 : ndr->depth--;
755 6 : ndr->flags = _flags_save_string_array;
756 : }
757 6 : ndr->depth--;
758 : }
759 :
760 20384 : static enum ndr_err_code ndr_push_dfs_referral(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union dfs_referral *r)
761 : {
762 4 : uint32_t level;
763 20384 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
764 20384 : if (ndr_flags & NDR_SCALARS) {
765 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
766 10192 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
767 10192 : NDR_CHECK(ndr_push_union_align(ndr, 5));
768 10192 : switch (level) {
769 10136 : case 0: {
770 10136 : NDR_CHECK(ndr_push_dfs_normal_referral(ndr, NDR_SCALARS, &r->r1));
771 10136 : break; }
772 :
773 56 : case 2: {
774 56 : NDR_CHECK(ndr_push_dfs_domain_referral(ndr, NDR_SCALARS, &r->r2));
775 54 : break; }
776 :
777 0 : default: {
778 0 : break; }
779 :
780 : }
781 : }
782 20384 : if (ndr_flags & NDR_BUFFERS) {
783 10192 : if (!(ndr_flags & NDR_SCALARS)) {
784 : /* We didn't get it above, and the token is not needed after this. */
785 10192 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
786 : }
787 10192 : switch (level) {
788 10136 : case 0:
789 10136 : NDR_CHECK(ndr_push_dfs_normal_referral(ndr, NDR_BUFFERS, &r->r1));
790 10136 : break;
791 :
792 56 : case 2:
793 56 : NDR_CHECK(ndr_push_dfs_domain_referral(ndr, NDR_BUFFERS, &r->r2));
794 54 : break;
795 :
796 0 : default:
797 0 : break;
798 :
799 : }
800 : }
801 20380 : return NDR_ERR_SUCCESS;
802 : }
803 :
804 132 : static enum ndr_err_code ndr_pull_dfs_referral(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union dfs_referral *r)
805 : {
806 12 : uint32_t level;
807 132 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
808 132 : if (ndr_flags & NDR_SCALARS) {
809 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
810 66 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
811 66 : NDR_CHECK(ndr_pull_union_align(ndr, 5));
812 66 : switch (level) {
813 6 : case 0: {
814 6 : NDR_CHECK(ndr_pull_dfs_normal_referral(ndr, NDR_SCALARS, &r->r1));
815 6 : break; }
816 :
817 60 : case 2: {
818 60 : NDR_CHECK(ndr_pull_dfs_domain_referral(ndr, NDR_SCALARS, &r->r2));
819 54 : break; }
820 :
821 0 : default: {
822 0 : break; }
823 :
824 : }
825 : }
826 132 : if (ndr_flags & NDR_BUFFERS) {
827 66 : if (!(ndr_flags & NDR_SCALARS)) {
828 : /* We didn't get it above, and the token is not needed after this. */
829 66 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
830 : }
831 66 : switch (level) {
832 6 : case 0:
833 6 : NDR_CHECK(ndr_pull_dfs_normal_referral(ndr, NDR_BUFFERS, &r->r1));
834 6 : break;
835 :
836 60 : case 2:
837 60 : NDR_CHECK(ndr_pull_dfs_domain_referral(ndr, NDR_BUFFERS, &r->r2));
838 54 : break;
839 :
840 0 : default:
841 0 : break;
842 :
843 : }
844 : }
845 120 : return NDR_ERR_SUCCESS;
846 : }
847 :
848 6 : _PUBLIC_ void ndr_print_dfs_referral(struct ndr_print *ndr, const char *name, const union dfs_referral *r)
849 : {
850 6 : uint32_t level;
851 6 : level = ndr_print_steal_switch_value(ndr, r);
852 6 : ndr_print_union(ndr, name, level, "dfs_referral");
853 6 : switch (level) {
854 0 : case 0:
855 0 : ndr_print_dfs_normal_referral(ndr, "r1", &r->r1);
856 0 : break;
857 :
858 6 : case 2:
859 6 : ndr_print_dfs_domain_referral(ndr, "r2", &r->r2);
860 6 : break;
861 :
862 0 : default:
863 0 : break;
864 :
865 : }
866 6 : }
867 :
868 20382 : static enum ndr_err_code ndr_push_dfs_padding(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union dfs_padding *r)
869 : {
870 2 : uint32_t level;
871 20382 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
872 20382 : if (ndr_flags & NDR_SCALARS) {
873 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
874 10192 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
875 10192 : NDR_CHECK(ndr_push_union_align(ndr, 1));
876 10192 : switch (level) {
877 10192 : case 16: {
878 10192 : NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->value, 16));
879 10190 : break; }
880 :
881 0 : default: {
882 0 : break; }
883 :
884 : }
885 : }
886 20380 : return NDR_ERR_SUCCESS;
887 : }
888 :
889 132 : static enum ndr_err_code ndr_pull_dfs_padding(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union dfs_padding *r)
890 : {
891 12 : uint32_t level;
892 132 : uint32_t size_value_0 = 0;
893 132 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
894 132 : if (ndr_flags & NDR_SCALARS) {
895 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
896 66 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
897 66 : NDR_CHECK(ndr_pull_union_align(ndr, 1));
898 66 : switch (level) {
899 62 : case 16: {
900 62 : size_value_0 = 16;
901 62 : NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->value, size_value_0));
902 60 : break; }
903 :
904 0 : default: {
905 0 : break; }
906 :
907 : }
908 : }
909 120 : return NDR_ERR_SUCCESS;
910 : }
911 :
912 6 : _PUBLIC_ void ndr_print_dfs_padding(struct ndr_print *ndr, const char *name, const union dfs_padding *r)
913 : {
914 6 : uint32_t level;
915 6 : level = ndr_print_steal_switch_value(ndr, r);
916 6 : ndr_print_union(ndr, name, level, "dfs_padding");
917 6 : switch (level) {
918 2 : case 16:
919 2 : ndr_print_array_uint8(ndr, "value", r->value, 16);
920 2 : break;
921 :
922 0 : default:
923 0 : break;
924 :
925 : }
926 6 : }
927 :
928 20384 : static enum ndr_err_code ndr_push_dfs_referral_v3(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct dfs_referral_v3 *r)
929 : {
930 : {
931 20384 : libndr_flags _flags_save_STRUCT = ndr->flags;
932 20384 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
933 20384 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
934 20384 : if (ndr_flags & NDR_SCALARS) {
935 10192 : NDR_CHECK(ndr_push_align(ndr, 5));
936 10192 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
937 10194 : NDR_CHECK(ndr_push_DFS_SERVER_TYPE(ndr, NDR_SCALARS, r->server_type));
938 10194 : NDR_CHECK(ndr_push_DFS_FLAGS_REFERRAL(ndr, NDR_SCALARS, r->entry_flags));
939 10192 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ttl));
940 10192 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->referrals, r->entry_flags & DFS_FLAG_REFERRAL_DOMAIN_RESP));
941 10192 : NDR_CHECK(ndr_push_dfs_referral(ndr, NDR_SCALARS, &r->referrals));
942 10192 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->service_site_guid, r->size - 18));
943 10192 : NDR_CHECK(ndr_push_dfs_padding(ndr, NDR_SCALARS, &r->service_site_guid));
944 10192 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
945 : }
946 20384 : if (ndr_flags & NDR_BUFFERS) {
947 10192 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->referrals, r->entry_flags & DFS_FLAG_REFERRAL_DOMAIN_RESP));
948 10192 : NDR_CHECK(ndr_push_dfs_referral(ndr, NDR_BUFFERS, &r->referrals));
949 10192 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->service_site_guid, r->size - 18));
950 10194 : NDR_CHECK(ndr_push_dfs_padding(ndr, NDR_BUFFERS, &r->service_site_guid));
951 : }
952 20384 : ndr->flags = _flags_save_STRUCT;
953 : }
954 20384 : return NDR_ERR_SUCCESS;
955 : }
956 :
957 132 : static enum ndr_err_code ndr_pull_dfs_referral_v3(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct dfs_referral_v3 *r)
958 : {
959 : {
960 132 : libndr_flags _flags_save_STRUCT = ndr->flags;
961 132 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
962 132 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
963 132 : if (ndr_flags & NDR_SCALARS) {
964 66 : NDR_CHECK(ndr_pull_align(ndr, 5));
965 66 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
966 72 : NDR_CHECK(ndr_pull_DFS_SERVER_TYPE(ndr, NDR_SCALARS, &r->server_type));
967 72 : NDR_CHECK(ndr_pull_DFS_FLAGS_REFERRAL(ndr, NDR_SCALARS, &r->entry_flags));
968 66 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ttl));
969 66 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->referrals, r->entry_flags & DFS_FLAG_REFERRAL_DOMAIN_RESP));
970 66 : NDR_CHECK(ndr_pull_dfs_referral(ndr, NDR_SCALARS, &r->referrals));
971 66 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->service_site_guid, r->size - 18));
972 66 : NDR_CHECK(ndr_pull_dfs_padding(ndr, NDR_SCALARS, &r->service_site_guid));
973 66 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
974 : }
975 132 : if (ndr_flags & NDR_BUFFERS) {
976 66 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->referrals, r->entry_flags & DFS_FLAG_REFERRAL_DOMAIN_RESP));
977 66 : NDR_CHECK(ndr_pull_dfs_referral(ndr, NDR_BUFFERS, &r->referrals));
978 66 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->service_site_guid, r->size - 18));
979 66 : NDR_CHECK(ndr_pull_dfs_padding(ndr, NDR_BUFFERS, &r->service_site_guid));
980 : }
981 132 : ndr->flags = _flags_save_STRUCT;
982 : }
983 132 : return NDR_ERR_SUCCESS;
984 : }
985 :
986 6 : _PUBLIC_ void ndr_print_dfs_referral_v3(struct ndr_print *ndr, const char *name, const struct dfs_referral_v3 *r)
987 : {
988 6 : ndr_print_struct(ndr, name, "dfs_referral_v3");
989 6 : if (r == NULL) { ndr_print_null(ndr); return; }
990 : {
991 6 : libndr_flags _flags_save_STRUCT = ndr->flags;
992 6 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
993 6 : ndr->depth++;
994 6 : ndr_print_uint16(ndr, "size", r->size);
995 6 : ndr_print_DFS_SERVER_TYPE(ndr, "server_type", r->server_type);
996 6 : ndr_print_DFS_FLAGS_REFERRAL(ndr, "entry_flags", r->entry_flags);
997 6 : ndr_print_uint32(ndr, "ttl", r->ttl);
998 6 : ndr_print_set_switch_value(ndr, &r->referrals, r->entry_flags & DFS_FLAG_REFERRAL_DOMAIN_RESP);
999 6 : ndr_print_dfs_referral(ndr, "referrals", &r->referrals);
1000 6 : ndr_print_set_switch_value(ndr, &r->service_site_guid, r->size - 18);
1001 6 : ndr_print_dfs_padding(ndr, "service_site_guid", &r->service_site_guid);
1002 6 : ndr->depth--;
1003 6 : ndr->flags = _flags_save_STRUCT;
1004 : }
1005 : }
1006 :
1007 20384 : static enum ndr_err_code ndr_push_dfs_referral_version(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union dfs_referral_version *r)
1008 : {
1009 4 : uint32_t level;
1010 20384 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
1011 20384 : if (ndr_flags & NDR_SCALARS) {
1012 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
1013 10192 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
1014 10192 : NDR_CHECK(ndr_push_union_align(ndr, 5));
1015 10192 : switch (level) {
1016 0 : case 1: {
1017 0 : NDR_CHECK(ndr_push_dfs_referral_v1(ndr, NDR_SCALARS, &r->v1));
1018 0 : break; }
1019 :
1020 0 : case 2: {
1021 0 : NDR_CHECK(ndr_push_dfs_referral_v2(ndr, NDR_SCALARS, &r->v2));
1022 0 : break; }
1023 :
1024 10189 : case 3: {
1025 10189 : NDR_CHECK(ndr_push_dfs_referral_v3(ndr, NDR_SCALARS, &r->v3));
1026 10187 : break; }
1027 :
1028 3 : case 4: {
1029 3 : NDR_CHECK(ndr_push_dfs_referral_v3(ndr, NDR_SCALARS, &r->v4));
1030 3 : break; }
1031 :
1032 0 : default: {
1033 0 : break; }
1034 :
1035 : }
1036 : }
1037 20384 : if (ndr_flags & NDR_BUFFERS) {
1038 10192 : if (!(ndr_flags & NDR_SCALARS)) {
1039 : /* We didn't get it above, and the token is not needed after this. */
1040 10192 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
1041 : }
1042 10192 : switch (level) {
1043 0 : case 1:
1044 0 : NDR_CHECK(ndr_push_dfs_referral_v1(ndr, NDR_BUFFERS, &r->v1));
1045 0 : break;
1046 :
1047 0 : case 2:
1048 0 : NDR_CHECK(ndr_push_dfs_referral_v2(ndr, NDR_BUFFERS, &r->v2));
1049 0 : break;
1050 :
1051 10189 : case 3:
1052 10189 : NDR_CHECK(ndr_push_dfs_referral_v3(ndr, NDR_BUFFERS, &r->v3));
1053 10187 : break;
1054 :
1055 3 : case 4:
1056 3 : NDR_CHECK(ndr_push_dfs_referral_v3(ndr, NDR_BUFFERS, &r->v4));
1057 3 : break;
1058 :
1059 0 : default:
1060 0 : break;
1061 :
1062 : }
1063 : }
1064 20380 : return NDR_ERR_SUCCESS;
1065 : }
1066 :
1067 132 : static enum ndr_err_code ndr_pull_dfs_referral_version(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union dfs_referral_version *r)
1068 : {
1069 12 : uint32_t level;
1070 132 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
1071 132 : if (ndr_flags & NDR_SCALARS) {
1072 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
1073 66 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
1074 66 : NDR_CHECK(ndr_pull_union_align(ndr, 5));
1075 66 : switch (level) {
1076 0 : case 1: {
1077 0 : NDR_CHECK(ndr_pull_dfs_referral_v1(ndr, NDR_SCALARS, &r->v1));
1078 0 : break; }
1079 :
1080 0 : case 2: {
1081 0 : NDR_CHECK(ndr_pull_dfs_referral_v2(ndr, NDR_SCALARS, &r->v2));
1082 0 : break; }
1083 :
1084 63 : case 3: {
1085 63 : NDR_CHECK(ndr_pull_dfs_referral_v3(ndr, NDR_SCALARS, &r->v3));
1086 57 : break; }
1087 :
1088 3 : case 4: {
1089 3 : NDR_CHECK(ndr_pull_dfs_referral_v3(ndr, NDR_SCALARS, &r->v4));
1090 3 : break; }
1091 :
1092 0 : default: {
1093 0 : break; }
1094 :
1095 : }
1096 : }
1097 132 : if (ndr_flags & NDR_BUFFERS) {
1098 66 : if (!(ndr_flags & NDR_SCALARS)) {
1099 : /* We didn't get it above, and the token is not needed after this. */
1100 66 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
1101 : }
1102 66 : switch (level) {
1103 0 : case 1:
1104 0 : NDR_CHECK(ndr_pull_dfs_referral_v1(ndr, NDR_BUFFERS, &r->v1));
1105 0 : break;
1106 :
1107 0 : case 2:
1108 0 : NDR_CHECK(ndr_pull_dfs_referral_v2(ndr, NDR_BUFFERS, &r->v2));
1109 0 : break;
1110 :
1111 63 : case 3:
1112 63 : NDR_CHECK(ndr_pull_dfs_referral_v3(ndr, NDR_BUFFERS, &r->v3));
1113 57 : break;
1114 :
1115 3 : case 4:
1116 3 : NDR_CHECK(ndr_pull_dfs_referral_v3(ndr, NDR_BUFFERS, &r->v4));
1117 3 : break;
1118 :
1119 0 : default:
1120 0 : break;
1121 :
1122 : }
1123 : }
1124 120 : return NDR_ERR_SUCCESS;
1125 : }
1126 :
1127 6 : _PUBLIC_ void ndr_print_dfs_referral_version(struct ndr_print *ndr, const char *name, const union dfs_referral_version *r)
1128 : {
1129 6 : uint32_t level;
1130 6 : level = ndr_print_steal_switch_value(ndr, r);
1131 6 : ndr_print_union(ndr, name, level, "dfs_referral_version");
1132 6 : switch (level) {
1133 0 : case 1:
1134 0 : ndr_print_dfs_referral_v1(ndr, "v1", &r->v1);
1135 0 : break;
1136 :
1137 0 : case 2:
1138 0 : ndr_print_dfs_referral_v2(ndr, "v2", &r->v2);
1139 0 : break;
1140 :
1141 6 : case 3:
1142 6 : ndr_print_dfs_referral_v3(ndr, "v3", &r->v3);
1143 6 : break;
1144 :
1145 0 : case 4:
1146 0 : ndr_print_dfs_referral_v3(ndr, "v4", &r->v4);
1147 0 : break;
1148 :
1149 0 : default:
1150 0 : break;
1151 :
1152 : }
1153 6 : }
1154 :
1155 20384 : static enum ndr_err_code ndr_push_dfs_referral_type(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct dfs_referral_type *r)
1156 : {
1157 20384 : uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
1158 : {
1159 20384 : libndr_flags _flags_save_STRUCT = ndr->flags;
1160 20384 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
1161 20384 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
1162 20384 : if (ndr_flags & NDR_SCALARS) {
1163 10192 : NDR_CHECK(ndr_push_align(ndr, 5));
1164 10192 : NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
1165 10192 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->version));
1166 10192 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->referral, r->version));
1167 10192 : NDR_CHECK(ndr_push_dfs_referral_version(ndr, NDR_SCALARS, &r->referral));
1168 10192 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1169 : }
1170 20384 : if (ndr_flags & NDR_BUFFERS) {
1171 10192 : NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
1172 10192 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->referral, r->version));
1173 10192 : NDR_CHECK(ndr_push_dfs_referral_version(ndr, NDR_BUFFERS, &r->referral));
1174 : }
1175 20384 : ndr->flags = _flags_save_STRUCT;
1176 : }
1177 20384 : ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
1178 20384 : return NDR_ERR_SUCCESS;
1179 : }
1180 :
1181 132 : static enum ndr_err_code ndr_pull_dfs_referral_type(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct dfs_referral_type *r)
1182 : {
1183 132 : uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
1184 : {
1185 132 : libndr_flags _flags_save_STRUCT = ndr->flags;
1186 132 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
1187 132 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
1188 132 : if (ndr_flags & NDR_SCALARS) {
1189 66 : NDR_CHECK(ndr_pull_align(ndr, 5));
1190 66 : NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
1191 66 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->version));
1192 66 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->referral, r->version));
1193 66 : NDR_CHECK(ndr_pull_dfs_referral_version(ndr, NDR_SCALARS, &r->referral));
1194 66 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1195 : }
1196 132 : if (ndr_flags & NDR_BUFFERS) {
1197 66 : NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
1198 66 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->referral, r->version));
1199 66 : NDR_CHECK(ndr_pull_dfs_referral_version(ndr, NDR_BUFFERS, &r->referral));
1200 : }
1201 132 : ndr->flags = _flags_save_STRUCT;
1202 : }
1203 132 : ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
1204 132 : return NDR_ERR_SUCCESS;
1205 : }
1206 :
1207 6 : _PUBLIC_ void ndr_print_dfs_referral_type(struct ndr_print *ndr, const char *name, const struct dfs_referral_type *r)
1208 : {
1209 6 : ndr_print_struct(ndr, name, "dfs_referral_type");
1210 6 : if (r == NULL) { ndr_print_null(ndr); return; }
1211 : {
1212 6 : libndr_flags _flags_save_STRUCT = ndr->flags;
1213 6 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_NOALIGN);
1214 6 : ndr->depth++;
1215 6 : ndr_print_uint16(ndr, "version", r->version);
1216 6 : ndr_print_set_switch_value(ndr, &r->referral, r->version);
1217 6 : ndr_print_dfs_referral_version(ndr, "referral", &r->referral);
1218 6 : ndr->depth--;
1219 6 : ndr->flags = _flags_save_STRUCT;
1220 : }
1221 : }
1222 :
1223 6066 : _PUBLIC_ enum ndr_err_code ndr_push_dfs_referral_resp(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct dfs_referral_resp *r)
1224 : {
1225 2 : uint32_t cntr_referral_entries_0;
1226 6066 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
1227 6066 : if (ndr_flags & NDR_SCALARS) {
1228 6066 : NDR_CHECK(ndr_push_align(ndr, 5));
1229 6066 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->path_consumed));
1230 6066 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nb_referrals));
1231 6068 : NDR_CHECK(ndr_push_DFS_HEADER_FLAG(ndr, NDR_SCALARS, r->header_flags));
1232 16258 : for (cntr_referral_entries_0 = 0; cntr_referral_entries_0 < (r->nb_referrals); cntr_referral_entries_0++) {
1233 10192 : NDR_CHECK(ndr_push_dfs_referral_type(ndr, NDR_SCALARS, &r->referral_entries[cntr_referral_entries_0]));
1234 : }
1235 6066 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1236 : }
1237 6066 : if (ndr_flags & NDR_BUFFERS) {
1238 16258 : for (cntr_referral_entries_0 = 0; cntr_referral_entries_0 < (r->nb_referrals); cntr_referral_entries_0++) {
1239 10192 : NDR_CHECK(ndr_push_dfs_referral_type(ndr, NDR_BUFFERS, &r->referral_entries[cntr_referral_entries_0]));
1240 : }
1241 : }
1242 6064 : return NDR_ERR_SUCCESS;
1243 : }
1244 :
1245 46 : _PUBLIC_ enum ndr_err_code ndr_pull_dfs_referral_resp(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct dfs_referral_resp *r)
1246 : {
1247 46 : uint32_t size_referral_entries_0 = 0;
1248 4 : uint32_t cntr_referral_entries_0;
1249 46 : TALLOC_CTX *_mem_save_referral_entries_0 = NULL;
1250 46 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
1251 46 : if (ndr_flags & NDR_SCALARS) {
1252 46 : NDR_CHECK(ndr_pull_align(ndr, 5));
1253 46 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->path_consumed));
1254 46 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nb_referrals));
1255 50 : NDR_CHECK(ndr_pull_DFS_HEADER_FLAG(ndr, NDR_SCALARS, &r->header_flags));
1256 46 : size_referral_entries_0 = r->nb_referrals;
1257 46 : NDR_PULL_ALLOC_N(ndr, r->referral_entries, size_referral_entries_0);
1258 46 : _mem_save_referral_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
1259 46 : NDR_PULL_SET_MEM_CTX(ndr, r->referral_entries, 0);
1260 112 : for (cntr_referral_entries_0 = 0; cntr_referral_entries_0 < (size_referral_entries_0); cntr_referral_entries_0++) {
1261 66 : NDR_CHECK(ndr_pull_dfs_referral_type(ndr, NDR_SCALARS, &r->referral_entries[cntr_referral_entries_0]));
1262 : }
1263 46 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_referral_entries_0, 0);
1264 46 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1265 : }
1266 46 : if (ndr_flags & NDR_BUFFERS) {
1267 46 : size_referral_entries_0 = r->nb_referrals;
1268 46 : _mem_save_referral_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
1269 46 : NDR_PULL_SET_MEM_CTX(ndr, r->referral_entries, 0);
1270 112 : for (cntr_referral_entries_0 = 0; cntr_referral_entries_0 < (size_referral_entries_0); cntr_referral_entries_0++) {
1271 66 : NDR_CHECK(ndr_pull_dfs_referral_type(ndr, NDR_BUFFERS, &r->referral_entries[cntr_referral_entries_0]));
1272 : }
1273 46 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_referral_entries_0, 0);
1274 106 : for (cntr_referral_entries_0 = 0; cntr_referral_entries_0 < (size_referral_entries_0); cntr_referral_entries_0++) {
1275 : }
1276 : }
1277 42 : return NDR_ERR_SUCCESS;
1278 : }
1279 :
1280 0 : static void ndr_print_flags_dfs_referral_resp(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct dfs_referral_resp *r)
1281 : {
1282 0 : ndr_print_dfs_referral_resp(ndr, name, r);
1283 0 : }
1284 :
1285 4 : _PUBLIC_ void ndr_print_dfs_referral_resp(struct ndr_print *ndr, const char *name, const struct dfs_referral_resp *r)
1286 : {
1287 4 : uint32_t cntr_referral_entries_0;
1288 4 : ndr_print_struct(ndr, name, "dfs_referral_resp");
1289 4 : if (r == NULL) { ndr_print_null(ndr); return; }
1290 4 : ndr->depth++;
1291 4 : ndr_print_uint16(ndr, "path_consumed", r->path_consumed);
1292 4 : ndr_print_uint16(ndr, "nb_referrals", r->nb_referrals);
1293 4 : ndr_print_DFS_HEADER_FLAG(ndr, "header_flags", r->header_flags);
1294 4 : ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "referral_entries", (uint32_t)(r->nb_referrals));
1295 4 : ndr->depth++;
1296 10 : for (cntr_referral_entries_0 = 0; cntr_referral_entries_0 < (r->nb_referrals); cntr_referral_entries_0++) {
1297 6 : ndr_print_dfs_referral_type(ndr, "referral_entries", &r->referral_entries[cntr_referral_entries_0]);
1298 : }
1299 4 : ndr->depth--;
1300 4 : ndr->depth--;
1301 : }
1302 :
1303 51 : _PUBLIC_ enum ndr_err_code ndr_push_dfs_GetDFSReferral_in(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct dfs_GetDFSReferral_in *r)
1304 : {
1305 51 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
1306 51 : if (ndr_flags & NDR_SCALARS) {
1307 51 : NDR_CHECK(ndr_push_align(ndr, 4));
1308 51 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->max_referral_level));
1309 : {
1310 51 : libndr_flags _flags_save_string = ndr->flags;
1311 51 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1312 51 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
1313 51 : ndr->flags = _flags_save_string;
1314 : }
1315 51 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1316 : }
1317 51 : if (ndr_flags & NDR_BUFFERS) {
1318 0 : }
1319 51 : return NDR_ERR_SUCCESS;
1320 : }
1321 :
1322 19 : _PUBLIC_ enum ndr_err_code ndr_pull_dfs_GetDFSReferral_in(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct dfs_GetDFSReferral_in *r)
1323 : {
1324 19 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
1325 19 : if (ndr_flags & NDR_SCALARS) {
1326 19 : NDR_CHECK(ndr_pull_align(ndr, 4));
1327 19 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->max_referral_level));
1328 : {
1329 19 : libndr_flags _flags_save_string = ndr->flags;
1330 19 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1331 19 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
1332 19 : ndr->flags = _flags_save_string;
1333 : }
1334 19 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1335 : }
1336 19 : if (ndr_flags & NDR_BUFFERS) {
1337 2 : }
1338 19 : return NDR_ERR_SUCCESS;
1339 : }
1340 :
1341 0 : static void ndr_print_flags_dfs_GetDFSReferral_in(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct dfs_GetDFSReferral_in *r)
1342 : {
1343 0 : ndr_print_dfs_GetDFSReferral_in(ndr, name, r);
1344 0 : }
1345 :
1346 2 : _PUBLIC_ void ndr_print_dfs_GetDFSReferral_in(struct ndr_print *ndr, const char *name, const struct dfs_GetDFSReferral_in *r)
1347 : {
1348 2 : ndr_print_struct(ndr, name, "dfs_GetDFSReferral_in");
1349 2 : if (r == NULL) { ndr_print_null(ndr); return; }
1350 2 : ndr->depth++;
1351 2 : ndr_print_uint16(ndr, "max_referral_level", r->max_referral_level);
1352 : {
1353 2 : libndr_flags _flags_save_string = ndr->flags;
1354 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1355 2 : ndr_print_string(ndr, "servername", r->servername);
1356 2 : ndr->flags = _flags_save_string;
1357 : }
1358 2 : ndr->depth--;
1359 : }
1360 :
1361 0 : _PUBLIC_ enum ndr_err_code ndr_push_dfs_GetDFSReferral(struct ndr_push *ndr, ndr_flags_type flags, const struct dfs_GetDFSReferral *r)
1362 : {
1363 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
1364 0 : if (flags & NDR_IN) {
1365 0 : NDR_CHECK(ndr_push_dfs_GetDFSReferral_in(ndr, NDR_SCALARS, &r->in.req));
1366 : }
1367 0 : if (flags & NDR_OUT) {
1368 0 : if (r->out.resp == NULL) {
1369 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1370 : }
1371 0 : NDR_CHECK(ndr_push_dfs_referral_resp(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.resp));
1372 : }
1373 0 : return NDR_ERR_SUCCESS;
1374 : }
1375 :
1376 0 : _PUBLIC_ enum ndr_err_code ndr_pull_dfs_GetDFSReferral(struct ndr_pull *ndr, ndr_flags_type flags, struct dfs_GetDFSReferral *r)
1377 : {
1378 0 : TALLOC_CTX *_mem_save_resp_0 = NULL;
1379 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
1380 0 : if (flags & NDR_IN) {
1381 0 : NDR_ZERO_STRUCT(r->out);
1382 :
1383 0 : NDR_CHECK(ndr_pull_dfs_GetDFSReferral_in(ndr, NDR_SCALARS, &r->in.req));
1384 0 : NDR_PULL_ALLOC(ndr, r->out.resp);
1385 0 : NDR_ZERO_STRUCTP(r->out.resp);
1386 : }
1387 0 : if (flags & NDR_OUT) {
1388 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
1389 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
1390 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
1391 0 : NDR_PULL_ALLOC(ndr, r->out.resp);
1392 : }
1393 0 : _mem_save_resp_0 = NDR_PULL_GET_MEM_CTX(ndr);
1394 0 : NDR_PULL_SET_MEM_CTX(ndr, r->out.resp, LIBNDR_FLAG_REF_ALLOC);
1395 0 : NDR_CHECK(ndr_pull_dfs_referral_resp(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.resp));
1396 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_resp_0, LIBNDR_FLAG_REF_ALLOC);
1397 : }
1398 0 : return NDR_ERR_SUCCESS;
1399 : }
1400 :
1401 0 : _PUBLIC_ void ndr_print_dfs_GetDFSReferral(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct dfs_GetDFSReferral *r)
1402 : {
1403 0 : ndr_print_struct(ndr, name, "dfs_GetDFSReferral");
1404 0 : if (r == NULL) { ndr_print_null(ndr); return; }
1405 0 : ndr->depth++;
1406 0 : if (flags & NDR_SET_VALUES) {
1407 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
1408 : }
1409 0 : if (flags & NDR_IN) {
1410 0 : ndr_print_struct(ndr, "in", "dfs_GetDFSReferral");
1411 0 : ndr->depth++;
1412 0 : ndr_print_dfs_GetDFSReferral_in(ndr, "req", &r->in.req);
1413 0 : ndr->depth--;
1414 : }
1415 0 : if (flags & NDR_OUT) {
1416 0 : ndr_print_struct(ndr, "out", "dfs_GetDFSReferral");
1417 0 : ndr->depth++;
1418 0 : ndr_print_ptr(ndr, "resp", r->out.resp);
1419 0 : ndr->depth++;
1420 0 : ndr_print_dfs_referral_resp(ndr, "resp", r->out.resp);
1421 0 : ndr->depth--;
1422 0 : ndr->depth--;
1423 : }
1424 0 : ndr->depth--;
1425 : }
1426 :
1427 : #ifndef SKIP_NDR_TABLE_dfsblobs
1428 : static const struct ndr_interface_public_struct dfsblobs_public_structs[] = {
1429 : {
1430 : .name = "dfs_referral_resp",
1431 : .struct_size = sizeof(struct dfs_referral_resp ),
1432 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_dfs_referral_resp,
1433 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_dfs_referral_resp,
1434 : .ndr_print = (ndr_print_function_t) ndr_print_flags_dfs_referral_resp,
1435 : },
1436 : {
1437 : .name = "dfs_GetDFSReferral_in",
1438 : .struct_size = sizeof(struct dfs_GetDFSReferral_in ),
1439 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_dfs_GetDFSReferral_in,
1440 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_dfs_GetDFSReferral_in,
1441 : .ndr_print = (ndr_print_function_t) ndr_print_flags_dfs_GetDFSReferral_in,
1442 : },
1443 : { .name = NULL }
1444 : };
1445 :
1446 : static const struct ndr_interface_call dfsblobs_calls[] = {
1447 : {
1448 : "dfs_GetDFSReferral",
1449 : sizeof(struct dfs_GetDFSReferral),
1450 : (ndr_push_flags_fn_t) ndr_push_dfs_GetDFSReferral,
1451 : (ndr_pull_flags_fn_t) ndr_pull_dfs_GetDFSReferral,
1452 : (ndr_print_function_t) ndr_print_dfs_GetDFSReferral,
1453 : { 0, NULL },
1454 : { 0, NULL },
1455 : },
1456 : { .name = NULL }
1457 : };
1458 :
1459 : static const char * const dfsblobs_endpoint_strings[] = {
1460 : "ncacn_np:[\\pipe\\dfsblobs]",
1461 : };
1462 :
1463 : static const struct ndr_interface_string_array dfsblobs_endpoints = {
1464 : .count = 1,
1465 : .names = dfsblobs_endpoint_strings
1466 : };
1467 :
1468 : static const char * const dfsblobs_authservice_strings[] = {
1469 : "host",
1470 : };
1471 :
1472 : static const struct ndr_interface_string_array dfsblobs_authservices = {
1473 : .count = 1,
1474 : .names = dfsblobs_authservice_strings
1475 : };
1476 :
1477 :
1478 : const struct ndr_interface_table ndr_table_dfsblobs = {
1479 : .name = "dfsblobs",
1480 : .syntax_id = {
1481 : {0x12345778,0x1234,0xabcd,{0x00,0x01},{0x00,0x00,0x00,0x03}},
1482 : NDR_DFSBLOBS_VERSION
1483 : },
1484 : .helpstring = NDR_DFSBLOBS_HELPSTRING,
1485 : .num_calls = 1,
1486 : .calls = dfsblobs_calls,
1487 : .num_public_structs = 2,
1488 : .public_structs = dfsblobs_public_structs,
1489 : .endpoints = &dfsblobs_endpoints,
1490 : .authservices = &dfsblobs_authservices
1491 : };
1492 :
1493 : #endif /* SKIP_NDR_TABLE_dfsblobs */
|