WHATSNEW: Start release notes for Samba 3.5.21.
[Samba.git] / librpc / gen_ndr / ndr_drsuapi.c
blobea0abbdb907c2c3d52a934a43c6538783ad17f6f
1 /* parser auto-generated by pidl */
3 #include "includes.h"
4 #include "../librpc/gen_ndr/ndr_drsuapi.h"
6 #include "librpc/gen_ndr/ndr_security.h"
7 #include "librpc/gen_ndr/ndr_misc.h"
8 #include "librpc/gen_ndr/ndr_samr.h"
9 #include "librpc/ndr/ndr_compression.h"
10 static enum ndr_err_code ndr_push_drsuapi_SupportedExtensions(struct ndr_push *ndr, int ndr_flags, uint32_t r)
12 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
13 return NDR_ERR_SUCCESS;
16 static enum ndr_err_code ndr_pull_drsuapi_SupportedExtensions(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18 uint32_t v;
19 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
20 *r = v;
21 return NDR_ERR_SUCCESS;
24 _PUBLIC_ void ndr_print_drsuapi_SupportedExtensions(struct ndr_print *ndr, const char *name, uint32_t r)
26 ndr_print_uint32(ndr, name, r);
27 ndr->depth++;
28 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_BASE", DRSUAPI_SUPPORTED_EXTENSION_BASE, r);
29 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION", DRSUAPI_SUPPORTED_EXTENSION_ASYNC_REPLICATION, r);
30 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI", DRSUAPI_SUPPORTED_EXTENSION_REMOVEAPI, r);
31 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2", DRSUAPI_SUPPORTED_EXTENSION_MOVEREQ_V2, r);
32 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS", DRSUAPI_SUPPORTED_EXTENSION_GETCHG_COMPRESS, r);
33 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1", DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1, r);
34 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION", DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION, r);
35 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_00000080", DRSUAPI_SUPPORTED_EXTENSION_00000080, r);
36 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE", DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE, r);
37 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2", DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2, r);
38 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION", DRSUAPI_SUPPORTED_EXTENSION_LINKED_VALUE_REPLICATION, r);
39 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2", DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V2, r);
40 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD", DRSUAPI_SUPPORTED_EXTENSION_INSTANCE_TYPE_NOT_REQ_ON_MOD, r);
41 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND", DRSUAPI_SUPPORTED_EXTENSION_CRYPTO_BIND, r);
42 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO", DRSUAPI_SUPPORTED_EXTENSION_GET_REPL_INFO, r);
43 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION", DRSUAPI_SUPPORTED_EXTENSION_STRONG_ENCRYPTION, r);
44 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01", DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V01, r);
45 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP", DRSUAPI_SUPPORTED_EXTENSION_TRANSITIVE_MEMBERSHIP, r);
46 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY", DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY, r);
47 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3", DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3, r);
48 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_00100000", DRSUAPI_SUPPORTED_EXTENSION_00100000, r);
49 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2", DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2, r);
50 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6", DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6, r);
51 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS", DRSUAPI_SUPPORTED_EXTENSION_NONDOMAIN_NCS, r);
52 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8", DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V8, r);
53 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5", DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V5, r);
54 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6", DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V6, r);
55 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3", DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3, r);
56 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7", DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7, r);
57 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT", DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT, r);
58 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS", DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS, r);
59 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_20000000", DRSUAPI_SUPPORTED_EXTENSION_20000000, r);
60 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_40000000", DRSUAPI_SUPPORTED_EXTENSION_40000000, r);
61 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_80000000", DRSUAPI_SUPPORTED_EXTENSION_80000000, r);
62 ndr->depth--;
65 static enum ndr_err_code ndr_push_drsuapi_SupportedExtensionsExt(struct ndr_push *ndr, int ndr_flags, uint32_t r)
67 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
68 return NDR_ERR_SUCCESS;
71 static enum ndr_err_code ndr_pull_drsuapi_SupportedExtensionsExt(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
73 uint32_t v;
74 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
75 *r = v;
76 return NDR_ERR_SUCCESS;
79 _PUBLIC_ void ndr_print_drsuapi_SupportedExtensionsExt(struct ndr_print *ndr, const char *name, uint32_t r)
81 ndr_print_uint32(ndr, name, r);
82 ndr->depth++;
83 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_ADAM", DRSUAPI_SUPPORTED_EXTENSION_ADAM, r);
84 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2", DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2, r);
85 ndr->depth--;
88 static enum ndr_err_code ndr_push_drsuapi_DsBindInfo24(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsBindInfo24 *r)
90 if (ndr_flags & NDR_SCALARS) {
91 NDR_CHECK(ndr_push_align(ndr, 4));
92 NDR_CHECK(ndr_push_drsuapi_SupportedExtensions(ndr, NDR_SCALARS, r->supported_extensions));
93 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->site_guid));
94 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pid));
95 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
97 if (ndr_flags & NDR_BUFFERS) {
99 return NDR_ERR_SUCCESS;
102 static enum ndr_err_code ndr_pull_drsuapi_DsBindInfo24(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsBindInfo24 *r)
104 if (ndr_flags & NDR_SCALARS) {
105 NDR_CHECK(ndr_pull_align(ndr, 4));
106 NDR_CHECK(ndr_pull_drsuapi_SupportedExtensions(ndr, NDR_SCALARS, &r->supported_extensions));
107 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->site_guid));
108 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pid));
109 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
111 if (ndr_flags & NDR_BUFFERS) {
113 return NDR_ERR_SUCCESS;
116 _PUBLIC_ void ndr_print_drsuapi_DsBindInfo24(struct ndr_print *ndr, const char *name, const struct drsuapi_DsBindInfo24 *r)
118 ndr_print_struct(ndr, name, "drsuapi_DsBindInfo24");
119 ndr->depth++;
120 ndr_print_drsuapi_SupportedExtensions(ndr, "supported_extensions", r->supported_extensions);
121 ndr_print_GUID(ndr, "site_guid", &r->site_guid);
122 ndr_print_uint32(ndr, "pid", r->pid);
123 ndr->depth--;
126 static enum ndr_err_code ndr_push_drsuapi_DsBindInfo28(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsBindInfo28 *r)
128 if (ndr_flags & NDR_SCALARS) {
129 NDR_CHECK(ndr_push_align(ndr, 4));
130 NDR_CHECK(ndr_push_drsuapi_SupportedExtensions(ndr, NDR_SCALARS, r->supported_extensions));
131 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->site_guid));
132 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pid));
133 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->repl_epoch));
134 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
136 if (ndr_flags & NDR_BUFFERS) {
138 return NDR_ERR_SUCCESS;
141 static enum ndr_err_code ndr_pull_drsuapi_DsBindInfo28(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsBindInfo28 *r)
143 if (ndr_flags & NDR_SCALARS) {
144 NDR_CHECK(ndr_pull_align(ndr, 4));
145 NDR_CHECK(ndr_pull_drsuapi_SupportedExtensions(ndr, NDR_SCALARS, &r->supported_extensions));
146 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->site_guid));
147 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pid));
148 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->repl_epoch));
149 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
151 if (ndr_flags & NDR_BUFFERS) {
153 return NDR_ERR_SUCCESS;
156 _PUBLIC_ void ndr_print_drsuapi_DsBindInfo28(struct ndr_print *ndr, const char *name, const struct drsuapi_DsBindInfo28 *r)
158 ndr_print_struct(ndr, name, "drsuapi_DsBindInfo28");
159 ndr->depth++;
160 ndr_print_drsuapi_SupportedExtensions(ndr, "supported_extensions", r->supported_extensions);
161 ndr_print_GUID(ndr, "site_guid", &r->site_guid);
162 ndr_print_uint32(ndr, "pid", r->pid);
163 ndr_print_uint32(ndr, "repl_epoch", r->repl_epoch);
164 ndr->depth--;
167 static enum ndr_err_code ndr_push_drsuapi_DsBindInfo48(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsBindInfo48 *r)
169 if (ndr_flags & NDR_SCALARS) {
170 NDR_CHECK(ndr_push_align(ndr, 4));
171 NDR_CHECK(ndr_push_drsuapi_SupportedExtensions(ndr, NDR_SCALARS, r->supported_extensions));
172 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->site_guid));
173 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pid));
174 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->repl_epoch));
175 NDR_CHECK(ndr_push_drsuapi_SupportedExtensionsExt(ndr, NDR_SCALARS, r->supported_extensions_ext));
176 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->config_dn_guid));
177 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
179 if (ndr_flags & NDR_BUFFERS) {
181 return NDR_ERR_SUCCESS;
184 static enum ndr_err_code ndr_pull_drsuapi_DsBindInfo48(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsBindInfo48 *r)
186 if (ndr_flags & NDR_SCALARS) {
187 NDR_CHECK(ndr_pull_align(ndr, 4));
188 NDR_CHECK(ndr_pull_drsuapi_SupportedExtensions(ndr, NDR_SCALARS, &r->supported_extensions));
189 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->site_guid));
190 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pid));
191 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->repl_epoch));
192 NDR_CHECK(ndr_pull_drsuapi_SupportedExtensionsExt(ndr, NDR_SCALARS, &r->supported_extensions_ext));
193 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->config_dn_guid));
194 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
196 if (ndr_flags & NDR_BUFFERS) {
198 return NDR_ERR_SUCCESS;
201 _PUBLIC_ void ndr_print_drsuapi_DsBindInfo48(struct ndr_print *ndr, const char *name, const struct drsuapi_DsBindInfo48 *r)
203 ndr_print_struct(ndr, name, "drsuapi_DsBindInfo48");
204 ndr->depth++;
205 ndr_print_drsuapi_SupportedExtensions(ndr, "supported_extensions", r->supported_extensions);
206 ndr_print_GUID(ndr, "site_guid", &r->site_guid);
207 ndr_print_uint32(ndr, "pid", r->pid);
208 ndr_print_uint32(ndr, "repl_epoch", r->repl_epoch);
209 ndr_print_drsuapi_SupportedExtensionsExt(ndr, "supported_extensions_ext", r->supported_extensions_ext);
210 ndr_print_GUID(ndr, "config_dn_guid", &r->config_dn_guid);
211 ndr->depth--;
214 static enum ndr_err_code ndr_push_drsuapi_DsBindInfoFallBack(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsBindInfoFallBack *r)
216 if (ndr_flags & NDR_SCALARS) {
217 NDR_CHECK(ndr_push_align(ndr, 4));
219 uint32_t _flags_save_DATA_BLOB = ndr->flags;
220 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
221 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->info));
222 ndr->flags = _flags_save_DATA_BLOB;
224 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
226 if (ndr_flags & NDR_BUFFERS) {
228 return NDR_ERR_SUCCESS;
231 static enum ndr_err_code ndr_pull_drsuapi_DsBindInfoFallBack(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsBindInfoFallBack *r)
233 if (ndr_flags & NDR_SCALARS) {
234 NDR_CHECK(ndr_pull_align(ndr, 4));
236 uint32_t _flags_save_DATA_BLOB = ndr->flags;
237 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
238 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->info));
239 ndr->flags = _flags_save_DATA_BLOB;
241 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
243 if (ndr_flags & NDR_BUFFERS) {
245 return NDR_ERR_SUCCESS;
248 _PUBLIC_ void ndr_print_drsuapi_DsBindInfoFallBack(struct ndr_print *ndr, const char *name, const struct drsuapi_DsBindInfoFallBack *r)
250 ndr_print_struct(ndr, name, "drsuapi_DsBindInfoFallBack");
251 ndr->depth++;
252 ndr_print_DATA_BLOB(ndr, "info", r->info);
253 ndr->depth--;
256 static enum ndr_err_code ndr_push_drsuapi_DsBindInfo(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsBindInfo *r)
258 if (ndr_flags & NDR_SCALARS) {
259 int level = ndr_push_get_switch_value(ndr, r);
260 NDR_CHECK(ndr_push_union_align(ndr, 1));
261 switch (level) {
262 case 24: {
264 struct ndr_push *_ndr_info24;
265 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info24, 4, -1));
266 NDR_CHECK(ndr_push_drsuapi_DsBindInfo24(_ndr_info24, NDR_SCALARS, &r->info24));
267 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info24, 4, -1));
269 break; }
271 case 28: {
273 struct ndr_push *_ndr_info28;
274 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info28, 4, -1));
275 NDR_CHECK(ndr_push_drsuapi_DsBindInfo28(_ndr_info28, NDR_SCALARS, &r->info28));
276 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info28, 4, -1));
278 break; }
280 case 48: {
282 struct ndr_push *_ndr_info48;
283 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info48, 4, -1));
284 NDR_CHECK(ndr_push_drsuapi_DsBindInfo48(_ndr_info48, NDR_SCALARS, &r->info48));
285 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info48, 4, -1));
287 break; }
289 default: {
291 struct ndr_push *_ndr_FallBack;
292 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_FallBack, 4, -1));
293 NDR_CHECK(ndr_push_drsuapi_DsBindInfoFallBack(_ndr_FallBack, NDR_SCALARS, &r->FallBack));
294 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_FallBack, 4, -1));
296 break; }
300 if (ndr_flags & NDR_BUFFERS) {
301 int level = ndr_push_get_switch_value(ndr, r);
302 switch (level) {
303 case 24:
304 break;
306 case 28:
307 break;
309 case 48:
310 break;
312 default:
313 break;
317 return NDR_ERR_SUCCESS;
320 static enum ndr_err_code ndr_pull_drsuapi_DsBindInfo(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsBindInfo *r)
322 int level;
323 level = ndr_pull_get_switch_value(ndr, r);
324 if (ndr_flags & NDR_SCALARS) {
325 NDR_CHECK(ndr_pull_union_align(ndr, 1));
326 switch (level) {
327 case 24: {
329 struct ndr_pull *_ndr_info24;
330 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info24, 4, -1));
331 NDR_CHECK(ndr_pull_drsuapi_DsBindInfo24(_ndr_info24, NDR_SCALARS, &r->info24));
332 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info24, 4, -1));
334 break; }
336 case 28: {
338 struct ndr_pull *_ndr_info28;
339 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info28, 4, -1));
340 NDR_CHECK(ndr_pull_drsuapi_DsBindInfo28(_ndr_info28, NDR_SCALARS, &r->info28));
341 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info28, 4, -1));
343 break; }
345 case 48: {
347 struct ndr_pull *_ndr_info48;
348 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info48, 4, -1));
349 NDR_CHECK(ndr_pull_drsuapi_DsBindInfo48(_ndr_info48, NDR_SCALARS, &r->info48));
350 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info48, 4, -1));
352 break; }
354 default: {
356 struct ndr_pull *_ndr_FallBack;
357 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_FallBack, 4, -1));
358 NDR_CHECK(ndr_pull_drsuapi_DsBindInfoFallBack(_ndr_FallBack, NDR_SCALARS, &r->FallBack));
359 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_FallBack, 4, -1));
361 break; }
365 if (ndr_flags & NDR_BUFFERS) {
366 switch (level) {
367 case 24:
368 break;
370 case 28:
371 break;
373 case 48:
374 break;
376 default:
377 break;
381 return NDR_ERR_SUCCESS;
384 _PUBLIC_ void ndr_print_drsuapi_DsBindInfo(struct ndr_print *ndr, const char *name, const union drsuapi_DsBindInfo *r)
386 int level;
387 level = ndr_print_get_switch_value(ndr, r);
388 ndr_print_union(ndr, name, level, "drsuapi_DsBindInfo");
389 switch (level) {
390 case 24:
391 ndr_print_drsuapi_DsBindInfo24(ndr, "info24", &r->info24);
392 break;
394 case 28:
395 ndr_print_drsuapi_DsBindInfo28(ndr, "info28", &r->info28);
396 break;
398 case 48:
399 ndr_print_drsuapi_DsBindInfo48(ndr, "info48", &r->info48);
400 break;
402 default:
403 ndr_print_drsuapi_DsBindInfoFallBack(ndr, "FallBack", &r->FallBack);
404 break;
409 static enum ndr_err_code ndr_push_drsuapi_DsBindInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsBindInfoCtr *r)
411 if (ndr_flags & NDR_SCALARS) {
412 NDR_CHECK(ndr_push_align(ndr, 4));
413 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
414 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->length));
415 NDR_CHECK(ndr_push_drsuapi_DsBindInfo(ndr, NDR_SCALARS, &r->info));
416 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
418 if (ndr_flags & NDR_BUFFERS) {
420 return NDR_ERR_SUCCESS;
423 static enum ndr_err_code ndr_pull_drsuapi_DsBindInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsBindInfoCtr *r)
425 if (ndr_flags & NDR_SCALARS) {
426 NDR_CHECK(ndr_pull_align(ndr, 4));
427 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
428 if (r->length < 1 || r->length > 10000) {
429 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
431 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->length));
432 NDR_CHECK(ndr_pull_drsuapi_DsBindInfo(ndr, NDR_SCALARS, &r->info));
433 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
435 if (ndr_flags & NDR_BUFFERS) {
437 return NDR_ERR_SUCCESS;
440 _PUBLIC_ void ndr_print_drsuapi_DsBindInfoCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsBindInfoCtr *r)
442 ndr_print_struct(ndr, name, "drsuapi_DsBindInfoCtr");
443 ndr->depth++;
444 ndr_print_uint32(ndr, "length", r->length);
445 ndr_print_set_switch_value(ndr, &r->info, r->length);
446 ndr_print_drsuapi_DsBindInfo(ndr, "info", &r->info);
447 ndr->depth--;
450 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaObjectIdentifier(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObjectIdentifier *r)
452 if (ndr_flags & NDR_SCALARS) {
453 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, strlen_m(r->dn) + 1));
454 NDR_CHECK(ndr_push_align(ndr, 4));
455 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_drsuapi_DsReplicaObjectIdentifier(r, ndr->iconv_convenience, ndr->flags) - 4));
456 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_dom_sid28(&r->sid, ndr->flags)));
457 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
458 NDR_CHECK(ndr_push_dom_sid28(ndr, NDR_SCALARS, &r->sid));
459 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, strlen_m(r->dn)));
460 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dn, strlen_m(r->dn) + 1, sizeof(uint16_t), CH_UTF16));
461 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
463 if (ndr_flags & NDR_BUFFERS) {
464 NDR_CHECK(ndr_push_dom_sid28(ndr, NDR_BUFFERS, &r->sid));
466 return NDR_ERR_SUCCESS;
469 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjectIdentifier(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObjectIdentifier *r)
471 uint32_t size_dn_0 = 0;
472 if (ndr_flags & NDR_SCALARS) {
473 NDR_CHECK(ndr_pull_array_size(ndr, &r->dn));
474 NDR_CHECK(ndr_pull_align(ndr, 4));
475 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size));
476 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size_sid));
477 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
478 NDR_CHECK(ndr_pull_dom_sid28(ndr, NDR_SCALARS, &r->sid));
479 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size_dn));
480 size_dn_0 = ndr_get_array_size(ndr, &r->dn);
481 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dn, size_dn_0, sizeof(uint16_t), CH_UTF16));
482 if (r->dn) {
483 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->dn, r->__ndr_size_dn + 1));
485 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
487 if (ndr_flags & NDR_BUFFERS) {
488 NDR_CHECK(ndr_pull_dom_sid28(ndr, NDR_BUFFERS, &r->sid));
490 return NDR_ERR_SUCCESS;
493 _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjectIdentifier(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaObjectIdentifier *r)
495 ndr_print_struct(ndr, name, "drsuapi_DsReplicaObjectIdentifier");
496 ndr->depth++;
497 ndr_print_uint32(ndr, "__ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_drsuapi_DsReplicaObjectIdentifier(r, ndr->iconv_convenience, ndr->flags) - 4:r->__ndr_size);
498 ndr_print_uint32(ndr, "__ndr_size_sid", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_dom_sid28(&r->sid, ndr->flags):r->__ndr_size_sid);
499 ndr_print_GUID(ndr, "guid", &r->guid);
500 ndr_print_dom_sid28(ndr, "sid", &r->sid);
501 ndr_print_uint32(ndr, "__ndr_size_dn", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m(r->dn):r->__ndr_size_dn);
502 ndr_print_string(ndr, "dn", r->dn);
503 ndr->depth--;
506 _PUBLIC_ size_t ndr_size_drsuapi_DsReplicaObjectIdentifier(const struct drsuapi_DsReplicaObjectIdentifier *r, struct smb_iconv_convenience *ic, int flags)
508 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier, ic);
511 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaSyncOptions(struct ndr_push *ndr, int ndr_flags, uint32_t r)
513 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
514 return NDR_ERR_SUCCESS;
517 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaSyncOptions(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
519 uint32_t v;
520 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
521 *r = v;
522 return NDR_ERR_SUCCESS;
525 _PUBLIC_ void ndr_print_drsuapi_DsReplicaSyncOptions(struct ndr_print *ndr, const char *name, uint32_t r)
527 ndr_print_uint32(ndr, name, r);
528 ndr->depth++;
529 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_OPERATION", DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_OPERATION, r);
530 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_WRITEABLE", DRSUAPI_DS_REPLICA_SYNC_WRITEABLE, r);
531 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_PERIODIC", DRSUAPI_DS_REPLICA_SYNC_PERIODIC, r);
532 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_INTERSITE_MESSAGING", DRSUAPI_DS_REPLICA_SYNC_INTERSITE_MESSAGING, r);
533 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_ALL_SOURCES", DRSUAPI_DS_REPLICA_SYNC_ALL_SOURCES, r);
534 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_FULL", DRSUAPI_DS_REPLICA_SYNC_FULL, r);
535 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_URGENT", DRSUAPI_DS_REPLICA_SYNC_URGENT, r);
536 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_NO_DISCARD", DRSUAPI_DS_REPLICA_SYNC_NO_DISCARD, r);
537 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_FORCE", DRSUAPI_DS_REPLICA_SYNC_FORCE, r);
538 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_ADD_REFERENCE", DRSUAPI_DS_REPLICA_SYNC_ADD_REFERENCE, r);
539 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_NEVER_COMPLETED", DRSUAPI_DS_REPLICA_SYNC_NEVER_COMPLETED, r);
540 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_TWO_WAY", DRSUAPI_DS_REPLICA_SYNC_TWO_WAY, r);
541 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_NEVER_NOTIFY", DRSUAPI_DS_REPLICA_SYNC_NEVER_NOTIFY, r);
542 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_INITIAL", DRSUAPI_DS_REPLICA_SYNC_INITIAL, r);
543 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_USE_COMPRESSION", DRSUAPI_DS_REPLICA_SYNC_USE_COMPRESSION, r);
544 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_ABANDONED", DRSUAPI_DS_REPLICA_SYNC_ABANDONED, r);
545 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_INITIAL_IN_PROGRESS", DRSUAPI_DS_REPLICA_SYNC_INITIAL_IN_PROGRESS, r);
546 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_PARTIAL_ATTRIBUTE_SET", DRSUAPI_DS_REPLICA_SYNC_PARTIAL_ATTRIBUTE_SET, r);
547 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_REQUEUE", DRSUAPI_DS_REPLICA_SYNC_REQUEUE, r);
548 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_NOTIFICATION", DRSUAPI_DS_REPLICA_SYNC_NOTIFICATION, r);
549 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_REPLICA", DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_REPLICA, r);
550 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_CRITICAL", DRSUAPI_DS_REPLICA_SYNC_CRITICAL, r);
551 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_FULL_IN_PROGRESS", DRSUAPI_DS_REPLICA_SYNC_FULL_IN_PROGRESS, r);
552 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_PREEMPTED", DRSUAPI_DS_REPLICA_SYNC_PREEMPTED, r);
553 ndr->depth--;
556 static enum ndr_err_code ndr_push_drsuapi_DsReplicaSyncRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaSyncRequest1 *r)
558 if (ndr_flags & NDR_SCALARS) {
559 NDR_CHECK(ndr_push_align(ndr, 5));
560 NDR_CHECK(ndr_push_unique_ptr(ndr, r->naming_context));
561 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
563 uint32_t _flags_save_string = ndr->flags;
564 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
565 NDR_CHECK(ndr_push_unique_ptr(ndr, r->other_info));
566 ndr->flags = _flags_save_string;
568 NDR_CHECK(ndr_push_drsuapi_DsReplicaSyncOptions(ndr, NDR_SCALARS, r->options));
569 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
571 if (ndr_flags & NDR_BUFFERS) {
572 if (r->naming_context) {
573 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
576 uint32_t _flags_save_string = ndr->flags;
577 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
578 if (r->other_info) {
579 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->other_info));
581 ndr->flags = _flags_save_string;
584 return NDR_ERR_SUCCESS;
587 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaSyncRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaSyncRequest1 *r)
589 uint32_t _ptr_naming_context;
590 TALLOC_CTX *_mem_save_naming_context_0;
591 uint32_t _ptr_other_info;
592 TALLOC_CTX *_mem_save_other_info_0;
593 if (ndr_flags & NDR_SCALARS) {
594 NDR_CHECK(ndr_pull_align(ndr, 5));
595 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_naming_context));
596 if (_ptr_naming_context) {
597 NDR_PULL_ALLOC(ndr, r->naming_context);
598 } else {
599 r->naming_context = NULL;
601 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
603 uint32_t _flags_save_string = ndr->flags;
604 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
605 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_other_info));
606 if (_ptr_other_info) {
607 NDR_PULL_ALLOC(ndr, r->other_info);
608 } else {
609 r->other_info = NULL;
611 ndr->flags = _flags_save_string;
613 NDR_CHECK(ndr_pull_drsuapi_DsReplicaSyncOptions(ndr, NDR_SCALARS, &r->options));
614 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
616 if (ndr_flags & NDR_BUFFERS) {
617 if (r->naming_context) {
618 _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
619 NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
620 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
621 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
624 uint32_t _flags_save_string = ndr->flags;
625 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
626 if (r->other_info) {
627 _mem_save_other_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
628 NDR_PULL_SET_MEM_CTX(ndr, r->other_info, 0);
629 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->other_info));
630 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_other_info_0, 0);
632 ndr->flags = _flags_save_string;
635 return NDR_ERR_SUCCESS;
638 _PUBLIC_ void ndr_print_drsuapi_DsReplicaSyncRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaSyncRequest1 *r)
640 ndr_print_struct(ndr, name, "drsuapi_DsReplicaSyncRequest1");
641 ndr->depth++;
642 ndr_print_ptr(ndr, "naming_context", r->naming_context);
643 ndr->depth++;
644 if (r->naming_context) {
645 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
647 ndr->depth--;
648 ndr_print_GUID(ndr, "source_dsa_guid", &r->source_dsa_guid);
649 ndr_print_ptr(ndr, "other_info", r->other_info);
650 ndr->depth++;
651 if (r->other_info) {
652 ndr_print_string(ndr, "other_info", r->other_info);
654 ndr->depth--;
655 ndr_print_drsuapi_DsReplicaSyncOptions(ndr, "options", r->options);
656 ndr->depth--;
659 static enum ndr_err_code ndr_push_drsuapi_DsReplicaSyncRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsReplicaSyncRequest *r)
661 if (ndr_flags & NDR_SCALARS) {
662 int level = ndr_push_get_switch_value(ndr, r);
663 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
664 NDR_CHECK(ndr_push_union_align(ndr, 5));
665 switch (level) {
666 case 1: {
667 NDR_CHECK(ndr_push_drsuapi_DsReplicaSyncRequest1(ndr, NDR_SCALARS, &r->req1));
668 break; }
670 default:
671 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
674 if (ndr_flags & NDR_BUFFERS) {
675 int level = ndr_push_get_switch_value(ndr, r);
676 switch (level) {
677 case 1:
678 NDR_CHECK(ndr_push_drsuapi_DsReplicaSyncRequest1(ndr, NDR_BUFFERS, &r->req1));
679 break;
681 default:
682 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
685 return NDR_ERR_SUCCESS;
688 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaSyncRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsReplicaSyncRequest *r)
690 int level;
691 int32_t _level;
692 level = ndr_pull_get_switch_value(ndr, r);
693 if (ndr_flags & NDR_SCALARS) {
694 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
695 if (_level != level) {
696 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
698 NDR_CHECK(ndr_pull_union_align(ndr, 5));
699 switch (level) {
700 case 1: {
701 NDR_CHECK(ndr_pull_drsuapi_DsReplicaSyncRequest1(ndr, NDR_SCALARS, &r->req1));
702 break; }
704 default:
705 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
708 if (ndr_flags & NDR_BUFFERS) {
709 switch (level) {
710 case 1:
711 NDR_CHECK(ndr_pull_drsuapi_DsReplicaSyncRequest1(ndr, NDR_BUFFERS, &r->req1));
712 break;
714 default:
715 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
718 return NDR_ERR_SUCCESS;
721 _PUBLIC_ void ndr_print_drsuapi_DsReplicaSyncRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsReplicaSyncRequest *r)
723 int level;
724 level = ndr_print_get_switch_value(ndr, r);
725 ndr_print_union(ndr, name, level, "drsuapi_DsReplicaSyncRequest");
726 switch (level) {
727 case 1:
728 ndr_print_drsuapi_DsReplicaSyncRequest1(ndr, "req1", &r->req1);
729 break;
731 default:
732 ndr_print_bad_level(ndr, name, level);
736 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaHighWaterMark(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaHighWaterMark *r)
738 if (ndr_flags & NDR_SCALARS) {
739 NDR_CHECK(ndr_push_align(ndr, 8));
740 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->tmp_highest_usn));
741 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->reserved_usn));
742 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->highest_usn));
743 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
745 if (ndr_flags & NDR_BUFFERS) {
747 return NDR_ERR_SUCCESS;
750 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaHighWaterMark(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaHighWaterMark *r)
752 if (ndr_flags & NDR_SCALARS) {
753 NDR_CHECK(ndr_pull_align(ndr, 8));
754 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->tmp_highest_usn));
755 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->reserved_usn));
756 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->highest_usn));
757 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
759 if (ndr_flags & NDR_BUFFERS) {
761 return NDR_ERR_SUCCESS;
764 _PUBLIC_ void ndr_print_drsuapi_DsReplicaHighWaterMark(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaHighWaterMark *r)
766 ndr_print_struct(ndr, name, "drsuapi_DsReplicaHighWaterMark");
767 ndr->depth++;
768 ndr_print_hyper(ndr, "tmp_highest_usn", r->tmp_highest_usn);
769 ndr_print_hyper(ndr, "reserved_usn", r->reserved_usn);
770 ndr_print_hyper(ndr, "highest_usn", r->highest_usn);
771 ndr->depth--;
774 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaCursor(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaCursor *r)
776 if (ndr_flags & NDR_SCALARS) {
777 NDR_CHECK(ndr_push_align(ndr, 8));
778 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
779 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->highest_usn));
780 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
782 if (ndr_flags & NDR_BUFFERS) {
784 return NDR_ERR_SUCCESS;
787 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaCursor(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaCursor *r)
789 if (ndr_flags & NDR_SCALARS) {
790 NDR_CHECK(ndr_pull_align(ndr, 8));
791 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
792 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->highest_usn));
793 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
795 if (ndr_flags & NDR_BUFFERS) {
797 return NDR_ERR_SUCCESS;
800 _PUBLIC_ void ndr_print_drsuapi_DsReplicaCursor(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaCursor *r)
802 ndr_print_struct(ndr, name, "drsuapi_DsReplicaCursor");
803 ndr->depth++;
804 ndr_print_GUID(ndr, "source_dsa_invocation_id", &r->source_dsa_invocation_id);
805 ndr_print_hyper(ndr, "highest_usn", r->highest_usn);
806 ndr->depth--;
809 static enum ndr_err_code ndr_push_drsuapi_DsReplicaCursorCtrEx(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaCursorCtrEx *r)
811 uint32_t cntr_cursors_0;
812 if (ndr_flags & NDR_SCALARS) {
813 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
814 NDR_CHECK(ndr_push_align(ndr, 8));
815 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 1));
816 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
817 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
818 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
819 for (cntr_cursors_0 = 0; cntr_cursors_0 < r->count; cntr_cursors_0++) {
820 NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor(ndr, NDR_SCALARS, &r->cursors[cntr_cursors_0]));
822 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
824 if (ndr_flags & NDR_BUFFERS) {
826 return NDR_ERR_SUCCESS;
829 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaCursorCtrEx(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaCursorCtrEx *r)
831 uint32_t size_cursors_0 = 0;
832 uint32_t cntr_cursors_0;
833 TALLOC_CTX *_mem_save_cursors_0;
834 if (ndr_flags & NDR_SCALARS) {
835 NDR_CHECK(ndr_pull_array_size(ndr, &r->cursors));
836 NDR_CHECK(ndr_pull_align(ndr, 8));
837 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
838 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
839 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
840 if (r->count > 0x100000) {
841 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
843 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
844 size_cursors_0 = ndr_get_array_size(ndr, &r->cursors);
845 NDR_PULL_ALLOC_N(ndr, r->cursors, size_cursors_0);
846 _mem_save_cursors_0 = NDR_PULL_GET_MEM_CTX(ndr);
847 NDR_PULL_SET_MEM_CTX(ndr, r->cursors, 0);
848 for (cntr_cursors_0 = 0; cntr_cursors_0 < size_cursors_0; cntr_cursors_0++) {
849 NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor(ndr, NDR_SCALARS, &r->cursors[cntr_cursors_0]));
851 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_cursors_0, 0);
852 if (r->cursors) {
853 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->cursors, r->count));
855 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
857 if (ndr_flags & NDR_BUFFERS) {
859 return NDR_ERR_SUCCESS;
862 _PUBLIC_ void ndr_print_drsuapi_DsReplicaCursorCtrEx(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaCursorCtrEx *r)
864 uint32_t cntr_cursors_0;
865 ndr_print_struct(ndr, name, "drsuapi_DsReplicaCursorCtrEx");
866 ndr->depth++;
867 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?1:r->version);
868 ndr_print_uint32(ndr, "reserved1", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->reserved1);
869 ndr_print_uint32(ndr, "count", r->count);
870 ndr_print_uint32(ndr, "reserved2", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->reserved2);
871 ndr->print(ndr, "%s: ARRAY(%d)", "cursors", (int)r->count);
872 ndr->depth++;
873 for (cntr_cursors_0=0;cntr_cursors_0<r->count;cntr_cursors_0++) {
874 char *idx_0=NULL;
875 if (asprintf(&idx_0, "[%d]", cntr_cursors_0) != -1) {
876 ndr_print_drsuapi_DsReplicaCursor(ndr, "cursors", &r->cursors[cntr_cursors_0]);
877 free(idx_0);
880 ndr->depth--;
881 ndr->depth--;
884 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaNeighbourFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
886 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
887 return NDR_ERR_SUCCESS;
890 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaNeighbourFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
892 uint32_t v;
893 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
894 *r = v;
895 return NDR_ERR_SUCCESS;
898 _PUBLIC_ void ndr_print_drsuapi_DsReplicaNeighbourFlags(struct ndr_print *ndr, const char *name, uint32_t r)
900 ndr_print_uint32(ndr, name, r);
901 ndr->depth++;
902 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_WRITEABLE", DRSUAPI_DS_REPLICA_NEIGHBOUR_WRITEABLE, r);
903 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_SYNC_ON_STARTUP", DRSUAPI_DS_REPLICA_NEIGHBOUR_SYNC_ON_STARTUP, r);
904 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_DO_SCHEDULED_SYNCS", DRSUAPI_DS_REPLICA_NEIGHBOUR_DO_SCHEDULED_SYNCS, r);
905 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_USE_ASYNC_INTERSIDE_TRANSPORT", DRSUAPI_DS_REPLICA_NEIGHBOUR_USE_ASYNC_INTERSIDE_TRANSPORT, r);
906 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_ASYNC_REP", DRSUAPI_DS_REPLICA_NEIGHBOUR_ASYNC_REP, r);
907 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_IGNORE_ERROR", DRSUAPI_DS_REPLICA_NEIGHBOUR_IGNORE_ERROR, r);
908 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_TWO_WAY_SYNC", DRSUAPI_DS_REPLICA_NEIGHBOUR_TWO_WAY_SYNC, r);
909 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_CRITICAL_ONLY", DRSUAPI_DS_REPLICA_NEIGHBOUR_CRITICAL_ONLY, r);
910 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_RETURN_OBJECT_PARENTS", DRSUAPI_DS_REPLICA_NEIGHBOUR_RETURN_OBJECT_PARENTS, r);
911 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_FULL_IN_PROGRESS", DRSUAPI_DS_REPLICA_NEIGHBOUR_FULL_IN_PROGRESS, r);
912 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_FULL_SYNC_PACKET", DRSUAPI_DS_REPLICA_NEIGHBOUR_FULL_SYNC_PACKET, r);
913 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_NEVER_SYNCED", DRSUAPI_DS_REPLICA_NEIGHBOUR_NEVER_SYNCED, r);
914 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_SPECIAL_SECRET_PROCESSING", DRSUAPI_DS_REPLICA_NEIGHBOUR_SPECIAL_SECRET_PROCESSING, r);
915 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_PREEMPTED", DRSUAPI_DS_REPLICA_NEIGHBOUR_PREEMPTED, r);
916 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_IGNORE_CHANGE_NOTIFICATIONS", DRSUAPI_DS_REPLICA_NEIGHBOUR_IGNORE_CHANGE_NOTIFICATIONS, r);
917 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_DISABLE_SCHEDULED_SYNC", DRSUAPI_DS_REPLICA_NEIGHBOUR_DISABLE_SCHEDULED_SYNC, r);
918 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_COMPRESS_CHANGES", DRSUAPI_DS_REPLICA_NEIGHBOUR_COMPRESS_CHANGES, r);
919 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_NO_CHANGE_NOTIFICATIONS", DRSUAPI_DS_REPLICA_NEIGHBOUR_NO_CHANGE_NOTIFICATIONS, r);
920 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_PARTIAL_ATTRIBUTE_SET", DRSUAPI_DS_REPLICA_NEIGHBOUR_PARTIAL_ATTRIBUTE_SET, r);
921 ndr->depth--;
924 static enum ndr_err_code ndr_push_drsuapi_DsExtendedOperation(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsExtendedOperation r)
927 uint32_t _flags_save_ENUM = ndr->flags;
928 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
929 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
930 ndr->flags = _flags_save_ENUM;
932 return NDR_ERR_SUCCESS;
935 static enum ndr_err_code ndr_pull_drsuapi_DsExtendedOperation(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsExtendedOperation *r)
937 uint32_t v;
939 uint32_t _flags_save_ENUM = ndr->flags;
940 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
941 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
942 *r = v;
943 ndr->flags = _flags_save_ENUM;
945 return NDR_ERR_SUCCESS;
948 _PUBLIC_ void ndr_print_drsuapi_DsExtendedOperation(struct ndr_print *ndr, const char *name, enum drsuapi_DsExtendedOperation r)
950 const char *val = NULL;
953 uint32_t _flags_save_ENUM = ndr->flags;
954 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
955 switch (r) {
956 case DRSUAPI_EXOP_NONE: val = "DRSUAPI_EXOP_NONE"; break;
957 case DRSUAPI_EXOP_FSMO_REQ_ROLE: val = "DRSUAPI_EXOP_FSMO_REQ_ROLE"; break;
958 case DRSUAPI_EXOP_FSMO_RID_ALLOC: val = "DRSUAPI_EXOP_FSMO_RID_ALLOC"; break;
959 case DRSUAPI_EXOP_FSMO_RID_REQ_ROLE: val = "DRSUAPI_EXOP_FSMO_RID_REQ_ROLE"; break;
960 case DRSUAPI_EXOP_FSMO_REQ_PDC: val = "DRSUAPI_EXOP_FSMO_REQ_PDC"; break;
961 case DRSUAPI_EXOP_FSMO_ABANDON_ROLE: val = "DRSUAPI_EXOP_FSMO_ABANDON_ROLE"; break;
962 case DRSUAPI_EXOP_REPL_OBJ: val = "DRSUAPI_EXOP_REPL_OBJ"; break;
963 case DRSUAPI_EXOP_REPL_SECRET: val = "DRSUAPI_EXOP_REPL_SECRET"; break;
965 ndr_print_enum(ndr, name, "ENUM", val, r);
966 ndr->flags = _flags_save_ENUM;
970 static enum ndr_err_code ndr_push_drsuapi_DsExtendedError(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsExtendedError r)
973 uint32_t _flags_save_ENUM = ndr->flags;
974 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
975 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
976 ndr->flags = _flags_save_ENUM;
978 return NDR_ERR_SUCCESS;
981 static enum ndr_err_code ndr_pull_drsuapi_DsExtendedError(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsExtendedError *r)
983 uint32_t v;
985 uint32_t _flags_save_ENUM = ndr->flags;
986 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
987 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
988 *r = v;
989 ndr->flags = _flags_save_ENUM;
991 return NDR_ERR_SUCCESS;
994 _PUBLIC_ void ndr_print_drsuapi_DsExtendedError(struct ndr_print *ndr, const char *name, enum drsuapi_DsExtendedError r)
996 const char *val = NULL;
999 uint32_t _flags_save_ENUM = ndr->flags;
1000 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1001 switch (r) {
1002 case DRSUAPI_EXOP_ERR_NONE: val = "DRSUAPI_EXOP_ERR_NONE"; break;
1003 case DRSUAPI_EXOP_ERR_SUCCESS: val = "DRSUAPI_EXOP_ERR_SUCCESS"; break;
1004 case DRSUAPI_EXOP_ERR_UNKNOWN_OP: val = "DRSUAPI_EXOP_ERR_UNKNOWN_OP"; break;
1005 case DRSUAPI_EXOP_ERR_FSMO_NOT_OWNER: val = "DRSUAPI_EXOP_ERR_FSMO_NOT_OWNER"; break;
1006 case DRSUAPI_EXOP_ERR_UPDATE_ERR: val = "DRSUAPI_EXOP_ERR_UPDATE_ERR"; break;
1007 case DRSUAPI_EXOP_ERR_EXCEPTION: val = "DRSUAPI_EXOP_ERR_EXCEPTION"; break;
1008 case DRSUAPI_EXOP_ERR_UNKNOWN_CALLER: val = "DRSUAPI_EXOP_ERR_UNKNOWN_CALLER"; break;
1009 case DRSUAPI_EXOP_ERR_RID_ALLOC: val = "DRSUAPI_EXOP_ERR_RID_ALLOC"; break;
1010 case DRSUAPI_EXOP_ERR_FSMO_OWNER_DELETED: val = "DRSUAPI_EXOP_ERR_FSMO_OWNER_DELETED"; break;
1011 case DRSUAPI_EXOP_ERR_FMSO_PENDING_OP: val = "DRSUAPI_EXOP_ERR_FMSO_PENDING_OP"; break;
1012 case DRSUAPI_EXOP_ERR_MISMATCH: val = "DRSUAPI_EXOP_ERR_MISMATCH"; break;
1013 case DRSUAPI_EXOP_ERR_COULDNT_CONTACT: val = "DRSUAPI_EXOP_ERR_COULDNT_CONTACT"; break;
1014 case DRSUAPI_EXOP_ERR_FSMO_REFUSING_ROLES: val = "DRSUAPI_EXOP_ERR_FSMO_REFUSING_ROLES"; break;
1015 case DRSUAPI_EXOP_ERR_DIR_ERROR: val = "DRSUAPI_EXOP_ERR_DIR_ERROR"; break;
1016 case DRSUAPI_EXOP_ERR_FSMO_MISSING_SETTINGS: val = "DRSUAPI_EXOP_ERR_FSMO_MISSING_SETTINGS"; break;
1017 case DRSUAPI_EXOP_ERR_ACCESS_DENIED: val = "DRSUAPI_EXOP_ERR_ACCESS_DENIED"; break;
1018 case DRSUAPI_EXOP_ERR_PARAM_ERROR: val = "DRSUAPI_EXOP_ERR_PARAM_ERROR"; break;
1020 ndr_print_enum(ndr, name, "ENUM", val, r);
1021 ndr->flags = _flags_save_ENUM;
1025 static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesRequest5(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNCChangesRequest5 *r)
1027 if (ndr_flags & NDR_SCALARS) {
1028 NDR_CHECK(ndr_push_align(ndr, 8));
1029 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->destination_dsa_guid));
1030 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
1031 if (r->naming_context == NULL) {
1032 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1034 NDR_CHECK(ndr_push_ref_ptr(ndr));
1035 NDR_CHECK(ndr_push_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->highwatermark));
1036 NDR_CHECK(ndr_push_unique_ptr(ndr, r->uptodateness_vector));
1037 NDR_CHECK(ndr_push_drsuapi_DsReplicaNeighbourFlags(ndr, NDR_SCALARS, r->replica_flags));
1038 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_object_count));
1039 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_ndr_size));
1040 NDR_CHECK(ndr_push_drsuapi_DsExtendedOperation(ndr, NDR_SCALARS, r->extended_op));
1041 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->fsmo_info));
1042 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
1044 if (ndr_flags & NDR_BUFFERS) {
1045 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
1046 if (r->uptodateness_vector) {
1047 NDR_CHECK(ndr_push_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->uptodateness_vector));
1050 return NDR_ERR_SUCCESS;
1053 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesRequest5(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesRequest5 *r)
1055 uint32_t _ptr_naming_context;
1056 TALLOC_CTX *_mem_save_naming_context_0;
1057 uint32_t _ptr_uptodateness_vector;
1058 TALLOC_CTX *_mem_save_uptodateness_vector_0;
1059 if (ndr_flags & NDR_SCALARS) {
1060 NDR_CHECK(ndr_pull_align(ndr, 8));
1061 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->destination_dsa_guid));
1062 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
1063 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_naming_context));
1064 if (_ptr_naming_context) {
1065 NDR_PULL_ALLOC(ndr, r->naming_context);
1066 } else {
1067 r->naming_context = NULL;
1069 NDR_CHECK(ndr_pull_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->highwatermark));
1070 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_uptodateness_vector));
1071 if (_ptr_uptodateness_vector) {
1072 NDR_PULL_ALLOC(ndr, r->uptodateness_vector);
1073 } else {
1074 r->uptodateness_vector = NULL;
1076 NDR_CHECK(ndr_pull_drsuapi_DsReplicaNeighbourFlags(ndr, NDR_SCALARS, &r->replica_flags));
1077 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_object_count));
1078 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_ndr_size));
1079 NDR_CHECK(ndr_pull_drsuapi_DsExtendedOperation(ndr, NDR_SCALARS, &r->extended_op));
1080 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->fsmo_info));
1081 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
1083 if (ndr_flags & NDR_BUFFERS) {
1084 _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
1085 NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
1086 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
1087 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
1088 if (r->uptodateness_vector) {
1089 _mem_save_uptodateness_vector_0 = NDR_PULL_GET_MEM_CTX(ndr);
1090 NDR_PULL_SET_MEM_CTX(ndr, r->uptodateness_vector, 0);
1091 NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->uptodateness_vector));
1092 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_uptodateness_vector_0, 0);
1095 return NDR_ERR_SUCCESS;
1098 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesRequest5(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesRequest5 *r)
1100 ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesRequest5");
1101 ndr->depth++;
1102 ndr_print_GUID(ndr, "destination_dsa_guid", &r->destination_dsa_guid);
1103 ndr_print_GUID(ndr, "source_dsa_invocation_id", &r->source_dsa_invocation_id);
1104 ndr_print_ptr(ndr, "naming_context", r->naming_context);
1105 ndr->depth++;
1106 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
1107 ndr->depth--;
1108 ndr_print_drsuapi_DsReplicaHighWaterMark(ndr, "highwatermark", &r->highwatermark);
1109 ndr_print_ptr(ndr, "uptodateness_vector", r->uptodateness_vector);
1110 ndr->depth++;
1111 if (r->uptodateness_vector) {
1112 ndr_print_drsuapi_DsReplicaCursorCtrEx(ndr, "uptodateness_vector", r->uptodateness_vector);
1114 ndr->depth--;
1115 ndr_print_drsuapi_DsReplicaNeighbourFlags(ndr, "replica_flags", r->replica_flags);
1116 ndr_print_uint32(ndr, "max_object_count", r->max_object_count);
1117 ndr_print_uint32(ndr, "max_ndr_size", r->max_ndr_size);
1118 ndr_print_drsuapi_DsExtendedOperation(ndr, "extended_op", r->extended_op);
1119 ndr_print_hyper(ndr, "fsmo_info", r->fsmo_info);
1120 ndr->depth--;
1123 _PUBLIC_ void ndr_print_drsuapi_DsReplicaOID(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaOID *r)
1125 ndr_print_struct(ndr, name, "drsuapi_DsReplicaOID");
1126 ndr->depth++;
1127 ndr_print_uint32(ndr, "__ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_drsuapi_DsReplicaOID_oid(r->oid, 0):r->__ndr_size);
1128 ndr_print_ptr(ndr, "oid", r->oid);
1129 ndr->depth++;
1130 if (r->oid) {
1131 ndr_print_string(ndr, "oid", r->oid);
1133 ndr->depth--;
1134 ndr->depth--;
1137 static enum ndr_err_code ndr_push_drsuapi_DsReplicaOIDMapping(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaOIDMapping *r)
1139 if (ndr_flags & NDR_SCALARS) {
1140 NDR_CHECK(ndr_push_align(ndr, 5));
1141 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->id_prefix));
1142 NDR_CHECK(ndr_push_drsuapi_DsReplicaOID(ndr, NDR_SCALARS, &r->oid));
1143 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1145 if (ndr_flags & NDR_BUFFERS) {
1146 NDR_CHECK(ndr_push_drsuapi_DsReplicaOID(ndr, NDR_BUFFERS, &r->oid));
1148 return NDR_ERR_SUCCESS;
1151 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaOIDMapping(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaOIDMapping *r)
1153 if (ndr_flags & NDR_SCALARS) {
1154 NDR_CHECK(ndr_pull_align(ndr, 5));
1155 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->id_prefix));
1156 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOID(ndr, NDR_SCALARS, &r->oid));
1157 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1159 if (ndr_flags & NDR_BUFFERS) {
1160 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOID(ndr, NDR_BUFFERS, &r->oid));
1162 return NDR_ERR_SUCCESS;
1165 _PUBLIC_ void ndr_print_drsuapi_DsReplicaOIDMapping(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaOIDMapping *r)
1167 ndr_print_struct(ndr, name, "drsuapi_DsReplicaOIDMapping");
1168 ndr->depth++;
1169 ndr_print_uint32(ndr, "id_prefix", r->id_prefix);
1170 ndr_print_drsuapi_DsReplicaOID(ndr, "oid", &r->oid);
1171 ndr->depth--;
1174 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaOIDMapping_Ctr *r)
1176 uint32_t cntr_mappings_1;
1177 if (ndr_flags & NDR_SCALARS) {
1178 NDR_CHECK(ndr_push_align(ndr, 5));
1179 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_mappings));
1180 NDR_CHECK(ndr_push_unique_ptr(ndr, r->mappings));
1181 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1183 if (ndr_flags & NDR_BUFFERS) {
1184 if (r->mappings) {
1185 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_mappings));
1186 for (cntr_mappings_1 = 0; cntr_mappings_1 < r->num_mappings; cntr_mappings_1++) {
1187 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping(ndr, NDR_SCALARS, &r->mappings[cntr_mappings_1]));
1189 for (cntr_mappings_1 = 0; cntr_mappings_1 < r->num_mappings; cntr_mappings_1++) {
1190 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping(ndr, NDR_BUFFERS, &r->mappings[cntr_mappings_1]));
1194 return NDR_ERR_SUCCESS;
1197 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaOIDMapping_Ctr *r)
1199 uint32_t _ptr_mappings;
1200 uint32_t size_mappings_1 = 0;
1201 uint32_t cntr_mappings_1;
1202 TALLOC_CTX *_mem_save_mappings_0;
1203 TALLOC_CTX *_mem_save_mappings_1;
1204 if (ndr_flags & NDR_SCALARS) {
1205 NDR_CHECK(ndr_pull_align(ndr, 5));
1206 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_mappings));
1207 if (r->num_mappings > 0x100000) {
1208 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
1210 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mappings));
1211 if (_ptr_mappings) {
1212 NDR_PULL_ALLOC(ndr, r->mappings);
1213 } else {
1214 r->mappings = NULL;
1216 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1218 if (ndr_flags & NDR_BUFFERS) {
1219 if (r->mappings) {
1220 _mem_save_mappings_0 = NDR_PULL_GET_MEM_CTX(ndr);
1221 NDR_PULL_SET_MEM_CTX(ndr, r->mappings, 0);
1222 NDR_CHECK(ndr_pull_array_size(ndr, &r->mappings));
1223 size_mappings_1 = ndr_get_array_size(ndr, &r->mappings);
1224 NDR_PULL_ALLOC_N(ndr, r->mappings, size_mappings_1);
1225 _mem_save_mappings_1 = NDR_PULL_GET_MEM_CTX(ndr);
1226 NDR_PULL_SET_MEM_CTX(ndr, r->mappings, 0);
1227 for (cntr_mappings_1 = 0; cntr_mappings_1 < size_mappings_1; cntr_mappings_1++) {
1228 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping(ndr, NDR_SCALARS, &r->mappings[cntr_mappings_1]));
1230 for (cntr_mappings_1 = 0; cntr_mappings_1 < size_mappings_1; cntr_mappings_1++) {
1231 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping(ndr, NDR_BUFFERS, &r->mappings[cntr_mappings_1]));
1233 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mappings_1, 0);
1234 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mappings_0, 0);
1236 if (r->mappings) {
1237 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->mappings, r->num_mappings));
1240 return NDR_ERR_SUCCESS;
1243 _PUBLIC_ void ndr_print_drsuapi_DsReplicaOIDMapping_Ctr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaOIDMapping_Ctr *r)
1245 uint32_t cntr_mappings_1;
1246 ndr_print_struct(ndr, name, "drsuapi_DsReplicaOIDMapping_Ctr");
1247 ndr->depth++;
1248 ndr_print_uint32(ndr, "num_mappings", r->num_mappings);
1249 ndr_print_ptr(ndr, "mappings", r->mappings);
1250 ndr->depth++;
1251 if (r->mappings) {
1252 ndr->print(ndr, "%s: ARRAY(%d)", "mappings", (int)r->num_mappings);
1253 ndr->depth++;
1254 for (cntr_mappings_1=0;cntr_mappings_1<r->num_mappings;cntr_mappings_1++) {
1255 char *idx_1=NULL;
1256 if (asprintf(&idx_1, "[%d]", cntr_mappings_1) != -1) {
1257 ndr_print_drsuapi_DsReplicaOIDMapping(ndr, "mappings", &r->mappings[cntr_mappings_1]);
1258 free(idx_1);
1261 ndr->depth--;
1263 ndr->depth--;
1264 ndr->depth--;
1267 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsAttributeId(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsAttributeId r)
1270 uint32_t _flags_save_ENUM = ndr->flags;
1271 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1272 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
1273 ndr->flags = _flags_save_ENUM;
1275 return NDR_ERR_SUCCESS;
1278 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsAttributeId(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsAttributeId *r)
1280 uint32_t v;
1282 uint32_t _flags_save_ENUM = ndr->flags;
1283 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1284 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
1285 *r = v;
1286 ndr->flags = _flags_save_ENUM;
1288 return NDR_ERR_SUCCESS;
1291 _PUBLIC_ void ndr_print_drsuapi_DsAttributeId(struct ndr_print *ndr, const char *name, enum drsuapi_DsAttributeId r)
1293 const char *val = NULL;
1296 uint32_t _flags_save_ENUM = ndr->flags;
1297 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1298 switch (r) {
1299 case DRSUAPI_ATTRIBUTE_objectClass: val = "DRSUAPI_ATTRIBUTE_objectClass"; break;
1300 case DRSUAPI_ATTRIBUTE_description: val = "DRSUAPI_ATTRIBUTE_description"; break;
1301 case DRSUAPI_ATTRIBUTE_member: val = "DRSUAPI_ATTRIBUTE_member"; break;
1302 case DRSUAPI_ATTRIBUTE_instanceType: val = "DRSUAPI_ATTRIBUTE_instanceType"; break;
1303 case DRSUAPI_ATTRIBUTE_whenCreated: val = "DRSUAPI_ATTRIBUTE_whenCreated"; break;
1304 case DRSUAPI_ATTRIBUTE_possSuperiors: val = "DRSUAPI_ATTRIBUTE_possSuperiors"; break;
1305 case DRSUAPI_ATTRIBUTE_hasMasterNCs: val = "DRSUAPI_ATTRIBUTE_hasMasterNCs"; break;
1306 case DRSUAPI_ATTRIBUTE_subClassOf: val = "DRSUAPI_ATTRIBUTE_subClassOf"; break;
1307 case DRSUAPI_ATTRIBUTE_governsID: val = "DRSUAPI_ATTRIBUTE_governsID"; break;
1308 case DRSUAPI_ATTRIBUTE_mustContain: val = "DRSUAPI_ATTRIBUTE_mustContain"; break;
1309 case DRSUAPI_ATTRIBUTE_mayContain: val = "DRSUAPI_ATTRIBUTE_mayContain"; break;
1310 case DRSUAPI_ATTRIBUTE_attributeID: val = "DRSUAPI_ATTRIBUTE_attributeID"; break;
1311 case DRSUAPI_ATTRIBUTE_attributeSyntax: val = "DRSUAPI_ATTRIBUTE_attributeSyntax"; break;
1312 case DRSUAPI_ATTRIBUTE_isSingleValued: val = "DRSUAPI_ATTRIBUTE_isSingleValued"; break;
1313 case DRSUAPI_ATTRIBUTE_rangeLower: val = "DRSUAPI_ATTRIBUTE_rangeLower"; break;
1314 case DRSUAPI_ATTRIBUTE_rangeUpper: val = "DRSUAPI_ATTRIBUTE_rangeUpper"; break;
1315 case DRSUAPI_ATTRIBUTE_dMDLocation: val = "DRSUAPI_ATTRIBUTE_dMDLocation"; break;
1316 case DRSUAPI_ATTRIBUTE_objectVersion: val = "DRSUAPI_ATTRIBUTE_objectVersion"; break;
1317 case DRSUAPI_ATTRIBUTE_invocationId: val = "DRSUAPI_ATTRIBUTE_invocationId"; break;
1318 case DRSUAPI_ATTRIBUTE_showInAdvancedViewOnly: val = "DRSUAPI_ATTRIBUTE_showInAdvancedViewOnly"; break;
1319 case DRSUAPI_ATTRIBUTE_adminDisplayName: val = "DRSUAPI_ATTRIBUTE_adminDisplayName"; break;
1320 case DRSUAPI_ATTRIBUTE_adminDescription: val = "DRSUAPI_ATTRIBUTE_adminDescription"; break;
1321 case DRSUAPI_ATTRIBUTE_oMSyntax: val = "DRSUAPI_ATTRIBUTE_oMSyntax"; break;
1322 case DRSUAPI_ATTRIBUTE_ntSecurityDescriptor: val = "DRSUAPI_ATTRIBUTE_ntSecurityDescriptor"; break;
1323 case DRSUAPI_ATTRIBUTE_searchFlags: val = "DRSUAPI_ATTRIBUTE_searchFlags"; break;
1324 case DRSUAPI_ATTRIBUTE_auxiliaryClass: val = "DRSUAPI_ATTRIBUTE_auxiliaryClass"; break;
1325 case DRSUAPI_ATTRIBUTE_lDAPDisplayName: val = "DRSUAPI_ATTRIBUTE_lDAPDisplayName"; break;
1326 case DRSUAPI_ATTRIBUTE_name: val = "DRSUAPI_ATTRIBUTE_name"; break;
1327 case DRSUAPI_ATTRIBUTE_userAccountControl: val = "DRSUAPI_ATTRIBUTE_userAccountControl"; break;
1328 case DRSUAPI_ATTRIBUTE_currentValue: val = "DRSUAPI_ATTRIBUTE_currentValue"; break;
1329 case DRSUAPI_ATTRIBUTE_homeDirectory: val = "DRSUAPI_ATTRIBUTE_homeDirectory"; break;
1330 case DRSUAPI_ATTRIBUTE_homeDrive: val = "DRSUAPI_ATTRIBUTE_homeDrive"; break;
1331 case DRSUAPI_ATTRIBUTE_scriptPath: val = "DRSUAPI_ATTRIBUTE_scriptPath"; break;
1332 case DRSUAPI_ATTRIBUTE_profilePath: val = "DRSUAPI_ATTRIBUTE_profilePath"; break;
1333 case DRSUAPI_ATTRIBUTE_objectSid: val = "DRSUAPI_ATTRIBUTE_objectSid"; break;
1334 case DRSUAPI_ATTRIBUTE_schemaIDGUID: val = "DRSUAPI_ATTRIBUTE_schemaIDGUID"; break;
1335 case DRSUAPI_ATTRIBUTE_dBCSPwd: val = "DRSUAPI_ATTRIBUTE_dBCSPwd"; break;
1336 case DRSUAPI_ATTRIBUTE_logonHours: val = "DRSUAPI_ATTRIBUTE_logonHours"; break;
1337 case DRSUAPI_ATTRIBUTE_userWorkstations: val = "DRSUAPI_ATTRIBUTE_userWorkstations"; break;
1338 case DRSUAPI_ATTRIBUTE_unicodePwd: val = "DRSUAPI_ATTRIBUTE_unicodePwd"; break;
1339 case DRSUAPI_ATTRIBUTE_ntPwdHistory: val = "DRSUAPI_ATTRIBUTE_ntPwdHistory"; break;
1340 case DRSUAPI_ATTRIBUTE_priorValue: val = "DRSUAPI_ATTRIBUTE_priorValue"; break;
1341 case DRSUAPI_ATTRIBUTE_supplementalCredentials: val = "DRSUAPI_ATTRIBUTE_supplementalCredentials"; break;
1342 case DRSUAPI_ATTRIBUTE_trustAuthIncoming: val = "DRSUAPI_ATTRIBUTE_trustAuthIncoming"; break;
1343 case DRSUAPI_ATTRIBUTE_trustAuthOutgoing: val = "DRSUAPI_ATTRIBUTE_trustAuthOutgoing"; break;
1344 case DRSUAPI_ATTRIBUTE_lmPwdHistory: val = "DRSUAPI_ATTRIBUTE_lmPwdHistory"; break;
1345 case DRSUAPI_ATTRIBUTE_systemPossSuperiors: val = "DRSUAPI_ATTRIBUTE_systemPossSuperiors"; break;
1346 case DRSUAPI_ATTRIBUTE_systemMayContain: val = "DRSUAPI_ATTRIBUTE_systemMayContain"; break;
1347 case DRSUAPI_ATTRIBUTE_systemMustContain: val = "DRSUAPI_ATTRIBUTE_systemMustContain"; break;
1348 case DRSUAPI_ATTRIBUTE_sAMAccountName: val = "DRSUAPI_ATTRIBUTE_sAMAccountName"; break;
1349 case DRSUAPI_ATTRIBUTE_sAMAccountType: val = "DRSUAPI_ATTRIBUTE_sAMAccountType"; break;
1350 case DRSUAPI_ATTRIBUTE_fSMORoleOwner: val = "DRSUAPI_ATTRIBUTE_fSMORoleOwner"; break;
1351 case DRSUAPI_ATTRIBUTE_systemFlags: val = "DRSUAPI_ATTRIBUTE_systemFlags"; break;
1352 case DRSUAPI_ATTRIBUTE_serverReference: val = "DRSUAPI_ATTRIBUTE_serverReference"; break;
1353 case DRSUAPI_ATTRIBUTE_serverReferenceBL: val = "DRSUAPI_ATTRIBUTE_serverReferenceBL"; break;
1354 case DRSUAPI_ATTRIBUTE_initialAuthIncoming: val = "DRSUAPI_ATTRIBUTE_initialAuthIncoming"; break;
1355 case DRSUAPI_ATTRIBUTE_initialAuthOutgoing: val = "DRSUAPI_ATTRIBUTE_initialAuthOutgoing"; break;
1356 case DRSUAPI_ATTRIBUTE_wellKnownObjects: val = "DRSUAPI_ATTRIBUTE_wellKnownObjects"; break;
1357 case DRSUAPI_ATTRIBUTE_dNSHostName: val = "DRSUAPI_ATTRIBUTE_dNSHostName"; break;
1358 case DRSUAPI_ATTRIBUTE_isMemberOfPartialAttributeSet: val = "DRSUAPI_ATTRIBUTE_isMemberOfPartialAttributeSet"; break;
1359 case DRSUAPI_ATTRIBUTE_userPrincipalName: val = "DRSUAPI_ATTRIBUTE_userPrincipalName"; break;
1360 case DRSUAPI_ATTRIBUTE_groupType: val = "DRSUAPI_ATTRIBUTE_groupType"; break;
1361 case DRSUAPI_ATTRIBUTE_servicePrincipalName: val = "DRSUAPI_ATTRIBUTE_servicePrincipalName"; break;
1362 case DRSUAPI_ATTRIBUTE_objectCategory: val = "DRSUAPI_ATTRIBUTE_objectCategory"; break;
1363 case DRSUAPI_ATTRIBUTE_gPLink: val = "DRSUAPI_ATTRIBUTE_gPLink"; break;
1364 case DRSUAPI_ATTRIBUTE_msDS_Behavior_Version: val = "DRSUAPI_ATTRIBUTE_msDS_Behavior_Version"; break;
1365 case DRSUAPI_ATTRIBUTE_msDS_KeyVersionNumber: val = "DRSUAPI_ATTRIBUTE_msDS_KeyVersionNumber"; break;
1366 case DRSUAPI_ATTRIBUTE_msDS_HasDomainNCs: val = "DRSUAPI_ATTRIBUTE_msDS_HasDomainNCs"; break;
1367 case DRSUAPI_ATTRIBUTE_msDS_hasMasterNCs: val = "DRSUAPI_ATTRIBUTE_msDS_hasMasterNCs"; break;
1369 ndr_print_enum(ndr, name, "ENUM", val, r);
1370 ndr->flags = _flags_save_ENUM;
1374 static enum ndr_err_code ndr_push_drsuapi_DsPartialAttributeSet(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsPartialAttributeSet *r)
1376 uint32_t cntr_attids_0;
1377 if (ndr_flags & NDR_SCALARS) {
1378 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_attids));
1379 NDR_CHECK(ndr_push_align(ndr, 4));
1380 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 1));
1381 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1382 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_attids));
1383 for (cntr_attids_0 = 0; cntr_attids_0 < r->num_attids; cntr_attids_0++) {
1384 NDR_CHECK(ndr_push_drsuapi_DsAttributeId(ndr, NDR_SCALARS, r->attids[cntr_attids_0]));
1386 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1388 if (ndr_flags & NDR_BUFFERS) {
1390 return NDR_ERR_SUCCESS;
1393 static enum ndr_err_code ndr_pull_drsuapi_DsPartialAttributeSet(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsPartialAttributeSet *r)
1395 uint32_t size_attids_0 = 0;
1396 uint32_t cntr_attids_0;
1397 TALLOC_CTX *_mem_save_attids_0;
1398 if (ndr_flags & NDR_SCALARS) {
1399 NDR_CHECK(ndr_pull_array_size(ndr, &r->attids));
1400 NDR_CHECK(ndr_pull_align(ndr, 4));
1401 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
1402 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
1403 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_attids));
1404 if (r->num_attids < 1 || r->num_attids > 0x100000) {
1405 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
1407 size_attids_0 = ndr_get_array_size(ndr, &r->attids);
1408 NDR_PULL_ALLOC_N(ndr, r->attids, size_attids_0);
1409 _mem_save_attids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1410 NDR_PULL_SET_MEM_CTX(ndr, r->attids, 0);
1411 for (cntr_attids_0 = 0; cntr_attids_0 < size_attids_0; cntr_attids_0++) {
1412 NDR_CHECK(ndr_pull_drsuapi_DsAttributeId(ndr, NDR_SCALARS, &r->attids[cntr_attids_0]));
1414 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attids_0, 0);
1415 if (r->attids) {
1416 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->attids, r->num_attids));
1418 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1420 if (ndr_flags & NDR_BUFFERS) {
1422 return NDR_ERR_SUCCESS;
1425 _PUBLIC_ void ndr_print_drsuapi_DsPartialAttributeSet(struct ndr_print *ndr, const char *name, const struct drsuapi_DsPartialAttributeSet *r)
1427 uint32_t cntr_attids_0;
1428 ndr_print_struct(ndr, name, "drsuapi_DsPartialAttributeSet");
1429 ndr->depth++;
1430 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?1:r->version);
1431 ndr_print_uint32(ndr, "reserved1", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->reserved1);
1432 ndr_print_uint32(ndr, "num_attids", r->num_attids);
1433 ndr->print(ndr, "%s: ARRAY(%d)", "attids", (int)r->num_attids);
1434 ndr->depth++;
1435 for (cntr_attids_0=0;cntr_attids_0<r->num_attids;cntr_attids_0++) {
1436 char *idx_0=NULL;
1437 if (asprintf(&idx_0, "[%d]", cntr_attids_0) != -1) {
1438 ndr_print_drsuapi_DsAttributeId(ndr, "attids", r->attids[cntr_attids_0]);
1439 free(idx_0);
1442 ndr->depth--;
1443 ndr->depth--;
1446 static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesRequest8(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNCChangesRequest8 *r)
1448 if (ndr_flags & NDR_SCALARS) {
1449 NDR_CHECK(ndr_push_align(ndr, 8));
1450 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->destination_dsa_guid));
1451 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
1452 if (r->naming_context == NULL) {
1453 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1455 NDR_CHECK(ndr_push_ref_ptr(ndr));
1456 NDR_CHECK(ndr_push_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->highwatermark));
1457 NDR_CHECK(ndr_push_unique_ptr(ndr, r->uptodateness_vector));
1458 NDR_CHECK(ndr_push_drsuapi_DsReplicaNeighbourFlags(ndr, NDR_SCALARS, r->replica_flags));
1459 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_object_count));
1460 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_ndr_size));
1461 NDR_CHECK(ndr_push_drsuapi_DsExtendedOperation(ndr, NDR_SCALARS, r->extended_op));
1462 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->fsmo_info));
1463 NDR_CHECK(ndr_push_unique_ptr(ndr, r->partial_attribute_set));
1464 NDR_CHECK(ndr_push_unique_ptr(ndr, r->partial_attribute_set_ex));
1465 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_SCALARS, &r->mapping_ctr));
1466 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
1468 if (ndr_flags & NDR_BUFFERS) {
1469 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
1470 if (r->uptodateness_vector) {
1471 NDR_CHECK(ndr_push_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->uptodateness_vector));
1473 if (r->partial_attribute_set) {
1474 NDR_CHECK(ndr_push_drsuapi_DsPartialAttributeSet(ndr, NDR_SCALARS, r->partial_attribute_set));
1476 if (r->partial_attribute_set_ex) {
1477 NDR_CHECK(ndr_push_drsuapi_DsPartialAttributeSet(ndr, NDR_SCALARS, r->partial_attribute_set_ex));
1479 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_BUFFERS, &r->mapping_ctr));
1481 return NDR_ERR_SUCCESS;
1484 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesRequest8(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesRequest8 *r)
1486 uint32_t _ptr_naming_context;
1487 TALLOC_CTX *_mem_save_naming_context_0;
1488 uint32_t _ptr_uptodateness_vector;
1489 TALLOC_CTX *_mem_save_uptodateness_vector_0;
1490 uint32_t _ptr_partial_attribute_set;
1491 TALLOC_CTX *_mem_save_partial_attribute_set_0;
1492 uint32_t _ptr_partial_attribute_set_ex;
1493 TALLOC_CTX *_mem_save_partial_attribute_set_ex_0;
1494 if (ndr_flags & NDR_SCALARS) {
1495 NDR_CHECK(ndr_pull_align(ndr, 8));
1496 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->destination_dsa_guid));
1497 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
1498 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_naming_context));
1499 if (_ptr_naming_context) {
1500 NDR_PULL_ALLOC(ndr, r->naming_context);
1501 } else {
1502 r->naming_context = NULL;
1504 NDR_CHECK(ndr_pull_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->highwatermark));
1505 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_uptodateness_vector));
1506 if (_ptr_uptodateness_vector) {
1507 NDR_PULL_ALLOC(ndr, r->uptodateness_vector);
1508 } else {
1509 r->uptodateness_vector = NULL;
1511 NDR_CHECK(ndr_pull_drsuapi_DsReplicaNeighbourFlags(ndr, NDR_SCALARS, &r->replica_flags));
1512 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_object_count));
1513 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_ndr_size));
1514 NDR_CHECK(ndr_pull_drsuapi_DsExtendedOperation(ndr, NDR_SCALARS, &r->extended_op));
1515 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->fsmo_info));
1516 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_partial_attribute_set));
1517 if (_ptr_partial_attribute_set) {
1518 NDR_PULL_ALLOC(ndr, r->partial_attribute_set);
1519 } else {
1520 r->partial_attribute_set = NULL;
1522 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_partial_attribute_set_ex));
1523 if (_ptr_partial_attribute_set_ex) {
1524 NDR_PULL_ALLOC(ndr, r->partial_attribute_set_ex);
1525 } else {
1526 r->partial_attribute_set_ex = NULL;
1528 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_SCALARS, &r->mapping_ctr));
1529 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
1531 if (ndr_flags & NDR_BUFFERS) {
1532 _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
1533 NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
1534 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
1535 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
1536 if (r->uptodateness_vector) {
1537 _mem_save_uptodateness_vector_0 = NDR_PULL_GET_MEM_CTX(ndr);
1538 NDR_PULL_SET_MEM_CTX(ndr, r->uptodateness_vector, 0);
1539 NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->uptodateness_vector));
1540 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_uptodateness_vector_0, 0);
1542 if (r->partial_attribute_set) {
1543 _mem_save_partial_attribute_set_0 = NDR_PULL_GET_MEM_CTX(ndr);
1544 NDR_PULL_SET_MEM_CTX(ndr, r->partial_attribute_set, 0);
1545 NDR_CHECK(ndr_pull_drsuapi_DsPartialAttributeSet(ndr, NDR_SCALARS, r->partial_attribute_set));
1546 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_partial_attribute_set_0, 0);
1548 if (r->partial_attribute_set_ex) {
1549 _mem_save_partial_attribute_set_ex_0 = NDR_PULL_GET_MEM_CTX(ndr);
1550 NDR_PULL_SET_MEM_CTX(ndr, r->partial_attribute_set_ex, 0);
1551 NDR_CHECK(ndr_pull_drsuapi_DsPartialAttributeSet(ndr, NDR_SCALARS, r->partial_attribute_set_ex));
1552 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_partial_attribute_set_ex_0, 0);
1554 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_BUFFERS, &r->mapping_ctr));
1556 return NDR_ERR_SUCCESS;
1559 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesRequest8(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesRequest8 *r)
1561 ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesRequest8");
1562 ndr->depth++;
1563 ndr_print_GUID(ndr, "destination_dsa_guid", &r->destination_dsa_guid);
1564 ndr_print_GUID(ndr, "source_dsa_invocation_id", &r->source_dsa_invocation_id);
1565 ndr_print_ptr(ndr, "naming_context", r->naming_context);
1566 ndr->depth++;
1567 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
1568 ndr->depth--;
1569 ndr_print_drsuapi_DsReplicaHighWaterMark(ndr, "highwatermark", &r->highwatermark);
1570 ndr_print_ptr(ndr, "uptodateness_vector", r->uptodateness_vector);
1571 ndr->depth++;
1572 if (r->uptodateness_vector) {
1573 ndr_print_drsuapi_DsReplicaCursorCtrEx(ndr, "uptodateness_vector", r->uptodateness_vector);
1575 ndr->depth--;
1576 ndr_print_drsuapi_DsReplicaNeighbourFlags(ndr, "replica_flags", r->replica_flags);
1577 ndr_print_uint32(ndr, "max_object_count", r->max_object_count);
1578 ndr_print_uint32(ndr, "max_ndr_size", r->max_ndr_size);
1579 ndr_print_drsuapi_DsExtendedOperation(ndr, "extended_op", r->extended_op);
1580 ndr_print_hyper(ndr, "fsmo_info", r->fsmo_info);
1581 ndr_print_ptr(ndr, "partial_attribute_set", r->partial_attribute_set);
1582 ndr->depth++;
1583 if (r->partial_attribute_set) {
1584 ndr_print_drsuapi_DsPartialAttributeSet(ndr, "partial_attribute_set", r->partial_attribute_set);
1586 ndr->depth--;
1587 ndr_print_ptr(ndr, "partial_attribute_set_ex", r->partial_attribute_set_ex);
1588 ndr->depth++;
1589 if (r->partial_attribute_set_ex) {
1590 ndr_print_drsuapi_DsPartialAttributeSet(ndr, "partial_attribute_set_ex", r->partial_attribute_set_ex);
1592 ndr->depth--;
1593 ndr_print_drsuapi_DsReplicaOIDMapping_Ctr(ndr, "mapping_ctr", &r->mapping_ctr);
1594 ndr->depth--;
1597 static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesRequest10(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNCChangesRequest10 *r)
1599 if (ndr_flags & NDR_SCALARS) {
1600 NDR_CHECK(ndr_push_align(ndr, 8));
1601 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->destination_dsa_guid));
1602 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
1603 if (r->naming_context == NULL) {
1604 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
1606 NDR_CHECK(ndr_push_ref_ptr(ndr));
1607 NDR_CHECK(ndr_push_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->highwatermark));
1608 NDR_CHECK(ndr_push_unique_ptr(ndr, r->uptodateness_vector));
1609 NDR_CHECK(ndr_push_drsuapi_DsReplicaNeighbourFlags(ndr, NDR_SCALARS, r->replica_flags));
1610 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_object_count));
1611 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_ndr_size));
1612 NDR_CHECK(ndr_push_drsuapi_DsExtendedOperation(ndr, NDR_SCALARS, r->extended_op));
1613 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->fsmo_info));
1614 NDR_CHECK(ndr_push_unique_ptr(ndr, r->partial_attribute_set));
1615 NDR_CHECK(ndr_push_unique_ptr(ndr, r->partial_attribute_set_ex));
1616 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_SCALARS, &r->mapping_ctr));
1617 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->more_flags));
1618 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
1620 if (ndr_flags & NDR_BUFFERS) {
1621 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
1622 if (r->uptodateness_vector) {
1623 NDR_CHECK(ndr_push_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->uptodateness_vector));
1625 if (r->partial_attribute_set) {
1626 NDR_CHECK(ndr_push_drsuapi_DsPartialAttributeSet(ndr, NDR_SCALARS, r->partial_attribute_set));
1628 if (r->partial_attribute_set_ex) {
1629 NDR_CHECK(ndr_push_drsuapi_DsPartialAttributeSet(ndr, NDR_SCALARS, r->partial_attribute_set_ex));
1631 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_BUFFERS, &r->mapping_ctr));
1633 return NDR_ERR_SUCCESS;
1636 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesRequest10(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesRequest10 *r)
1638 uint32_t _ptr_naming_context;
1639 TALLOC_CTX *_mem_save_naming_context_0;
1640 uint32_t _ptr_uptodateness_vector;
1641 TALLOC_CTX *_mem_save_uptodateness_vector_0;
1642 uint32_t _ptr_partial_attribute_set;
1643 TALLOC_CTX *_mem_save_partial_attribute_set_0;
1644 uint32_t _ptr_partial_attribute_set_ex;
1645 TALLOC_CTX *_mem_save_partial_attribute_set_ex_0;
1646 if (ndr_flags & NDR_SCALARS) {
1647 NDR_CHECK(ndr_pull_align(ndr, 8));
1648 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->destination_dsa_guid));
1649 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
1650 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_naming_context));
1651 if (_ptr_naming_context) {
1652 NDR_PULL_ALLOC(ndr, r->naming_context);
1653 } else {
1654 r->naming_context = NULL;
1656 NDR_CHECK(ndr_pull_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->highwatermark));
1657 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_uptodateness_vector));
1658 if (_ptr_uptodateness_vector) {
1659 NDR_PULL_ALLOC(ndr, r->uptodateness_vector);
1660 } else {
1661 r->uptodateness_vector = NULL;
1663 NDR_CHECK(ndr_pull_drsuapi_DsReplicaNeighbourFlags(ndr, NDR_SCALARS, &r->replica_flags));
1664 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_object_count));
1665 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_ndr_size));
1666 NDR_CHECK(ndr_pull_drsuapi_DsExtendedOperation(ndr, NDR_SCALARS, &r->extended_op));
1667 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->fsmo_info));
1668 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_partial_attribute_set));
1669 if (_ptr_partial_attribute_set) {
1670 NDR_PULL_ALLOC(ndr, r->partial_attribute_set);
1671 } else {
1672 r->partial_attribute_set = NULL;
1674 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_partial_attribute_set_ex));
1675 if (_ptr_partial_attribute_set_ex) {
1676 NDR_PULL_ALLOC(ndr, r->partial_attribute_set_ex);
1677 } else {
1678 r->partial_attribute_set_ex = NULL;
1680 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_SCALARS, &r->mapping_ctr));
1681 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->more_flags));
1682 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
1684 if (ndr_flags & NDR_BUFFERS) {
1685 _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
1686 NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
1687 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
1688 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
1689 if (r->uptodateness_vector) {
1690 _mem_save_uptodateness_vector_0 = NDR_PULL_GET_MEM_CTX(ndr);
1691 NDR_PULL_SET_MEM_CTX(ndr, r->uptodateness_vector, 0);
1692 NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->uptodateness_vector));
1693 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_uptodateness_vector_0, 0);
1695 if (r->partial_attribute_set) {
1696 _mem_save_partial_attribute_set_0 = NDR_PULL_GET_MEM_CTX(ndr);
1697 NDR_PULL_SET_MEM_CTX(ndr, r->partial_attribute_set, 0);
1698 NDR_CHECK(ndr_pull_drsuapi_DsPartialAttributeSet(ndr, NDR_SCALARS, r->partial_attribute_set));
1699 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_partial_attribute_set_0, 0);
1701 if (r->partial_attribute_set_ex) {
1702 _mem_save_partial_attribute_set_ex_0 = NDR_PULL_GET_MEM_CTX(ndr);
1703 NDR_PULL_SET_MEM_CTX(ndr, r->partial_attribute_set_ex, 0);
1704 NDR_CHECK(ndr_pull_drsuapi_DsPartialAttributeSet(ndr, NDR_SCALARS, r->partial_attribute_set_ex));
1705 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_partial_attribute_set_ex_0, 0);
1707 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_BUFFERS, &r->mapping_ctr));
1709 return NDR_ERR_SUCCESS;
1712 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesRequest10(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesRequest10 *r)
1714 ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesRequest10");
1715 ndr->depth++;
1716 ndr_print_GUID(ndr, "destination_dsa_guid", &r->destination_dsa_guid);
1717 ndr_print_GUID(ndr, "source_dsa_invocation_id", &r->source_dsa_invocation_id);
1718 ndr_print_ptr(ndr, "naming_context", r->naming_context);
1719 ndr->depth++;
1720 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
1721 ndr->depth--;
1722 ndr_print_drsuapi_DsReplicaHighWaterMark(ndr, "highwatermark", &r->highwatermark);
1723 ndr_print_ptr(ndr, "uptodateness_vector", r->uptodateness_vector);
1724 ndr->depth++;
1725 if (r->uptodateness_vector) {
1726 ndr_print_drsuapi_DsReplicaCursorCtrEx(ndr, "uptodateness_vector", r->uptodateness_vector);
1728 ndr->depth--;
1729 ndr_print_drsuapi_DsReplicaNeighbourFlags(ndr, "replica_flags", r->replica_flags);
1730 ndr_print_uint32(ndr, "max_object_count", r->max_object_count);
1731 ndr_print_uint32(ndr, "max_ndr_size", r->max_ndr_size);
1732 ndr_print_drsuapi_DsExtendedOperation(ndr, "extended_op", r->extended_op);
1733 ndr_print_hyper(ndr, "fsmo_info", r->fsmo_info);
1734 ndr_print_ptr(ndr, "partial_attribute_set", r->partial_attribute_set);
1735 ndr->depth++;
1736 if (r->partial_attribute_set) {
1737 ndr_print_drsuapi_DsPartialAttributeSet(ndr, "partial_attribute_set", r->partial_attribute_set);
1739 ndr->depth--;
1740 ndr_print_ptr(ndr, "partial_attribute_set_ex", r->partial_attribute_set_ex);
1741 ndr->depth++;
1742 if (r->partial_attribute_set_ex) {
1743 ndr_print_drsuapi_DsPartialAttributeSet(ndr, "partial_attribute_set_ex", r->partial_attribute_set_ex);
1745 ndr->depth--;
1746 ndr_print_drsuapi_DsReplicaOIDMapping_Ctr(ndr, "mapping_ctr", &r->mapping_ctr);
1747 ndr_print_uint32(ndr, "more_flags", r->more_flags);
1748 ndr->depth--;
1751 static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetNCChangesRequest *r)
1753 if (ndr_flags & NDR_SCALARS) {
1754 int level = ndr_push_get_switch_value(ndr, r);
1755 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
1756 NDR_CHECK(ndr_push_union_align(ndr, 8));
1757 switch (level) {
1758 case 5: {
1759 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesRequest5(ndr, NDR_SCALARS, &r->req5));
1760 break; }
1762 case 8: {
1763 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesRequest8(ndr, NDR_SCALARS, &r->req8));
1764 break; }
1766 case 10: {
1767 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesRequest10(ndr, NDR_SCALARS, &r->req10));
1768 break; }
1770 default:
1771 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1774 if (ndr_flags & NDR_BUFFERS) {
1775 int level = ndr_push_get_switch_value(ndr, r);
1776 switch (level) {
1777 case 5:
1778 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesRequest5(ndr, NDR_BUFFERS, &r->req5));
1779 break;
1781 case 8:
1782 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesRequest8(ndr, NDR_BUFFERS, &r->req8));
1783 break;
1785 case 10:
1786 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesRequest10(ndr, NDR_BUFFERS, &r->req10));
1787 break;
1789 default:
1790 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1793 return NDR_ERR_SUCCESS;
1796 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetNCChangesRequest *r)
1798 int level;
1799 int32_t _level;
1800 level = ndr_pull_get_switch_value(ndr, r);
1801 if (ndr_flags & NDR_SCALARS) {
1802 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
1803 if (_level != level) {
1804 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
1806 NDR_CHECK(ndr_pull_union_align(ndr, 8));
1807 switch (level) {
1808 case 5: {
1809 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesRequest5(ndr, NDR_SCALARS, &r->req5));
1810 break; }
1812 case 8: {
1813 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesRequest8(ndr, NDR_SCALARS, &r->req8));
1814 break; }
1816 case 10: {
1817 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesRequest10(ndr, NDR_SCALARS, &r->req10));
1818 break; }
1820 default:
1821 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1824 if (ndr_flags & NDR_BUFFERS) {
1825 switch (level) {
1826 case 5:
1827 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesRequest5(ndr, NDR_BUFFERS, &r->req5));
1828 break;
1830 case 8:
1831 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesRequest8(ndr, NDR_BUFFERS, &r->req8));
1832 break;
1834 case 10:
1835 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesRequest10(ndr, NDR_BUFFERS, &r->req10));
1836 break;
1838 default:
1839 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
1842 return NDR_ERR_SUCCESS;
1845 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetNCChangesRequest *r)
1847 int level;
1848 level = ndr_print_get_switch_value(ndr, r);
1849 ndr_print_union(ndr, name, level, "drsuapi_DsGetNCChangesRequest");
1850 switch (level) {
1851 case 5:
1852 ndr_print_drsuapi_DsGetNCChangesRequest5(ndr, "req5", &r->req5);
1853 break;
1855 case 8:
1856 ndr_print_drsuapi_DsGetNCChangesRequest8(ndr, "req8", &r->req8);
1857 break;
1859 case 10:
1860 ndr_print_drsuapi_DsGetNCChangesRequest10(ndr, "req10", &r->req10);
1861 break;
1863 default:
1864 ndr_print_bad_level(ndr, name, level);
1868 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaCursor2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaCursor2 *r)
1870 if (ndr_flags & NDR_SCALARS) {
1871 NDR_CHECK(ndr_push_align(ndr, 8));
1872 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
1873 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->highest_usn));
1874 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_sync_success));
1875 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
1877 if (ndr_flags & NDR_BUFFERS) {
1879 return NDR_ERR_SUCCESS;
1882 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaCursor2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaCursor2 *r)
1884 if (ndr_flags & NDR_SCALARS) {
1885 NDR_CHECK(ndr_pull_align(ndr, 8));
1886 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
1887 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->highest_usn));
1888 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_sync_success));
1889 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
1891 if (ndr_flags & NDR_BUFFERS) {
1893 return NDR_ERR_SUCCESS;
1896 _PUBLIC_ void ndr_print_drsuapi_DsReplicaCursor2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaCursor2 *r)
1898 ndr_print_struct(ndr, name, "drsuapi_DsReplicaCursor2");
1899 ndr->depth++;
1900 ndr_print_GUID(ndr, "source_dsa_invocation_id", &r->source_dsa_invocation_id);
1901 ndr_print_hyper(ndr, "highest_usn", r->highest_usn);
1902 ndr_print_NTTIME(ndr, "last_sync_success", r->last_sync_success);
1903 ndr->depth--;
1906 static enum ndr_err_code ndr_push_drsuapi_DsReplicaCursor2CtrEx(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaCursor2CtrEx *r)
1908 uint32_t cntr_cursors_0;
1909 if (ndr_flags & NDR_SCALARS) {
1910 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
1911 NDR_CHECK(ndr_push_align(ndr, 8));
1912 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
1913 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1914 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
1915 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1916 for (cntr_cursors_0 = 0; cntr_cursors_0 < r->count; cntr_cursors_0++) {
1917 NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor2(ndr, NDR_SCALARS, &r->cursors[cntr_cursors_0]));
1919 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
1921 if (ndr_flags & NDR_BUFFERS) {
1923 return NDR_ERR_SUCCESS;
1926 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaCursor2CtrEx(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaCursor2CtrEx *r)
1928 uint32_t size_cursors_0 = 0;
1929 uint32_t cntr_cursors_0;
1930 TALLOC_CTX *_mem_save_cursors_0;
1931 if (ndr_flags & NDR_SCALARS) {
1932 NDR_CHECK(ndr_pull_array_size(ndr, &r->cursors));
1933 NDR_CHECK(ndr_pull_align(ndr, 8));
1934 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
1935 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
1936 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
1937 if (r->count > 0x100000) {
1938 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
1940 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
1941 size_cursors_0 = ndr_get_array_size(ndr, &r->cursors);
1942 NDR_PULL_ALLOC_N(ndr, r->cursors, size_cursors_0);
1943 _mem_save_cursors_0 = NDR_PULL_GET_MEM_CTX(ndr);
1944 NDR_PULL_SET_MEM_CTX(ndr, r->cursors, 0);
1945 for (cntr_cursors_0 = 0; cntr_cursors_0 < size_cursors_0; cntr_cursors_0++) {
1946 NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor2(ndr, NDR_SCALARS, &r->cursors[cntr_cursors_0]));
1948 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_cursors_0, 0);
1949 if (r->cursors) {
1950 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->cursors, r->count));
1952 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
1954 if (ndr_flags & NDR_BUFFERS) {
1956 return NDR_ERR_SUCCESS;
1959 _PUBLIC_ void ndr_print_drsuapi_DsReplicaCursor2CtrEx(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaCursor2CtrEx *r)
1961 uint32_t cntr_cursors_0;
1962 ndr_print_struct(ndr, name, "drsuapi_DsReplicaCursor2CtrEx");
1963 ndr->depth++;
1964 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
1965 ndr_print_uint32(ndr, "reserved1", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->reserved1);
1966 ndr_print_uint32(ndr, "count", r->count);
1967 ndr_print_uint32(ndr, "reserved2", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->reserved2);
1968 ndr->print(ndr, "%s: ARRAY(%d)", "cursors", (int)r->count);
1969 ndr->depth++;
1970 for (cntr_cursors_0=0;cntr_cursors_0<r->count;cntr_cursors_0++) {
1971 char *idx_0=NULL;
1972 if (asprintf(&idx_0, "[%d]", cntr_cursors_0) != -1) {
1973 ndr_print_drsuapi_DsReplicaCursor2(ndr, "cursors", &r->cursors[cntr_cursors_0]);
1974 free(idx_0);
1977 ndr->depth--;
1978 ndr->depth--;
1981 static enum ndr_err_code ndr_push_drsuapi_DsAttributeValue(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAttributeValue *r)
1983 if (ndr_flags & NDR_SCALARS) {
1984 NDR_CHECK(ndr_push_align(ndr, 5));
1985 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_DATA_BLOB(0, r->blob, 0)));
1986 NDR_CHECK(ndr_push_unique_ptr(ndr, r->blob));
1987 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1989 if (ndr_flags & NDR_BUFFERS) {
1990 if (r->blob) {
1991 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->blob));
1994 return NDR_ERR_SUCCESS;
1997 static enum ndr_err_code ndr_pull_drsuapi_DsAttributeValue(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAttributeValue *r)
1999 uint32_t _ptr_blob;
2000 TALLOC_CTX *_mem_save_blob_0;
2001 if (ndr_flags & NDR_SCALARS) {
2002 NDR_CHECK(ndr_pull_align(ndr, 5));
2003 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size));
2004 if (r->__ndr_size > 10485760) {
2005 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
2007 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_blob));
2008 if (_ptr_blob) {
2009 NDR_PULL_ALLOC(ndr, r->blob);
2010 } else {
2011 r->blob = NULL;
2013 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2015 if (ndr_flags & NDR_BUFFERS) {
2016 if (r->blob) {
2017 _mem_save_blob_0 = NDR_PULL_GET_MEM_CTX(ndr);
2018 NDR_PULL_SET_MEM_CTX(ndr, r->blob, 0);
2019 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->blob));
2020 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_blob_0, 0);
2023 return NDR_ERR_SUCCESS;
2026 _PUBLIC_ void ndr_print_drsuapi_DsAttributeValue(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAttributeValue *r)
2028 ndr_print_struct(ndr, name, "drsuapi_DsAttributeValue");
2029 ndr->depth++;
2030 ndr_print_uint32(ndr, "__ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_DATA_BLOB(0, r->blob, 0):r->__ndr_size);
2031 ndr_print_ptr(ndr, "blob", r->blob);
2032 ndr->depth++;
2033 if (r->blob) {
2034 ndr_print_DATA_BLOB(ndr, "blob", *r->blob);
2036 ndr->depth--;
2037 ndr->depth--;
2040 static enum ndr_err_code ndr_push_drsuapi_DsAttributeValueCtr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAttributeValueCtr *r)
2042 uint32_t cntr_values_1;
2043 if (ndr_flags & NDR_SCALARS) {
2044 NDR_CHECK(ndr_push_align(ndr, 5));
2045 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_values));
2046 NDR_CHECK(ndr_push_unique_ptr(ndr, r->values));
2047 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2049 if (ndr_flags & NDR_BUFFERS) {
2050 if (r->values) {
2051 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_values));
2052 for (cntr_values_1 = 0; cntr_values_1 < r->num_values; cntr_values_1++) {
2053 NDR_CHECK(ndr_push_drsuapi_DsAttributeValue(ndr, NDR_SCALARS, &r->values[cntr_values_1]));
2055 for (cntr_values_1 = 0; cntr_values_1 < r->num_values; cntr_values_1++) {
2056 NDR_CHECK(ndr_push_drsuapi_DsAttributeValue(ndr, NDR_BUFFERS, &r->values[cntr_values_1]));
2060 return NDR_ERR_SUCCESS;
2063 static enum ndr_err_code ndr_pull_drsuapi_DsAttributeValueCtr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAttributeValueCtr *r)
2065 uint32_t _ptr_values;
2066 uint32_t size_values_1 = 0;
2067 uint32_t cntr_values_1;
2068 TALLOC_CTX *_mem_save_values_0;
2069 TALLOC_CTX *_mem_save_values_1;
2070 if (ndr_flags & NDR_SCALARS) {
2071 NDR_CHECK(ndr_pull_align(ndr, 5));
2072 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_values));
2073 if (r->num_values > 10485760) {
2074 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
2076 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_values));
2077 if (_ptr_values) {
2078 NDR_PULL_ALLOC(ndr, r->values);
2079 } else {
2080 r->values = NULL;
2082 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2084 if (ndr_flags & NDR_BUFFERS) {
2085 if (r->values) {
2086 _mem_save_values_0 = NDR_PULL_GET_MEM_CTX(ndr);
2087 NDR_PULL_SET_MEM_CTX(ndr, r->values, 0);
2088 NDR_CHECK(ndr_pull_array_size(ndr, &r->values));
2089 size_values_1 = ndr_get_array_size(ndr, &r->values);
2090 NDR_PULL_ALLOC_N(ndr, r->values, size_values_1);
2091 _mem_save_values_1 = NDR_PULL_GET_MEM_CTX(ndr);
2092 NDR_PULL_SET_MEM_CTX(ndr, r->values, 0);
2093 for (cntr_values_1 = 0; cntr_values_1 < size_values_1; cntr_values_1++) {
2094 NDR_CHECK(ndr_pull_drsuapi_DsAttributeValue(ndr, NDR_SCALARS, &r->values[cntr_values_1]));
2096 for (cntr_values_1 = 0; cntr_values_1 < size_values_1; cntr_values_1++) {
2097 NDR_CHECK(ndr_pull_drsuapi_DsAttributeValue(ndr, NDR_BUFFERS, &r->values[cntr_values_1]));
2099 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_values_1, 0);
2100 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_values_0, 0);
2102 if (r->values) {
2103 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->values, r->num_values));
2106 return NDR_ERR_SUCCESS;
2109 _PUBLIC_ void ndr_print_drsuapi_DsAttributeValueCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAttributeValueCtr *r)
2111 uint32_t cntr_values_1;
2112 ndr_print_struct(ndr, name, "drsuapi_DsAttributeValueCtr");
2113 ndr->depth++;
2114 ndr_print_uint32(ndr, "num_values", r->num_values);
2115 ndr_print_ptr(ndr, "values", r->values);
2116 ndr->depth++;
2117 if (r->values) {
2118 ndr->print(ndr, "%s: ARRAY(%d)", "values", (int)r->num_values);
2119 ndr->depth++;
2120 for (cntr_values_1=0;cntr_values_1<r->num_values;cntr_values_1++) {
2121 char *idx_1=NULL;
2122 if (asprintf(&idx_1, "[%d]", cntr_values_1) != -1) {
2123 ndr_print_drsuapi_DsAttributeValue(ndr, "values", &r->values[cntr_values_1]);
2124 free(idx_1);
2127 ndr->depth--;
2129 ndr->depth--;
2130 ndr->depth--;
2133 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaObjectIdentifier3(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObjectIdentifier3 *r)
2135 if (ndr_flags & NDR_SCALARS) {
2136 NDR_CHECK(ndr_push_align(ndr, 4));
2137 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_drsuapi_DsReplicaObjectIdentifier3(r, ndr->iconv_convenience, ndr->flags)));
2138 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_dom_sid28(&r->sid, ndr->flags)));
2139 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
2140 NDR_CHECK(ndr_push_dom_sid28(ndr, NDR_SCALARS, &r->sid));
2141 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, strlen_m(r->dn)));
2142 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dn, strlen_m(r->dn) + 1, sizeof(uint16_t), CH_UTF16));
2143 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2145 if (ndr_flags & NDR_BUFFERS) {
2146 NDR_CHECK(ndr_push_dom_sid28(ndr, NDR_BUFFERS, &r->sid));
2148 return NDR_ERR_SUCCESS;
2151 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjectIdentifier3(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObjectIdentifier3 *r)
2153 uint32_t size_dn_0 = 0;
2154 if (ndr_flags & NDR_SCALARS) {
2155 NDR_CHECK(ndr_pull_align(ndr, 4));
2156 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size));
2157 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size_sid));
2158 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
2159 NDR_CHECK(ndr_pull_dom_sid28(ndr, NDR_SCALARS, &r->sid));
2160 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size_dn));
2161 size_dn_0 = r->__ndr_size_dn + 1;
2162 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dn, size_dn_0, sizeof(uint16_t), CH_UTF16));
2163 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2165 if (ndr_flags & NDR_BUFFERS) {
2166 NDR_CHECK(ndr_pull_dom_sid28(ndr, NDR_BUFFERS, &r->sid));
2168 return NDR_ERR_SUCCESS;
2171 _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjectIdentifier3(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaObjectIdentifier3 *r)
2173 ndr_print_struct(ndr, name, "drsuapi_DsReplicaObjectIdentifier3");
2174 ndr->depth++;
2175 ndr_print_uint32(ndr, "__ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_drsuapi_DsReplicaObjectIdentifier3(r, ndr->iconv_convenience, ndr->flags):r->__ndr_size);
2176 ndr_print_uint32(ndr, "__ndr_size_sid", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_dom_sid28(&r->sid, ndr->flags):r->__ndr_size_sid);
2177 ndr_print_GUID(ndr, "guid", &r->guid);
2178 ndr_print_dom_sid28(ndr, "sid", &r->sid);
2179 ndr_print_uint32(ndr, "__ndr_size_dn", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m(r->dn):r->__ndr_size_dn);
2180 ndr_print_string(ndr, "dn", r->dn);
2181 ndr->depth--;
2184 _PUBLIC_ size_t ndr_size_drsuapi_DsReplicaObjectIdentifier3(const struct drsuapi_DsReplicaObjectIdentifier3 *r, struct smb_iconv_convenience *ic, int flags)
2186 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_drsuapi_DsReplicaObjectIdentifier3, ic);
2189 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaObjectIdentifier3Binary(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObjectIdentifier3Binary *r)
2191 if (ndr_flags & NDR_SCALARS) {
2192 NDR_CHECK(ndr_push_align(ndr, 4));
2193 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary_without_Binary(r, ndr->iconv_convenience, ndr->flags)));
2194 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_dom_sid28(&r->sid, ndr->flags)));
2195 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
2196 NDR_CHECK(ndr_push_dom_sid28(ndr, NDR_SCALARS, &r->sid));
2197 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, strlen_m(r->dn)));
2198 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dn, strlen_m(r->dn) + 1, sizeof(uint16_t), CH_UTF16));
2199 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->binary.length + 4));
2201 uint32_t _flags_save_DATA_BLOB = ndr->flags;
2202 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
2203 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
2204 ndr->flags = _flags_save_DATA_BLOB;
2206 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2208 if (ndr_flags & NDR_BUFFERS) {
2209 NDR_CHECK(ndr_push_dom_sid28(ndr, NDR_BUFFERS, &r->sid));
2211 return NDR_ERR_SUCCESS;
2214 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjectIdentifier3Binary(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObjectIdentifier3Binary *r)
2216 uint32_t size_dn_0 = 0;
2217 if (ndr_flags & NDR_SCALARS) {
2218 NDR_CHECK(ndr_pull_align(ndr, 4));
2219 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size));
2220 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size_sid));
2221 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
2222 NDR_CHECK(ndr_pull_dom_sid28(ndr, NDR_SCALARS, &r->sid));
2223 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size_dn));
2224 size_dn_0 = r->__ndr_size_dn + 1;
2225 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dn, size_dn_0, sizeof(uint16_t), CH_UTF16));
2226 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size_binary));
2228 uint32_t _flags_save_DATA_BLOB = ndr->flags;
2229 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
2230 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->binary));
2231 ndr->flags = _flags_save_DATA_BLOB;
2233 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2235 if (ndr_flags & NDR_BUFFERS) {
2236 NDR_CHECK(ndr_pull_dom_sid28(ndr, NDR_BUFFERS, &r->sid));
2238 return NDR_ERR_SUCCESS;
2241 _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjectIdentifier3Binary(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaObjectIdentifier3Binary *r)
2243 ndr_print_struct(ndr, name, "drsuapi_DsReplicaObjectIdentifier3Binary");
2244 ndr->depth++;
2245 ndr_print_uint32(ndr, "__ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary_without_Binary(r, ndr->iconv_convenience, ndr->flags):r->__ndr_size);
2246 ndr_print_uint32(ndr, "__ndr_size_sid", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_dom_sid28(&r->sid, ndr->flags):r->__ndr_size_sid);
2247 ndr_print_GUID(ndr, "guid", &r->guid);
2248 ndr_print_dom_sid28(ndr, "sid", &r->sid);
2249 ndr_print_uint32(ndr, "__ndr_size_dn", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?strlen_m(r->dn):r->__ndr_size_dn);
2250 ndr_print_string(ndr, "dn", r->dn);
2251 ndr_print_uint32(ndr, "__ndr_size_binary", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->binary.length + 4:r->__ndr_size_binary);
2252 ndr_print_DATA_BLOB(ndr, "binary", r->binary);
2253 ndr->depth--;
2256 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaAttribute(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaAttribute *r)
2258 if (ndr_flags & NDR_SCALARS) {
2259 NDR_CHECK(ndr_push_align(ndr, 5));
2260 NDR_CHECK(ndr_push_drsuapi_DsAttributeId(ndr, NDR_SCALARS, r->attid));
2261 NDR_CHECK(ndr_push_drsuapi_DsAttributeValueCtr(ndr, NDR_SCALARS, &r->value_ctr));
2262 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2264 if (ndr_flags & NDR_BUFFERS) {
2265 NDR_CHECK(ndr_push_drsuapi_DsAttributeValueCtr(ndr, NDR_BUFFERS, &r->value_ctr));
2267 return NDR_ERR_SUCCESS;
2270 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaAttribute(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaAttribute *r)
2272 if (ndr_flags & NDR_SCALARS) {
2273 NDR_CHECK(ndr_pull_align(ndr, 5));
2274 NDR_CHECK(ndr_pull_drsuapi_DsAttributeId(ndr, NDR_SCALARS, &r->attid));
2275 NDR_CHECK(ndr_pull_drsuapi_DsAttributeValueCtr(ndr, NDR_SCALARS, &r->value_ctr));
2276 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2278 if (ndr_flags & NDR_BUFFERS) {
2279 NDR_CHECK(ndr_pull_drsuapi_DsAttributeValueCtr(ndr, NDR_BUFFERS, &r->value_ctr));
2281 return NDR_ERR_SUCCESS;
2284 _PUBLIC_ void ndr_print_drsuapi_DsReplicaAttribute(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaAttribute *r)
2286 ndr_print_struct(ndr, name, "drsuapi_DsReplicaAttribute");
2287 ndr->depth++;
2288 ndr_print_drsuapi_DsAttributeId(ndr, "attid", r->attid);
2289 ndr_print_drsuapi_DsAttributeValueCtr(ndr, "value_ctr", &r->value_ctr);
2290 ndr->depth--;
2293 static enum ndr_err_code ndr_push_drsuapi_DsReplicaAttributeCtr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaAttributeCtr *r)
2295 uint32_t cntr_attributes_1;
2296 if (ndr_flags & NDR_SCALARS) {
2297 NDR_CHECK(ndr_push_align(ndr, 5));
2298 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_attributes));
2299 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attributes));
2300 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2302 if (ndr_flags & NDR_BUFFERS) {
2303 if (r->attributes) {
2304 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_attributes));
2305 for (cntr_attributes_1 = 0; cntr_attributes_1 < r->num_attributes; cntr_attributes_1++) {
2306 NDR_CHECK(ndr_push_drsuapi_DsReplicaAttribute(ndr, NDR_SCALARS, &r->attributes[cntr_attributes_1]));
2308 for (cntr_attributes_1 = 0; cntr_attributes_1 < r->num_attributes; cntr_attributes_1++) {
2309 NDR_CHECK(ndr_push_drsuapi_DsReplicaAttribute(ndr, NDR_BUFFERS, &r->attributes[cntr_attributes_1]));
2313 return NDR_ERR_SUCCESS;
2316 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAttributeCtr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaAttributeCtr *r)
2318 uint32_t _ptr_attributes;
2319 uint32_t size_attributes_1 = 0;
2320 uint32_t cntr_attributes_1;
2321 TALLOC_CTX *_mem_save_attributes_0;
2322 TALLOC_CTX *_mem_save_attributes_1;
2323 if (ndr_flags & NDR_SCALARS) {
2324 NDR_CHECK(ndr_pull_align(ndr, 5));
2325 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_attributes));
2326 if (r->num_attributes > 1048576) {
2327 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
2329 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attributes));
2330 if (_ptr_attributes) {
2331 NDR_PULL_ALLOC(ndr, r->attributes);
2332 } else {
2333 r->attributes = NULL;
2335 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2337 if (ndr_flags & NDR_BUFFERS) {
2338 if (r->attributes) {
2339 _mem_save_attributes_0 = NDR_PULL_GET_MEM_CTX(ndr);
2340 NDR_PULL_SET_MEM_CTX(ndr, r->attributes, 0);
2341 NDR_CHECK(ndr_pull_array_size(ndr, &r->attributes));
2342 size_attributes_1 = ndr_get_array_size(ndr, &r->attributes);
2343 NDR_PULL_ALLOC_N(ndr, r->attributes, size_attributes_1);
2344 _mem_save_attributes_1 = NDR_PULL_GET_MEM_CTX(ndr);
2345 NDR_PULL_SET_MEM_CTX(ndr, r->attributes, 0);
2346 for (cntr_attributes_1 = 0; cntr_attributes_1 < size_attributes_1; cntr_attributes_1++) {
2347 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttribute(ndr, NDR_SCALARS, &r->attributes[cntr_attributes_1]));
2349 for (cntr_attributes_1 = 0; cntr_attributes_1 < size_attributes_1; cntr_attributes_1++) {
2350 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttribute(ndr, NDR_BUFFERS, &r->attributes[cntr_attributes_1]));
2352 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attributes_1, 0);
2353 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attributes_0, 0);
2355 if (r->attributes) {
2356 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->attributes, r->num_attributes));
2359 return NDR_ERR_SUCCESS;
2362 _PUBLIC_ void ndr_print_drsuapi_DsReplicaAttributeCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaAttributeCtr *r)
2364 uint32_t cntr_attributes_1;
2365 ndr_print_struct(ndr, name, "drsuapi_DsReplicaAttributeCtr");
2366 ndr->depth++;
2367 ndr_print_uint32(ndr, "num_attributes", r->num_attributes);
2368 ndr_print_ptr(ndr, "attributes", r->attributes);
2369 ndr->depth++;
2370 if (r->attributes) {
2371 ndr->print(ndr, "%s: ARRAY(%d)", "attributes", (int)r->num_attributes);
2372 ndr->depth++;
2373 for (cntr_attributes_1=0;cntr_attributes_1<r->num_attributes;cntr_attributes_1++) {
2374 char *idx_1=NULL;
2375 if (asprintf(&idx_1, "[%d]", cntr_attributes_1) != -1) {
2376 ndr_print_drsuapi_DsReplicaAttribute(ndr, "attributes", &r->attributes[cntr_attributes_1]);
2377 free(idx_1);
2380 ndr->depth--;
2382 ndr->depth--;
2383 ndr->depth--;
2386 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaObjectFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
2388 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
2389 return NDR_ERR_SUCCESS;
2392 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjectFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
2394 uint32_t v;
2395 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
2396 *r = v;
2397 return NDR_ERR_SUCCESS;
2400 _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjectFlags(struct ndr_print *ndr, const char *name, uint32_t r)
2402 ndr_print_uint32(ndr, name, r);
2403 ndr->depth++;
2404 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_OBJECT_FROM_MASTER", DRSUAPI_DS_REPLICA_OBJECT_FROM_MASTER, r);
2405 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_OBJECT_DYNAMIC", DRSUAPI_DS_REPLICA_OBJECT_DYNAMIC, r);
2406 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_OBJECT_REMOTE_MODIFY", DRSUAPI_DS_REPLICA_OBJECT_REMOTE_MODIFY, r);
2407 ndr->depth--;
2410 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaObject(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObject *r)
2412 if (ndr_flags & NDR_SCALARS) {
2413 NDR_CHECK(ndr_push_align(ndr, 5));
2414 NDR_CHECK(ndr_push_unique_ptr(ndr, r->identifier));
2415 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectFlags(ndr, NDR_SCALARS, r->flags));
2416 NDR_CHECK(ndr_push_drsuapi_DsReplicaAttributeCtr(ndr, NDR_SCALARS, &r->attribute_ctr));
2417 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2419 if (ndr_flags & NDR_BUFFERS) {
2420 if (r->identifier) {
2421 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->identifier));
2423 NDR_CHECK(ndr_push_drsuapi_DsReplicaAttributeCtr(ndr, NDR_BUFFERS, &r->attribute_ctr));
2425 return NDR_ERR_SUCCESS;
2428 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaObject(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObject *r)
2430 uint32_t _ptr_identifier;
2431 TALLOC_CTX *_mem_save_identifier_0;
2432 if (ndr_flags & NDR_SCALARS) {
2433 NDR_CHECK(ndr_pull_align(ndr, 5));
2434 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_identifier));
2435 if (_ptr_identifier) {
2436 NDR_PULL_ALLOC(ndr, r->identifier);
2437 } else {
2438 r->identifier = NULL;
2440 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectFlags(ndr, NDR_SCALARS, &r->flags));
2441 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttributeCtr(ndr, NDR_SCALARS, &r->attribute_ctr));
2442 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2444 if (ndr_flags & NDR_BUFFERS) {
2445 if (r->identifier) {
2446 _mem_save_identifier_0 = NDR_PULL_GET_MEM_CTX(ndr);
2447 NDR_PULL_SET_MEM_CTX(ndr, r->identifier, 0);
2448 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->identifier));
2449 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_identifier_0, 0);
2451 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttributeCtr(ndr, NDR_BUFFERS, &r->attribute_ctr));
2453 return NDR_ERR_SUCCESS;
2456 _PUBLIC_ void ndr_print_drsuapi_DsReplicaObject(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaObject *r)
2458 ndr_print_struct(ndr, name, "drsuapi_DsReplicaObject");
2459 ndr->depth++;
2460 ndr_print_ptr(ndr, "identifier", r->identifier);
2461 ndr->depth++;
2462 if (r->identifier) {
2463 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "identifier", r->identifier);
2465 ndr->depth--;
2466 ndr_print_drsuapi_DsReplicaObjectFlags(ndr, "flags", r->flags);
2467 ndr_print_drsuapi_DsReplicaAttributeCtr(ndr, "attribute_ctr", &r->attribute_ctr);
2468 ndr->depth--;
2471 static enum ndr_err_code ndr_push_drsuapi_DsReplicaMetaData(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaMetaData *r)
2473 if (ndr_flags & NDR_SCALARS) {
2474 NDR_CHECK(ndr_push_align(ndr, 8));
2475 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
2476 NDR_CHECK(ndr_push_NTTIME_1sec(ndr, NDR_SCALARS, r->originating_change_time));
2477 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->originating_invocation_id));
2478 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->originating_usn));
2479 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
2481 if (ndr_flags & NDR_BUFFERS) {
2483 return NDR_ERR_SUCCESS;
2486 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaMetaData(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaMetaData *r)
2488 if (ndr_flags & NDR_SCALARS) {
2489 NDR_CHECK(ndr_pull_align(ndr, 8));
2490 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
2491 NDR_CHECK(ndr_pull_NTTIME_1sec(ndr, NDR_SCALARS, &r->originating_change_time));
2492 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->originating_invocation_id));
2493 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->originating_usn));
2494 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
2496 if (ndr_flags & NDR_BUFFERS) {
2498 return NDR_ERR_SUCCESS;
2501 _PUBLIC_ void ndr_print_drsuapi_DsReplicaMetaData(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaMetaData *r)
2503 ndr_print_struct(ndr, name, "drsuapi_DsReplicaMetaData");
2504 ndr->depth++;
2505 ndr_print_uint32(ndr, "version", r->version);
2506 ndr_print_NTTIME_1sec(ndr, "originating_change_time", r->originating_change_time);
2507 ndr_print_GUID(ndr, "originating_invocation_id", &r->originating_invocation_id);
2508 ndr_print_hyper(ndr, "originating_usn", r->originating_usn);
2509 ndr->depth--;
2512 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaMetaDataCtr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaMetaDataCtr *r)
2514 uint32_t cntr_meta_data_0;
2515 if (ndr_flags & NDR_SCALARS) {
2516 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
2517 NDR_CHECK(ndr_push_align(ndr, 8));
2518 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
2519 for (cntr_meta_data_0 = 0; cntr_meta_data_0 < r->count; cntr_meta_data_0++) {
2520 NDR_CHECK(ndr_push_drsuapi_DsReplicaMetaData(ndr, NDR_SCALARS, &r->meta_data[cntr_meta_data_0]));
2522 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
2524 if (ndr_flags & NDR_BUFFERS) {
2526 return NDR_ERR_SUCCESS;
2529 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaMetaDataCtr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaMetaDataCtr *r)
2531 uint32_t size_meta_data_0 = 0;
2532 uint32_t cntr_meta_data_0;
2533 TALLOC_CTX *_mem_save_meta_data_0;
2534 if (ndr_flags & NDR_SCALARS) {
2535 NDR_CHECK(ndr_pull_array_size(ndr, &r->meta_data));
2536 NDR_CHECK(ndr_pull_align(ndr, 8));
2537 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
2538 if (r->count > 1048576) {
2539 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
2541 size_meta_data_0 = ndr_get_array_size(ndr, &r->meta_data);
2542 NDR_PULL_ALLOC_N(ndr, r->meta_data, size_meta_data_0);
2543 _mem_save_meta_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
2544 NDR_PULL_SET_MEM_CTX(ndr, r->meta_data, 0);
2545 for (cntr_meta_data_0 = 0; cntr_meta_data_0 < size_meta_data_0; cntr_meta_data_0++) {
2546 NDR_CHECK(ndr_pull_drsuapi_DsReplicaMetaData(ndr, NDR_SCALARS, &r->meta_data[cntr_meta_data_0]));
2548 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_meta_data_0, 0);
2549 if (r->meta_data) {
2550 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->meta_data, r->count));
2552 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
2554 if (ndr_flags & NDR_BUFFERS) {
2556 return NDR_ERR_SUCCESS;
2559 _PUBLIC_ void ndr_print_drsuapi_DsReplicaMetaDataCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaMetaDataCtr *r)
2561 uint32_t cntr_meta_data_0;
2562 ndr_print_struct(ndr, name, "drsuapi_DsReplicaMetaDataCtr");
2563 ndr->depth++;
2564 ndr_print_uint32(ndr, "count", r->count);
2565 ndr->print(ndr, "%s: ARRAY(%d)", "meta_data", (int)r->count);
2566 ndr->depth++;
2567 for (cntr_meta_data_0=0;cntr_meta_data_0<r->count;cntr_meta_data_0++) {
2568 char *idx_0=NULL;
2569 if (asprintf(&idx_0, "[%d]", cntr_meta_data_0) != -1) {
2570 ndr_print_drsuapi_DsReplicaMetaData(ndr, "meta_data", &r->meta_data[cntr_meta_data_0]);
2571 free(idx_0);
2574 ndr->depth--;
2575 ndr->depth--;
2578 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaObjectListItemEx(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObjectListItemEx *r)
2580 if (ndr_flags & NDR_SCALARS) {
2581 NDR_CHECK(ndr_push_align(ndr, 5));
2582 NDR_CHECK(ndr_push_unique_ptr(ndr, r->next_object));
2583 NDR_CHECK(ndr_push_drsuapi_DsReplicaObject(ndr, NDR_SCALARS, &r->object));
2584 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_nc_prefix));
2585 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parent_object_guid));
2586 NDR_CHECK(ndr_push_unique_ptr(ndr, r->meta_data_ctr));
2587 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2589 if (ndr_flags & NDR_BUFFERS) {
2590 if (r->next_object) {
2591 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectListItemEx(ndr, NDR_SCALARS|NDR_BUFFERS, r->next_object));
2593 NDR_CHECK(ndr_push_drsuapi_DsReplicaObject(ndr, NDR_BUFFERS, &r->object));
2594 if (r->parent_object_guid) {
2595 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->parent_object_guid));
2597 if (r->meta_data_ctr) {
2598 NDR_CHECK(ndr_push_drsuapi_DsReplicaMetaDataCtr(ndr, NDR_SCALARS, r->meta_data_ctr));
2601 return NDR_ERR_SUCCESS;
2604 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjectListItemEx(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObjectListItemEx *r)
2606 uint32_t _ptr_next_object;
2607 TALLOC_CTX *_mem_save_next_object_0;
2608 uint32_t _ptr_parent_object_guid;
2609 TALLOC_CTX *_mem_save_parent_object_guid_0;
2610 uint32_t _ptr_meta_data_ctr;
2611 TALLOC_CTX *_mem_save_meta_data_ctr_0;
2612 if (ndr_flags & NDR_SCALARS) {
2613 NDR_CHECK(ndr_pull_align(ndr, 5));
2614 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_next_object));
2615 if (_ptr_next_object) {
2616 NDR_PULL_ALLOC(ndr, r->next_object);
2617 } else {
2618 r->next_object = NULL;
2620 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObject(ndr, NDR_SCALARS, &r->object));
2621 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_nc_prefix));
2622 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parent_object_guid));
2623 if (_ptr_parent_object_guid) {
2624 NDR_PULL_ALLOC(ndr, r->parent_object_guid);
2625 } else {
2626 r->parent_object_guid = NULL;
2628 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_meta_data_ctr));
2629 if (_ptr_meta_data_ctr) {
2630 NDR_PULL_ALLOC(ndr, r->meta_data_ctr);
2631 } else {
2632 r->meta_data_ctr = NULL;
2634 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2636 if (ndr_flags & NDR_BUFFERS) {
2637 if (r->next_object) {
2638 _mem_save_next_object_0 = NDR_PULL_GET_MEM_CTX(ndr);
2639 NDR_PULL_SET_MEM_CTX(ndr, r->next_object, 0);
2640 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectListItemEx(ndr, NDR_SCALARS|NDR_BUFFERS, r->next_object));
2641 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_next_object_0, 0);
2643 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObject(ndr, NDR_BUFFERS, &r->object));
2644 if (r->parent_object_guid) {
2645 _mem_save_parent_object_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
2646 NDR_PULL_SET_MEM_CTX(ndr, r->parent_object_guid, 0);
2647 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->parent_object_guid));
2648 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parent_object_guid_0, 0);
2650 if (r->meta_data_ctr) {
2651 _mem_save_meta_data_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
2652 NDR_PULL_SET_MEM_CTX(ndr, r->meta_data_ctr, 0);
2653 NDR_CHECK(ndr_pull_drsuapi_DsReplicaMetaDataCtr(ndr, NDR_SCALARS, r->meta_data_ctr));
2654 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_meta_data_ctr_0, 0);
2657 return NDR_ERR_SUCCESS;
2660 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesCtr1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNCChangesCtr1 *r)
2662 if (ndr_flags & NDR_SCALARS) {
2663 NDR_CHECK(ndr_push_align(ndr, 8));
2664 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
2665 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
2666 NDR_CHECK(ndr_push_unique_ptr(ndr, r->naming_context));
2667 NDR_CHECK(ndr_push_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->old_highwatermark));
2668 NDR_CHECK(ndr_push_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->new_highwatermark));
2669 NDR_CHECK(ndr_push_unique_ptr(ndr, r->uptodateness_vector));
2670 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_SCALARS, &r->mapping_ctr));
2671 NDR_CHECK(ndr_push_drsuapi_DsExtendedError(ndr, NDR_SCALARS, r->extended_ret));
2672 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->object_count));
2673 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_drsuapi_DsGetNCChangesCtr1(r, ndr->iconv_convenience, ndr->flags) + 55));
2674 NDR_CHECK(ndr_push_unique_ptr(ndr, r->first_object));
2675 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->more_data));
2676 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
2678 if (ndr_flags & NDR_BUFFERS) {
2679 if (r->naming_context) {
2680 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
2682 if (r->uptodateness_vector) {
2683 NDR_CHECK(ndr_push_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->uptodateness_vector));
2685 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_BUFFERS, &r->mapping_ctr));
2686 if (r->first_object) {
2687 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectListItemEx(ndr, NDR_SCALARS|NDR_BUFFERS, r->first_object));
2690 return NDR_ERR_SUCCESS;
2693 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCtr1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesCtr1 *r)
2695 uint32_t _ptr_naming_context;
2696 TALLOC_CTX *_mem_save_naming_context_0;
2697 uint32_t _ptr_uptodateness_vector;
2698 TALLOC_CTX *_mem_save_uptodateness_vector_0;
2699 uint32_t _ptr_first_object;
2700 TALLOC_CTX *_mem_save_first_object_0;
2701 if (ndr_flags & NDR_SCALARS) {
2702 NDR_CHECK(ndr_pull_align(ndr, 8));
2703 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
2704 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
2705 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_naming_context));
2706 if (_ptr_naming_context) {
2707 NDR_PULL_ALLOC(ndr, r->naming_context);
2708 } else {
2709 r->naming_context = NULL;
2711 NDR_CHECK(ndr_pull_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->old_highwatermark));
2712 NDR_CHECK(ndr_pull_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->new_highwatermark));
2713 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_uptodateness_vector));
2714 if (_ptr_uptodateness_vector) {
2715 NDR_PULL_ALLOC(ndr, r->uptodateness_vector);
2716 } else {
2717 r->uptodateness_vector = NULL;
2719 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_SCALARS, &r->mapping_ctr));
2720 NDR_CHECK(ndr_pull_drsuapi_DsExtendedError(ndr, NDR_SCALARS, &r->extended_ret));
2721 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->object_count));
2722 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size));
2723 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_first_object));
2724 if (_ptr_first_object) {
2725 NDR_PULL_ALLOC(ndr, r->first_object);
2726 } else {
2727 r->first_object = NULL;
2729 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->more_data));
2730 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
2732 if (ndr_flags & NDR_BUFFERS) {
2733 if (r->naming_context) {
2734 _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
2735 NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
2736 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
2737 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
2739 if (r->uptodateness_vector) {
2740 _mem_save_uptodateness_vector_0 = NDR_PULL_GET_MEM_CTX(ndr);
2741 NDR_PULL_SET_MEM_CTX(ndr, r->uptodateness_vector, 0);
2742 NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->uptodateness_vector));
2743 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_uptodateness_vector_0, 0);
2745 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_BUFFERS, &r->mapping_ctr));
2746 if (r->first_object) {
2747 _mem_save_first_object_0 = NDR_PULL_GET_MEM_CTX(ndr);
2748 NDR_PULL_SET_MEM_CTX(ndr, r->first_object, 0);
2749 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectListItemEx(ndr, NDR_SCALARS|NDR_BUFFERS, r->first_object));
2750 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_first_object_0, 0);
2753 return NDR_ERR_SUCCESS;
2756 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCtr1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesCtr1 *r)
2758 ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesCtr1");
2759 ndr->depth++;
2760 ndr_print_GUID(ndr, "source_dsa_guid", &r->source_dsa_guid);
2761 ndr_print_GUID(ndr, "source_dsa_invocation_id", &r->source_dsa_invocation_id);
2762 ndr_print_ptr(ndr, "naming_context", r->naming_context);
2763 ndr->depth++;
2764 if (r->naming_context) {
2765 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
2767 ndr->depth--;
2768 ndr_print_drsuapi_DsReplicaHighWaterMark(ndr, "old_highwatermark", &r->old_highwatermark);
2769 ndr_print_drsuapi_DsReplicaHighWaterMark(ndr, "new_highwatermark", &r->new_highwatermark);
2770 ndr_print_ptr(ndr, "uptodateness_vector", r->uptodateness_vector);
2771 ndr->depth++;
2772 if (r->uptodateness_vector) {
2773 ndr_print_drsuapi_DsReplicaCursorCtrEx(ndr, "uptodateness_vector", r->uptodateness_vector);
2775 ndr->depth--;
2776 ndr_print_drsuapi_DsReplicaOIDMapping_Ctr(ndr, "mapping_ctr", &r->mapping_ctr);
2777 ndr_print_drsuapi_DsExtendedError(ndr, "extended_ret", r->extended_ret);
2778 ndr_print_uint32(ndr, "object_count", r->object_count);
2779 ndr_print_uint32(ndr, "__ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_drsuapi_DsGetNCChangesCtr1(r, ndr->iconv_convenience, ndr->flags) + 55:r->__ndr_size);
2780 ndr_print_ptr(ndr, "first_object", r->first_object);
2781 ndr->depth++;
2782 if (r->first_object) {
2783 ndr_print_drsuapi_DsReplicaObjectListItemEx(ndr, "first_object", r->first_object);
2785 ndr->depth--;
2786 ndr_print_uint32(ndr, "more_data", r->more_data);
2787 ndr->depth--;
2790 _PUBLIC_ size_t ndr_size_drsuapi_DsGetNCChangesCtr1(const struct drsuapi_DsGetNCChangesCtr1 *r, struct smb_iconv_convenience *ic, int flags)
2792 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_drsuapi_DsGetNCChangesCtr1, ic);
2795 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsLinkedAttributeFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
2797 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
2798 return NDR_ERR_SUCCESS;
2801 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsLinkedAttributeFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
2803 uint32_t v;
2804 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
2805 *r = v;
2806 return NDR_ERR_SUCCESS;
2809 _PUBLIC_ void ndr_print_drsuapi_DsLinkedAttributeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
2811 ndr_print_uint32(ndr, name, r);
2812 ndr->depth++;
2813 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_LINKED_ATTRIBUTE_FLAG_ACTIVE", DRSUAPI_DS_LINKED_ATTRIBUTE_FLAG_ACTIVE, r);
2814 ndr->depth--;
2817 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaLinkedAttribute(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaLinkedAttribute *r)
2819 if (ndr_flags & NDR_SCALARS) {
2820 NDR_CHECK(ndr_push_align(ndr, 8));
2821 NDR_CHECK(ndr_push_unique_ptr(ndr, r->identifier));
2822 NDR_CHECK(ndr_push_drsuapi_DsAttributeId(ndr, NDR_SCALARS, r->attid));
2823 NDR_CHECK(ndr_push_drsuapi_DsAttributeValue(ndr, NDR_SCALARS, &r->value));
2824 NDR_CHECK(ndr_push_drsuapi_DsLinkedAttributeFlags(ndr, NDR_SCALARS, r->flags));
2825 NDR_CHECK(ndr_push_NTTIME_1sec(ndr, NDR_SCALARS, r->originating_add_time));
2826 NDR_CHECK(ndr_push_drsuapi_DsReplicaMetaData(ndr, NDR_SCALARS, &r->meta_data));
2827 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
2829 if (ndr_flags & NDR_BUFFERS) {
2830 if (r->identifier) {
2831 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->identifier));
2833 NDR_CHECK(ndr_push_drsuapi_DsAttributeValue(ndr, NDR_BUFFERS, &r->value));
2835 return NDR_ERR_SUCCESS;
2838 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaLinkedAttribute(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaLinkedAttribute *r)
2840 uint32_t _ptr_identifier;
2841 TALLOC_CTX *_mem_save_identifier_0;
2842 if (ndr_flags & NDR_SCALARS) {
2843 NDR_CHECK(ndr_pull_align(ndr, 8));
2844 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_identifier));
2845 if (_ptr_identifier) {
2846 NDR_PULL_ALLOC(ndr, r->identifier);
2847 } else {
2848 r->identifier = NULL;
2850 NDR_CHECK(ndr_pull_drsuapi_DsAttributeId(ndr, NDR_SCALARS, &r->attid));
2851 NDR_CHECK(ndr_pull_drsuapi_DsAttributeValue(ndr, NDR_SCALARS, &r->value));
2852 NDR_CHECK(ndr_pull_drsuapi_DsLinkedAttributeFlags(ndr, NDR_SCALARS, &r->flags));
2853 NDR_CHECK(ndr_pull_NTTIME_1sec(ndr, NDR_SCALARS, &r->originating_add_time));
2854 NDR_CHECK(ndr_pull_drsuapi_DsReplicaMetaData(ndr, NDR_SCALARS, &r->meta_data));
2855 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
2857 if (ndr_flags & NDR_BUFFERS) {
2858 if (r->identifier) {
2859 _mem_save_identifier_0 = NDR_PULL_GET_MEM_CTX(ndr);
2860 NDR_PULL_SET_MEM_CTX(ndr, r->identifier, 0);
2861 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->identifier));
2862 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_identifier_0, 0);
2864 NDR_CHECK(ndr_pull_drsuapi_DsAttributeValue(ndr, NDR_BUFFERS, &r->value));
2866 return NDR_ERR_SUCCESS;
2869 _PUBLIC_ void ndr_print_drsuapi_DsReplicaLinkedAttribute(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaLinkedAttribute *r)
2871 ndr_print_struct(ndr, name, "drsuapi_DsReplicaLinkedAttribute");
2872 ndr->depth++;
2873 ndr_print_ptr(ndr, "identifier", r->identifier);
2874 ndr->depth++;
2875 if (r->identifier) {
2876 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "identifier", r->identifier);
2878 ndr->depth--;
2879 ndr_print_drsuapi_DsAttributeId(ndr, "attid", r->attid);
2880 ndr_print_drsuapi_DsAttributeValue(ndr, "value", &r->value);
2881 ndr_print_drsuapi_DsLinkedAttributeFlags(ndr, "flags", r->flags);
2882 ndr_print_NTTIME_1sec(ndr, "originating_add_time", r->originating_add_time);
2883 ndr_print_drsuapi_DsReplicaMetaData(ndr, "meta_data", &r->meta_data);
2884 ndr->depth--;
2887 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesCtr6(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNCChangesCtr6 *r)
2889 uint32_t cntr_linked_attributes_1;
2890 if (ndr_flags & NDR_SCALARS) {
2891 NDR_CHECK(ndr_push_align(ndr, 8));
2892 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
2893 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
2894 NDR_CHECK(ndr_push_unique_ptr(ndr, r->naming_context));
2895 NDR_CHECK(ndr_push_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->old_highwatermark));
2896 NDR_CHECK(ndr_push_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->new_highwatermark));
2897 NDR_CHECK(ndr_push_unique_ptr(ndr, r->uptodateness_vector));
2898 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_SCALARS, &r->mapping_ctr));
2899 NDR_CHECK(ndr_push_drsuapi_DsExtendedError(ndr, NDR_SCALARS, r->extended_ret));
2900 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->object_count));
2901 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_drsuapi_DsGetNCChangesCtr6(r, ndr->iconv_convenience, ndr->flags) + 55));
2902 NDR_CHECK(ndr_push_unique_ptr(ndr, r->first_object));
2903 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->more_data));
2904 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nc_object_count));
2905 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nc_linked_attributes_count));
2906 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->linked_attributes_count));
2907 NDR_CHECK(ndr_push_unique_ptr(ndr, r->linked_attributes));
2908 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->drs_error));
2909 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
2911 if (ndr_flags & NDR_BUFFERS) {
2912 if (r->naming_context) {
2913 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
2915 if (r->uptodateness_vector) {
2916 NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor2CtrEx(ndr, NDR_SCALARS, r->uptodateness_vector));
2918 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_BUFFERS, &r->mapping_ctr));
2919 if (r->first_object) {
2920 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectListItemEx(ndr, NDR_SCALARS|NDR_BUFFERS, r->first_object));
2922 if (r->linked_attributes) {
2923 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->linked_attributes_count));
2924 for (cntr_linked_attributes_1 = 0; cntr_linked_attributes_1 < r->linked_attributes_count; cntr_linked_attributes_1++) {
2925 NDR_CHECK(ndr_push_drsuapi_DsReplicaLinkedAttribute(ndr, NDR_SCALARS, &r->linked_attributes[cntr_linked_attributes_1]));
2927 for (cntr_linked_attributes_1 = 0; cntr_linked_attributes_1 < r->linked_attributes_count; cntr_linked_attributes_1++) {
2928 NDR_CHECK(ndr_push_drsuapi_DsReplicaLinkedAttribute(ndr, NDR_BUFFERS, &r->linked_attributes[cntr_linked_attributes_1]));
2932 return NDR_ERR_SUCCESS;
2935 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCtr6(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesCtr6 *r)
2937 uint32_t _ptr_naming_context;
2938 TALLOC_CTX *_mem_save_naming_context_0;
2939 uint32_t _ptr_uptodateness_vector;
2940 TALLOC_CTX *_mem_save_uptodateness_vector_0;
2941 uint32_t _ptr_first_object;
2942 TALLOC_CTX *_mem_save_first_object_0;
2943 uint32_t _ptr_linked_attributes;
2944 uint32_t size_linked_attributes_1 = 0;
2945 uint32_t cntr_linked_attributes_1;
2946 TALLOC_CTX *_mem_save_linked_attributes_0;
2947 TALLOC_CTX *_mem_save_linked_attributes_1;
2948 if (ndr_flags & NDR_SCALARS) {
2949 NDR_CHECK(ndr_pull_align(ndr, 8));
2950 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_guid));
2951 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
2952 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_naming_context));
2953 if (_ptr_naming_context) {
2954 NDR_PULL_ALLOC(ndr, r->naming_context);
2955 } else {
2956 r->naming_context = NULL;
2958 NDR_CHECK(ndr_pull_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->old_highwatermark));
2959 NDR_CHECK(ndr_pull_drsuapi_DsReplicaHighWaterMark(ndr, NDR_SCALARS, &r->new_highwatermark));
2960 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_uptodateness_vector));
2961 if (_ptr_uptodateness_vector) {
2962 NDR_PULL_ALLOC(ndr, r->uptodateness_vector);
2963 } else {
2964 r->uptodateness_vector = NULL;
2966 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_SCALARS, &r->mapping_ctr));
2967 NDR_CHECK(ndr_pull_drsuapi_DsExtendedError(ndr, NDR_SCALARS, &r->extended_ret));
2968 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->object_count));
2969 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size));
2970 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_first_object));
2971 if (_ptr_first_object) {
2972 NDR_PULL_ALLOC(ndr, r->first_object);
2973 } else {
2974 r->first_object = NULL;
2976 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->more_data));
2977 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nc_object_count));
2978 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nc_linked_attributes_count));
2979 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->linked_attributes_count));
2980 if (r->linked_attributes_count > 1048576) {
2981 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
2983 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_linked_attributes));
2984 if (_ptr_linked_attributes) {
2985 NDR_PULL_ALLOC(ndr, r->linked_attributes);
2986 } else {
2987 r->linked_attributes = NULL;
2989 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->drs_error));
2990 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
2992 if (ndr_flags & NDR_BUFFERS) {
2993 if (r->naming_context) {
2994 _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
2995 NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
2996 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
2997 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
2999 if (r->uptodateness_vector) {
3000 _mem_save_uptodateness_vector_0 = NDR_PULL_GET_MEM_CTX(ndr);
3001 NDR_PULL_SET_MEM_CTX(ndr, r->uptodateness_vector, 0);
3002 NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor2CtrEx(ndr, NDR_SCALARS, r->uptodateness_vector));
3003 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_uptodateness_vector_0, 0);
3005 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(ndr, NDR_BUFFERS, &r->mapping_ctr));
3006 if (r->first_object) {
3007 _mem_save_first_object_0 = NDR_PULL_GET_MEM_CTX(ndr);
3008 NDR_PULL_SET_MEM_CTX(ndr, r->first_object, 0);
3009 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectListItemEx(ndr, NDR_SCALARS|NDR_BUFFERS, r->first_object));
3010 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_first_object_0, 0);
3012 if (r->linked_attributes) {
3013 _mem_save_linked_attributes_0 = NDR_PULL_GET_MEM_CTX(ndr);
3014 NDR_PULL_SET_MEM_CTX(ndr, r->linked_attributes, 0);
3015 NDR_CHECK(ndr_pull_array_size(ndr, &r->linked_attributes));
3016 size_linked_attributes_1 = ndr_get_array_size(ndr, &r->linked_attributes);
3017 NDR_PULL_ALLOC_N(ndr, r->linked_attributes, size_linked_attributes_1);
3018 _mem_save_linked_attributes_1 = NDR_PULL_GET_MEM_CTX(ndr);
3019 NDR_PULL_SET_MEM_CTX(ndr, r->linked_attributes, 0);
3020 for (cntr_linked_attributes_1 = 0; cntr_linked_attributes_1 < size_linked_attributes_1; cntr_linked_attributes_1++) {
3021 NDR_CHECK(ndr_pull_drsuapi_DsReplicaLinkedAttribute(ndr, NDR_SCALARS, &r->linked_attributes[cntr_linked_attributes_1]));
3023 for (cntr_linked_attributes_1 = 0; cntr_linked_attributes_1 < size_linked_attributes_1; cntr_linked_attributes_1++) {
3024 NDR_CHECK(ndr_pull_drsuapi_DsReplicaLinkedAttribute(ndr, NDR_BUFFERS, &r->linked_attributes[cntr_linked_attributes_1]));
3026 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_linked_attributes_1, 0);
3027 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_linked_attributes_0, 0);
3029 if (r->linked_attributes) {
3030 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->linked_attributes, r->linked_attributes_count));
3033 return NDR_ERR_SUCCESS;
3036 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCtr6(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesCtr6 *r)
3038 uint32_t cntr_linked_attributes_1;
3039 ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesCtr6");
3040 ndr->depth++;
3041 ndr_print_GUID(ndr, "source_dsa_guid", &r->source_dsa_guid);
3042 ndr_print_GUID(ndr, "source_dsa_invocation_id", &r->source_dsa_invocation_id);
3043 ndr_print_ptr(ndr, "naming_context", r->naming_context);
3044 ndr->depth++;
3045 if (r->naming_context) {
3046 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
3048 ndr->depth--;
3049 ndr_print_drsuapi_DsReplicaHighWaterMark(ndr, "old_highwatermark", &r->old_highwatermark);
3050 ndr_print_drsuapi_DsReplicaHighWaterMark(ndr, "new_highwatermark", &r->new_highwatermark);
3051 ndr_print_ptr(ndr, "uptodateness_vector", r->uptodateness_vector);
3052 ndr->depth++;
3053 if (r->uptodateness_vector) {
3054 ndr_print_drsuapi_DsReplicaCursor2CtrEx(ndr, "uptodateness_vector", r->uptodateness_vector);
3056 ndr->depth--;
3057 ndr_print_drsuapi_DsReplicaOIDMapping_Ctr(ndr, "mapping_ctr", &r->mapping_ctr);
3058 ndr_print_drsuapi_DsExtendedError(ndr, "extended_ret", r->extended_ret);
3059 ndr_print_uint32(ndr, "object_count", r->object_count);
3060 ndr_print_uint32(ndr, "__ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_drsuapi_DsGetNCChangesCtr6(r, ndr->iconv_convenience, ndr->flags) + 55:r->__ndr_size);
3061 ndr_print_ptr(ndr, "first_object", r->first_object);
3062 ndr->depth++;
3063 if (r->first_object) {
3064 ndr_print_drsuapi_DsReplicaObjectListItemEx(ndr, "first_object", r->first_object);
3066 ndr->depth--;
3067 ndr_print_uint32(ndr, "more_data", r->more_data);
3068 ndr_print_uint32(ndr, "nc_object_count", r->nc_object_count);
3069 ndr_print_uint32(ndr, "nc_linked_attributes_count", r->nc_linked_attributes_count);
3070 ndr_print_uint32(ndr, "linked_attributes_count", r->linked_attributes_count);
3071 ndr_print_ptr(ndr, "linked_attributes", r->linked_attributes);
3072 ndr->depth++;
3073 if (r->linked_attributes) {
3074 ndr->print(ndr, "%s: ARRAY(%d)", "linked_attributes", (int)r->linked_attributes_count);
3075 ndr->depth++;
3076 for (cntr_linked_attributes_1=0;cntr_linked_attributes_1<r->linked_attributes_count;cntr_linked_attributes_1++) {
3077 char *idx_1=NULL;
3078 if (asprintf(&idx_1, "[%d]", cntr_linked_attributes_1) != -1) {
3079 ndr_print_drsuapi_DsReplicaLinkedAttribute(ndr, "linked_attributes", &r->linked_attributes[cntr_linked_attributes_1]);
3080 free(idx_1);
3083 ndr->depth--;
3085 ndr->depth--;
3086 ndr_print_WERROR(ndr, "drs_error", r->drs_error);
3087 ndr->depth--;
3090 _PUBLIC_ size_t ndr_size_drsuapi_DsGetNCChangesCtr6(const struct drsuapi_DsGetNCChangesCtr6 *r, struct smb_iconv_convenience *ic, int flags)
3092 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_drsuapi_DsGetNCChangesCtr6, ic);
3095 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesCtr1TS(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNCChangesCtr1TS *r)
3097 if (ndr_flags & NDR_SCALARS) {
3098 NDR_CHECK(ndr_push_align(ndr, 1));
3100 struct ndr_push *_ndr_ctr1;
3101 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_ctr1, 0xFFFFFC01, -1));
3102 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr1(_ndr_ctr1, NDR_SCALARS|NDR_BUFFERS, &r->ctr1));
3103 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_ctr1, 0xFFFFFC01, -1));
3105 NDR_CHECK(ndr_push_trailer_align(ndr, 1));
3107 if (ndr_flags & NDR_BUFFERS) {
3109 return NDR_ERR_SUCCESS;
3112 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCtr1TS(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesCtr1TS *r)
3114 if (ndr_flags & NDR_SCALARS) {
3115 NDR_CHECK(ndr_pull_align(ndr, 1));
3117 struct ndr_pull *_ndr_ctr1;
3118 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_ctr1, 0xFFFFFC01, -1));
3119 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr1(_ndr_ctr1, NDR_SCALARS|NDR_BUFFERS, &r->ctr1));
3120 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_ctr1, 0xFFFFFC01, -1));
3122 NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
3124 if (ndr_flags & NDR_BUFFERS) {
3126 return NDR_ERR_SUCCESS;
3129 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCtr1TS(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesCtr1TS *r)
3131 ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesCtr1TS");
3132 ndr->depth++;
3133 ndr_print_drsuapi_DsGetNCChangesCtr1(ndr, "ctr1", &r->ctr1);
3134 ndr->depth--;
3137 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesCtr6TS(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNCChangesCtr6TS *r)
3139 if (ndr_flags & NDR_SCALARS) {
3140 NDR_CHECK(ndr_push_align(ndr, 1));
3142 struct ndr_push *_ndr_ctr6;
3143 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_ctr6, 0xFFFFFC01, -1));
3144 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr6(_ndr_ctr6, NDR_SCALARS|NDR_BUFFERS, &r->ctr6));
3145 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_ctr6, 0xFFFFFC01, -1));
3147 NDR_CHECK(ndr_push_trailer_align(ndr, 1));
3149 if (ndr_flags & NDR_BUFFERS) {
3151 return NDR_ERR_SUCCESS;
3154 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCtr6TS(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesCtr6TS *r)
3156 if (ndr_flags & NDR_SCALARS) {
3157 NDR_CHECK(ndr_pull_align(ndr, 1));
3159 struct ndr_pull *_ndr_ctr6;
3160 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_ctr6, 0xFFFFFC01, -1));
3161 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr6(_ndr_ctr6, NDR_SCALARS|NDR_BUFFERS, &r->ctr6));
3162 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_ctr6, 0xFFFFFC01, -1));
3164 NDR_CHECK(ndr_pull_trailer_align(ndr, 1));
3166 if (ndr_flags & NDR_BUFFERS) {
3168 return NDR_ERR_SUCCESS;
3171 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCtr6TS(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesCtr6TS *r)
3173 ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesCtr6TS");
3174 ndr->depth++;
3175 ndr_print_drsuapi_DsGetNCChangesCtr6(ndr, "ctr6", &r->ctr6);
3176 ndr->depth--;
3179 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesMSZIPCtr1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesMSZIPCtr1 *r)
3181 uint32_t _ptr_ts;
3182 TALLOC_CTX *_mem_save_ts_0;
3183 if (ndr_flags & NDR_SCALARS) {
3184 NDR_CHECK(ndr_pull_align(ndr, 5));
3185 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->decompressed_length));
3186 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->compressed_length));
3187 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ts));
3188 if (_ptr_ts) {
3189 NDR_PULL_ALLOC(ndr, r->ts);
3190 } else {
3191 r->ts = NULL;
3193 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3195 if (ndr_flags & NDR_BUFFERS) {
3196 if (r->ts) {
3197 _mem_save_ts_0 = NDR_PULL_GET_MEM_CTX(ndr);
3198 NDR_PULL_SET_MEM_CTX(ndr, r->ts, 0);
3200 struct ndr_pull *_ndr_ts;
3201 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_ts, 4, r->compressed_length));
3203 struct ndr_pull *_ndr_ts_compressed;
3204 NDR_CHECK(ndr_pull_compression_start(_ndr_ts, &_ndr_ts_compressed, NDR_COMPRESSION_MSZIP, r->decompressed_length));
3205 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr1TS(_ndr_ts_compressed, NDR_SCALARS|NDR_BUFFERS, r->ts));
3206 NDR_CHECK(ndr_pull_compression_end(_ndr_ts, _ndr_ts_compressed, NDR_COMPRESSION_MSZIP, r->decompressed_length));
3208 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_ts, 4, r->compressed_length));
3210 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ts_0, 0);
3213 return NDR_ERR_SUCCESS;
3216 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesMSZIPCtr1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesMSZIPCtr1 *r)
3218 ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesMSZIPCtr1");
3219 ndr->depth++;
3220 ndr_print_uint32(ndr, "decompressed_length", r->decompressed_length);
3221 ndr_print_uint32(ndr, "compressed_length", r->compressed_length);
3222 ndr_print_ptr(ndr, "ts", r->ts);
3223 ndr->depth++;
3224 if (r->ts) {
3225 ndr_print_drsuapi_DsGetNCChangesCtr1TS(ndr, "ts", r->ts);
3227 ndr->depth--;
3228 ndr->depth--;
3231 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesMSZIPCtr6(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesMSZIPCtr6 *r)
3233 uint32_t _ptr_ts;
3234 TALLOC_CTX *_mem_save_ts_0;
3235 if (ndr_flags & NDR_SCALARS) {
3236 NDR_CHECK(ndr_pull_align(ndr, 5));
3237 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->decompressed_length));
3238 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->compressed_length));
3239 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ts));
3240 if (_ptr_ts) {
3241 NDR_PULL_ALLOC(ndr, r->ts);
3242 } else {
3243 r->ts = NULL;
3245 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3247 if (ndr_flags & NDR_BUFFERS) {
3248 if (r->ts) {
3249 _mem_save_ts_0 = NDR_PULL_GET_MEM_CTX(ndr);
3250 NDR_PULL_SET_MEM_CTX(ndr, r->ts, 0);
3252 struct ndr_pull *_ndr_ts;
3253 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_ts, 4, r->compressed_length));
3255 struct ndr_pull *_ndr_ts_compressed;
3256 NDR_CHECK(ndr_pull_compression_start(_ndr_ts, &_ndr_ts_compressed, NDR_COMPRESSION_MSZIP, r->decompressed_length));
3257 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr6TS(_ndr_ts_compressed, NDR_SCALARS|NDR_BUFFERS, r->ts));
3258 NDR_CHECK(ndr_pull_compression_end(_ndr_ts, _ndr_ts_compressed, NDR_COMPRESSION_MSZIP, r->decompressed_length));
3260 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_ts, 4, r->compressed_length));
3262 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ts_0, 0);
3265 return NDR_ERR_SUCCESS;
3268 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesMSZIPCtr6(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesMSZIPCtr6 *r)
3270 ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesMSZIPCtr6");
3271 ndr->depth++;
3272 ndr_print_uint32(ndr, "decompressed_length", r->decompressed_length);
3273 ndr_print_uint32(ndr, "compressed_length", r->compressed_length);
3274 ndr_print_ptr(ndr, "ts", r->ts);
3275 ndr->depth++;
3276 if (r->ts) {
3277 ndr_print_drsuapi_DsGetNCChangesCtr6TS(ndr, "ts", r->ts);
3279 ndr->depth--;
3280 ndr->depth--;
3283 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesXPRESSCtr1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesXPRESSCtr1 *r)
3285 uint32_t _ptr_ts;
3286 TALLOC_CTX *_mem_save_ts_0;
3287 if (ndr_flags & NDR_SCALARS) {
3288 NDR_CHECK(ndr_pull_align(ndr, 5));
3289 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->decompressed_length));
3290 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->compressed_length));
3291 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ts));
3292 if (_ptr_ts) {
3293 NDR_PULL_ALLOC(ndr, r->ts);
3294 } else {
3295 r->ts = NULL;
3297 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3299 if (ndr_flags & NDR_BUFFERS) {
3300 if (r->ts) {
3301 _mem_save_ts_0 = NDR_PULL_GET_MEM_CTX(ndr);
3302 NDR_PULL_SET_MEM_CTX(ndr, r->ts, 0);
3304 struct ndr_pull *_ndr_ts;
3305 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_ts, 4, r->compressed_length));
3307 struct ndr_pull *_ndr_ts_compressed;
3308 NDR_CHECK(ndr_pull_compression_start(_ndr_ts, &_ndr_ts_compressed, NDR_COMPRESSION_XPRESS, r->decompressed_length));
3309 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr1TS(_ndr_ts_compressed, NDR_SCALARS|NDR_BUFFERS, r->ts));
3310 NDR_CHECK(ndr_pull_compression_end(_ndr_ts, _ndr_ts_compressed, NDR_COMPRESSION_XPRESS, r->decompressed_length));
3312 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_ts, 4, r->compressed_length));
3314 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ts_0, 0);
3317 return NDR_ERR_SUCCESS;
3320 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesXPRESSCtr1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesXPRESSCtr1 *r)
3322 ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesXPRESSCtr1");
3323 ndr->depth++;
3324 ndr_print_uint32(ndr, "decompressed_length", r->decompressed_length);
3325 ndr_print_uint32(ndr, "compressed_length", r->compressed_length);
3326 ndr_print_ptr(ndr, "ts", r->ts);
3327 ndr->depth++;
3328 if (r->ts) {
3329 ndr_print_drsuapi_DsGetNCChangesCtr1TS(ndr, "ts", r->ts);
3331 ndr->depth--;
3332 ndr->depth--;
3335 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesXPRESSCtr6(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesXPRESSCtr6 *r)
3337 uint32_t _ptr_ts;
3338 TALLOC_CTX *_mem_save_ts_0;
3339 if (ndr_flags & NDR_SCALARS) {
3340 NDR_CHECK(ndr_pull_align(ndr, 5));
3341 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->decompressed_length));
3342 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->compressed_length));
3343 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ts));
3344 if (_ptr_ts) {
3345 NDR_PULL_ALLOC(ndr, r->ts);
3346 } else {
3347 r->ts = NULL;
3349 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3351 if (ndr_flags & NDR_BUFFERS) {
3352 if (r->ts) {
3353 _mem_save_ts_0 = NDR_PULL_GET_MEM_CTX(ndr);
3354 NDR_PULL_SET_MEM_CTX(ndr, r->ts, 0);
3356 struct ndr_pull *_ndr_ts;
3357 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_ts, 4, r->compressed_length));
3359 struct ndr_pull *_ndr_ts_compressed;
3360 NDR_CHECK(ndr_pull_compression_start(_ndr_ts, &_ndr_ts_compressed, NDR_COMPRESSION_XPRESS, r->decompressed_length));
3361 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr6TS(_ndr_ts_compressed, NDR_SCALARS|NDR_BUFFERS, r->ts));
3362 NDR_CHECK(ndr_pull_compression_end(_ndr_ts, _ndr_ts_compressed, NDR_COMPRESSION_XPRESS, r->decompressed_length));
3364 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_ts, 4, r->compressed_length));
3366 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ts_0, 0);
3369 return NDR_ERR_SUCCESS;
3372 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesXPRESSCtr6(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesXPRESSCtr6 *r)
3374 ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesXPRESSCtr6");
3375 ndr->depth++;
3376 ndr_print_uint32(ndr, "decompressed_length", r->decompressed_length);
3377 ndr_print_uint32(ndr, "compressed_length", r->compressed_length);
3378 ndr_print_ptr(ndr, "ts", r->ts);
3379 ndr->depth++;
3380 if (r->ts) {
3381 ndr_print_drsuapi_DsGetNCChangesCtr6TS(ndr, "ts", r->ts);
3383 ndr->depth--;
3384 ndr->depth--;
3387 static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesCompressionType(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsGetNCChangesCompressionType r)
3389 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
3390 return NDR_ERR_SUCCESS;
3393 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCompressionType(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsGetNCChangesCompressionType *r)
3395 uint16_t v;
3396 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
3397 *r = v;
3398 return NDR_ERR_SUCCESS;
3401 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCompressionType(struct ndr_print *ndr, const char *name, enum drsuapi_DsGetNCChangesCompressionType r)
3403 const char *val = NULL;
3405 switch (r) {
3406 case DRSUAPI_COMPRESSION_TYPE_MSZIP: val = "DRSUAPI_COMPRESSION_TYPE_MSZIP"; break;
3407 case DRSUAPI_COMPRESSION_TYPE_XPRESS: val = "DRSUAPI_COMPRESSION_TYPE_XPRESS"; break;
3409 ndr_print_enum(ndr, name, "ENUM", val, r);
3412 static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesCompressedCtr(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetNCChangesCompressedCtr *r)
3415 uint32_t _flags_save_UNION = ndr->flags;
3416 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
3417 if (ndr_flags & NDR_SCALARS) {
3418 int level = ndr_push_get_switch_value(ndr, r);
3419 NDR_CHECK(ndr_push_union_align(ndr, 5));
3420 switch (level) {
3421 case 1|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16): {
3422 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesMSZIPCtr1(ndr, NDR_SCALARS, &r->mszip1));
3423 break; }
3425 case 6|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16): {
3426 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesMSZIPCtr6(ndr, NDR_SCALARS, &r->mszip6));
3427 break; }
3429 case 1|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16): {
3430 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesXPRESSCtr1(ndr, NDR_SCALARS, &r->xpress1));
3431 break; }
3433 case 6|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16): {
3434 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesXPRESSCtr6(ndr, NDR_SCALARS, &r->xpress6));
3435 break; }
3437 default:
3438 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3441 if (ndr_flags & NDR_BUFFERS) {
3442 int level = ndr_push_get_switch_value(ndr, r);
3443 switch (level) {
3444 case 1|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16):
3445 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesMSZIPCtr1(ndr, NDR_BUFFERS, &r->mszip1));
3446 break;
3448 case 6|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16):
3449 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesMSZIPCtr6(ndr, NDR_BUFFERS, &r->mszip6));
3450 break;
3452 case 1|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16):
3453 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesXPRESSCtr1(ndr, NDR_BUFFERS, &r->xpress1));
3454 break;
3456 case 6|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16):
3457 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesXPRESSCtr6(ndr, NDR_BUFFERS, &r->xpress6));
3458 break;
3460 default:
3461 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3464 ndr->flags = _flags_save_UNION;
3466 return NDR_ERR_SUCCESS;
3469 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCompressedCtr(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetNCChangesCompressedCtr *r)
3471 int level;
3473 uint32_t _flags_save_UNION = ndr->flags;
3474 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
3475 level = ndr_pull_get_switch_value(ndr, r);
3476 if (ndr_flags & NDR_SCALARS) {
3477 NDR_CHECK(ndr_pull_union_align(ndr, 5));
3478 switch (level) {
3479 case 1|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16): {
3480 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesMSZIPCtr1(ndr, NDR_SCALARS, &r->mszip1));
3481 break; }
3483 case 6|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16): {
3484 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesMSZIPCtr6(ndr, NDR_SCALARS, &r->mszip6));
3485 break; }
3487 case 1|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16): {
3488 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesXPRESSCtr1(ndr, NDR_SCALARS, &r->xpress1));
3489 break; }
3491 case 6|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16): {
3492 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesXPRESSCtr6(ndr, NDR_SCALARS, &r->xpress6));
3493 break; }
3495 default:
3496 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3499 if (ndr_flags & NDR_BUFFERS) {
3500 switch (level) {
3501 case 1|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16):
3502 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesMSZIPCtr1(ndr, NDR_BUFFERS, &r->mszip1));
3503 break;
3505 case 6|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16):
3506 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesMSZIPCtr6(ndr, NDR_BUFFERS, &r->mszip6));
3507 break;
3509 case 1|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16):
3510 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesXPRESSCtr1(ndr, NDR_BUFFERS, &r->xpress1));
3511 break;
3513 case 6|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16):
3514 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesXPRESSCtr6(ndr, NDR_BUFFERS, &r->xpress6));
3515 break;
3517 default:
3518 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3521 ndr->flags = _flags_save_UNION;
3523 return NDR_ERR_SUCCESS;
3526 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCompressedCtr(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetNCChangesCompressedCtr *r)
3528 int level;
3530 uint32_t _flags_save_UNION = ndr->flags;
3531 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
3532 level = ndr_print_get_switch_value(ndr, r);
3533 ndr_print_union(ndr, name, level, "drsuapi_DsGetNCChangesCompressedCtr");
3534 switch (level) {
3535 case 1|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16):
3536 ndr_print_drsuapi_DsGetNCChangesMSZIPCtr1(ndr, "mszip1", &r->mszip1);
3537 break;
3539 case 6|(DRSUAPI_COMPRESSION_TYPE_MSZIP<<16):
3540 ndr_print_drsuapi_DsGetNCChangesMSZIPCtr6(ndr, "mszip6", &r->mszip6);
3541 break;
3543 case 1|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16):
3544 ndr_print_drsuapi_DsGetNCChangesXPRESSCtr1(ndr, "xpress1", &r->xpress1);
3545 break;
3547 case 6|(DRSUAPI_COMPRESSION_TYPE_XPRESS<<16):
3548 ndr_print_drsuapi_DsGetNCChangesXPRESSCtr6(ndr, "xpress6", &r->xpress6);
3549 break;
3551 default:
3552 ndr_print_bad_level(ndr, name, level);
3554 ndr->flags = _flags_save_UNION;
3558 static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesCtr2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNCChangesCtr2 *r)
3560 if (ndr_flags & NDR_SCALARS) {
3561 NDR_CHECK(ndr_push_align(ndr, 5));
3562 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesMSZIPCtr1(ndr, NDR_SCALARS, &r->mszip1));
3563 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3565 if (ndr_flags & NDR_BUFFERS) {
3566 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesMSZIPCtr1(ndr, NDR_BUFFERS, &r->mszip1));
3568 return NDR_ERR_SUCCESS;
3571 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCtr2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesCtr2 *r)
3573 if (ndr_flags & NDR_SCALARS) {
3574 NDR_CHECK(ndr_pull_align(ndr, 5));
3575 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesMSZIPCtr1(ndr, NDR_SCALARS, &r->mszip1));
3576 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3578 if (ndr_flags & NDR_BUFFERS) {
3579 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesMSZIPCtr1(ndr, NDR_BUFFERS, &r->mszip1));
3581 return NDR_ERR_SUCCESS;
3584 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCtr2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesCtr2 *r)
3586 ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesCtr2");
3587 ndr->depth++;
3588 ndr_print_drsuapi_DsGetNCChangesMSZIPCtr1(ndr, "mszip1", &r->mszip1);
3589 ndr->depth--;
3592 static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesCtr7(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNCChangesCtr7 *r)
3594 if (ndr_flags & NDR_SCALARS) {
3595 NDR_CHECK(ndr_push_align(ndr, 5));
3596 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->level));
3597 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCompressionType(ndr, NDR_SCALARS, r->type));
3598 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->ctr, r->level | (r->type << 16)));
3599 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCompressedCtr(ndr, NDR_SCALARS, &r->ctr));
3600 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3602 if (ndr_flags & NDR_BUFFERS) {
3603 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCompressedCtr(ndr, NDR_BUFFERS, &r->ctr));
3605 return NDR_ERR_SUCCESS;
3608 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCtr7(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNCChangesCtr7 *r)
3610 if (ndr_flags & NDR_SCALARS) {
3611 NDR_CHECK(ndr_pull_align(ndr, 5));
3612 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->level));
3613 if (r->level < 0 || r->level > 6) {
3614 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
3616 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCompressionType(ndr, NDR_SCALARS, &r->type));
3617 if (r->type < 2 || r->type > 3) {
3618 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
3620 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->ctr, r->level | (r->type << 16)));
3621 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCompressedCtr(ndr, NDR_SCALARS, &r->ctr));
3622 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3624 if (ndr_flags & NDR_BUFFERS) {
3625 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCompressedCtr(ndr, NDR_BUFFERS, &r->ctr));
3627 return NDR_ERR_SUCCESS;
3630 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCtr7(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNCChangesCtr7 *r)
3632 ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesCtr7");
3633 ndr->depth++;
3634 ndr_print_int32(ndr, "level", r->level);
3635 ndr_print_drsuapi_DsGetNCChangesCompressionType(ndr, "type", r->type);
3636 ndr_print_set_switch_value(ndr, &r->ctr, r->level | (r->type << 16));
3637 ndr_print_drsuapi_DsGetNCChangesCompressedCtr(ndr, "ctr", &r->ctr);
3638 ndr->depth--;
3641 static enum ndr_err_code ndr_push_drsuapi_DsGetNCChangesCtr(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetNCChangesCtr *r)
3643 if (ndr_flags & NDR_SCALARS) {
3644 int level = ndr_push_get_switch_value(ndr, r);
3645 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
3646 NDR_CHECK(ndr_push_union_align(ndr, 8));
3647 switch (level) {
3648 case 1: {
3649 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr1(ndr, NDR_SCALARS, &r->ctr1));
3650 break; }
3652 case 2: {
3653 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr2(ndr, NDR_SCALARS, &r->ctr2));
3654 break; }
3656 case 6: {
3657 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr6(ndr, NDR_SCALARS, &r->ctr6));
3658 break; }
3660 case 7: {
3661 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr7(ndr, NDR_SCALARS, &r->ctr7));
3662 break; }
3664 default:
3665 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3668 if (ndr_flags & NDR_BUFFERS) {
3669 int level = ndr_push_get_switch_value(ndr, r);
3670 switch (level) {
3671 case 1:
3672 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr1(ndr, NDR_BUFFERS, &r->ctr1));
3673 break;
3675 case 2:
3676 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr2(ndr, NDR_BUFFERS, &r->ctr2));
3677 break;
3679 case 6:
3680 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr6(ndr, NDR_BUFFERS, &r->ctr6));
3681 break;
3683 case 7:
3684 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr7(ndr, NDR_BUFFERS, &r->ctr7));
3685 break;
3687 default:
3688 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3691 return NDR_ERR_SUCCESS;
3694 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChangesCtr(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetNCChangesCtr *r)
3696 int level;
3697 int32_t _level;
3698 level = ndr_pull_get_switch_value(ndr, r);
3699 if (ndr_flags & NDR_SCALARS) {
3700 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
3701 if (_level != level) {
3702 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
3704 NDR_CHECK(ndr_pull_union_align(ndr, 8));
3705 switch (level) {
3706 case 1: {
3707 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr1(ndr, NDR_SCALARS, &r->ctr1));
3708 break; }
3710 case 2: {
3711 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr2(ndr, NDR_SCALARS, &r->ctr2));
3712 break; }
3714 case 6: {
3715 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr6(ndr, NDR_SCALARS, &r->ctr6));
3716 break; }
3718 case 7: {
3719 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr7(ndr, NDR_SCALARS, &r->ctr7));
3720 break; }
3722 default:
3723 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3726 if (ndr_flags & NDR_BUFFERS) {
3727 switch (level) {
3728 case 1:
3729 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr1(ndr, NDR_BUFFERS, &r->ctr1));
3730 break;
3732 case 2:
3733 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr2(ndr, NDR_BUFFERS, &r->ctr2));
3734 break;
3736 case 6:
3737 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr6(ndr, NDR_BUFFERS, &r->ctr6));
3738 break;
3740 case 7:
3741 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr7(ndr, NDR_BUFFERS, &r->ctr7));
3742 break;
3744 default:
3745 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3748 return NDR_ERR_SUCCESS;
3751 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChangesCtr(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetNCChangesCtr *r)
3753 int level;
3754 level = ndr_print_get_switch_value(ndr, r);
3755 ndr_print_union(ndr, name, level, "drsuapi_DsGetNCChangesCtr");
3756 switch (level) {
3757 case 1:
3758 ndr_print_drsuapi_DsGetNCChangesCtr1(ndr, "ctr1", &r->ctr1);
3759 break;
3761 case 2:
3762 ndr_print_drsuapi_DsGetNCChangesCtr2(ndr, "ctr2", &r->ctr2);
3763 break;
3765 case 6:
3766 ndr_print_drsuapi_DsGetNCChangesCtr6(ndr, "ctr6", &r->ctr6);
3767 break;
3769 case 7:
3770 ndr_print_drsuapi_DsGetNCChangesCtr7(ndr, "ctr7", &r->ctr7);
3771 break;
3773 default:
3774 ndr_print_bad_level(ndr, name, level);
3778 static enum ndr_err_code ndr_push_drsuapi_DsReplicaUpdateRefsOptions(struct ndr_push *ndr, int ndr_flags, uint32_t r)
3780 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
3781 return NDR_ERR_SUCCESS;
3784 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaUpdateRefsOptions(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
3786 uint32_t v;
3787 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
3788 *r = v;
3789 return NDR_ERR_SUCCESS;
3792 _PUBLIC_ void ndr_print_drsuapi_DsReplicaUpdateRefsOptions(struct ndr_print *ndr, const char *name, uint32_t r)
3794 ndr_print_uint32(ndr, name, r);
3795 ndr->depth++;
3796 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_UPDATE_ASYNCHRONOUS_OPERATION", DRSUAPI_DS_REPLICA_UPDATE_ASYNCHRONOUS_OPERATION, r);
3797 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_UPDATE_GETCHG_CHECK", DRSUAPI_DS_REPLICA_UPDATE_GETCHG_CHECK, r);
3798 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_UPDATE_ADD_REFERENCE", DRSUAPI_DS_REPLICA_UPDATE_ADD_REFERENCE, r);
3799 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_UPDATE_DELETE_REFERENCE", DRSUAPI_DS_REPLICA_UPDATE_DELETE_REFERENCE, r);
3800 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_UPDATE_WRITEABLE", DRSUAPI_DS_REPLICA_UPDATE_WRITEABLE, r);
3801 ndr->depth--;
3804 static enum ndr_err_code ndr_push_drsuapi_DsReplicaUpdateRefsRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaUpdateRefsRequest1 *r)
3806 if (ndr_flags & NDR_SCALARS) {
3807 NDR_CHECK(ndr_push_align(ndr, 5));
3808 if (r->naming_context == NULL) {
3809 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3811 NDR_CHECK(ndr_push_ref_ptr(ndr));
3812 if (r->dest_dsa_dns_name == NULL) {
3813 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3815 NDR_CHECK(ndr_push_ref_ptr(ndr));
3816 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->dest_dsa_guid));
3817 NDR_CHECK(ndr_push_drsuapi_DsReplicaUpdateRefsOptions(ndr, NDR_SCALARS, r->options));
3818 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3820 if (ndr_flags & NDR_BUFFERS) {
3821 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
3822 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dest_dsa_dns_name, CH_DOS)));
3823 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
3824 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dest_dsa_dns_name, CH_DOS)));
3825 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dest_dsa_dns_name, ndr_charset_length(r->dest_dsa_dns_name, CH_DOS), sizeof(uint8_t), CH_DOS));
3827 return NDR_ERR_SUCCESS;
3830 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaUpdateRefsRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaUpdateRefsRequest1 *r)
3832 uint32_t _ptr_naming_context;
3833 TALLOC_CTX *_mem_save_naming_context_0;
3834 uint32_t _ptr_dest_dsa_dns_name;
3835 uint32_t size_dest_dsa_dns_name_1 = 0;
3836 uint32_t length_dest_dsa_dns_name_1 = 0;
3837 if (ndr_flags & NDR_SCALARS) {
3838 NDR_CHECK(ndr_pull_align(ndr, 5));
3839 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_naming_context));
3840 if (_ptr_naming_context) {
3841 NDR_PULL_ALLOC(ndr, r->naming_context);
3842 } else {
3843 r->naming_context = NULL;
3845 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_dest_dsa_dns_name));
3846 if (_ptr_dest_dsa_dns_name) {
3847 NDR_PULL_ALLOC(ndr, r->dest_dsa_dns_name);
3848 } else {
3849 r->dest_dsa_dns_name = NULL;
3851 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->dest_dsa_guid));
3852 NDR_CHECK(ndr_pull_drsuapi_DsReplicaUpdateRefsOptions(ndr, NDR_SCALARS, &r->options));
3853 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3855 if (ndr_flags & NDR_BUFFERS) {
3856 _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
3857 NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
3858 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
3859 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
3860 NDR_CHECK(ndr_pull_array_size(ndr, &r->dest_dsa_dns_name));
3861 NDR_CHECK(ndr_pull_array_length(ndr, &r->dest_dsa_dns_name));
3862 size_dest_dsa_dns_name_1 = ndr_get_array_size(ndr, &r->dest_dsa_dns_name);
3863 length_dest_dsa_dns_name_1 = ndr_get_array_length(ndr, &r->dest_dsa_dns_name);
3864 if (length_dest_dsa_dns_name_1 > size_dest_dsa_dns_name_1) {
3865 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_dest_dsa_dns_name_1, length_dest_dsa_dns_name_1);
3867 NDR_CHECK(ndr_check_string_terminator(ndr, length_dest_dsa_dns_name_1, sizeof(uint8_t)));
3868 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dest_dsa_dns_name, length_dest_dsa_dns_name_1, sizeof(uint8_t), CH_DOS));
3870 return NDR_ERR_SUCCESS;
3873 _PUBLIC_ void ndr_print_drsuapi_DsReplicaUpdateRefsRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaUpdateRefsRequest1 *r)
3875 ndr_print_struct(ndr, name, "drsuapi_DsReplicaUpdateRefsRequest1");
3876 ndr->depth++;
3877 ndr_print_ptr(ndr, "naming_context", r->naming_context);
3878 ndr->depth++;
3879 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
3880 ndr->depth--;
3881 ndr_print_ptr(ndr, "dest_dsa_dns_name", r->dest_dsa_dns_name);
3882 ndr->depth++;
3883 ndr_print_string(ndr, "dest_dsa_dns_name", r->dest_dsa_dns_name);
3884 ndr->depth--;
3885 ndr_print_GUID(ndr, "dest_dsa_guid", &r->dest_dsa_guid);
3886 ndr_print_drsuapi_DsReplicaUpdateRefsOptions(ndr, "options", r->options);
3887 ndr->depth--;
3890 static enum ndr_err_code ndr_push_drsuapi_DsReplicaUpdateRefsRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsReplicaUpdateRefsRequest *r)
3892 if (ndr_flags & NDR_SCALARS) {
3893 int level = ndr_push_get_switch_value(ndr, r);
3894 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
3895 NDR_CHECK(ndr_push_union_align(ndr, 5));
3896 switch (level) {
3897 case 1: {
3898 NDR_CHECK(ndr_push_drsuapi_DsReplicaUpdateRefsRequest1(ndr, NDR_SCALARS, &r->req1));
3899 break; }
3901 default:
3902 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3905 if (ndr_flags & NDR_BUFFERS) {
3906 int level = ndr_push_get_switch_value(ndr, r);
3907 switch (level) {
3908 case 1:
3909 NDR_CHECK(ndr_push_drsuapi_DsReplicaUpdateRefsRequest1(ndr, NDR_BUFFERS, &r->req1));
3910 break;
3912 default:
3913 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3916 return NDR_ERR_SUCCESS;
3919 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaUpdateRefsRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsReplicaUpdateRefsRequest *r)
3921 int level;
3922 int32_t _level;
3923 level = ndr_pull_get_switch_value(ndr, r);
3924 if (ndr_flags & NDR_SCALARS) {
3925 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
3926 if (_level != level) {
3927 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
3929 NDR_CHECK(ndr_pull_union_align(ndr, 5));
3930 switch (level) {
3931 case 1: {
3932 NDR_CHECK(ndr_pull_drsuapi_DsReplicaUpdateRefsRequest1(ndr, NDR_SCALARS, &r->req1));
3933 break; }
3935 default:
3936 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3939 if (ndr_flags & NDR_BUFFERS) {
3940 switch (level) {
3941 case 1:
3942 NDR_CHECK(ndr_pull_drsuapi_DsReplicaUpdateRefsRequest1(ndr, NDR_BUFFERS, &r->req1));
3943 break;
3945 default:
3946 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
3949 return NDR_ERR_SUCCESS;
3952 _PUBLIC_ void ndr_print_drsuapi_DsReplicaUpdateRefsRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsReplicaUpdateRefsRequest *r)
3954 int level;
3955 level = ndr_print_get_switch_value(ndr, r);
3956 ndr_print_union(ndr, name, level, "drsuapi_DsReplicaUpdateRefsRequest");
3957 switch (level) {
3958 case 1:
3959 ndr_print_drsuapi_DsReplicaUpdateRefsRequest1(ndr, "req1", &r->req1);
3960 break;
3962 default:
3963 ndr_print_bad_level(ndr, name, level);
3967 static enum ndr_err_code ndr_push_drsuapi_DsReplicaAddOptions(struct ndr_push *ndr, int ndr_flags, uint32_t r)
3969 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
3970 return NDR_ERR_SUCCESS;
3973 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAddOptions(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
3975 uint32_t v;
3976 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
3977 *r = v;
3978 return NDR_ERR_SUCCESS;
3981 _PUBLIC_ void ndr_print_drsuapi_DsReplicaAddOptions(struct ndr_print *ndr, const char *name, uint32_t r)
3983 ndr_print_uint32(ndr, name, r);
3984 ndr->depth++;
3985 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION", DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION, r);
3986 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_ADD_WRITEABLE", DRSUAPI_DS_REPLICA_ADD_WRITEABLE, r);
3987 ndr->depth--;
3990 static enum ndr_err_code ndr_push_drsuapi_DsReplicaAddRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaAddRequest1 *r)
3992 if (ndr_flags & NDR_SCALARS) {
3993 NDR_CHECK(ndr_push_align(ndr, 5));
3994 if (r->naming_context == NULL) {
3995 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
3997 NDR_CHECK(ndr_push_ref_ptr(ndr));
3998 NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dsa_address));
3999 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->schedule, 84));
4000 NDR_CHECK(ndr_push_drsuapi_DsReplicaAddOptions(ndr, NDR_SCALARS, r->options));
4001 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
4003 if (ndr_flags & NDR_BUFFERS) {
4004 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
4005 if (r->source_dsa_address) {
4006 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_address, CH_UTF16)));
4007 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
4008 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_address, CH_UTF16)));
4009 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->source_dsa_address, ndr_charset_length(r->source_dsa_address, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4012 return NDR_ERR_SUCCESS;
4015 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAddRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaAddRequest1 *r)
4017 uint32_t _ptr_naming_context;
4018 TALLOC_CTX *_mem_save_naming_context_0;
4019 uint32_t _ptr_source_dsa_address;
4020 uint32_t size_source_dsa_address_1 = 0;
4021 uint32_t length_source_dsa_address_1 = 0;
4022 TALLOC_CTX *_mem_save_source_dsa_address_0;
4023 uint32_t size_schedule_0 = 0;
4024 if (ndr_flags & NDR_SCALARS) {
4025 NDR_CHECK(ndr_pull_align(ndr, 5));
4026 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_naming_context));
4027 if (_ptr_naming_context) {
4028 NDR_PULL_ALLOC(ndr, r->naming_context);
4029 } else {
4030 r->naming_context = NULL;
4032 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_source_dsa_address));
4033 if (_ptr_source_dsa_address) {
4034 NDR_PULL_ALLOC(ndr, r->source_dsa_address);
4035 } else {
4036 r->source_dsa_address = NULL;
4038 size_schedule_0 = 84;
4039 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->schedule, size_schedule_0));
4040 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAddOptions(ndr, NDR_SCALARS, &r->options));
4041 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
4043 if (ndr_flags & NDR_BUFFERS) {
4044 _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
4045 NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
4046 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
4047 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
4048 if (r->source_dsa_address) {
4049 _mem_save_source_dsa_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
4050 NDR_PULL_SET_MEM_CTX(ndr, r->source_dsa_address, 0);
4051 NDR_CHECK(ndr_pull_array_size(ndr, &r->source_dsa_address));
4052 NDR_CHECK(ndr_pull_array_length(ndr, &r->source_dsa_address));
4053 size_source_dsa_address_1 = ndr_get_array_size(ndr, &r->source_dsa_address);
4054 length_source_dsa_address_1 = ndr_get_array_length(ndr, &r->source_dsa_address);
4055 if (length_source_dsa_address_1 > size_source_dsa_address_1) {
4056 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_source_dsa_address_1, length_source_dsa_address_1);
4058 NDR_CHECK(ndr_check_string_terminator(ndr, length_source_dsa_address_1, sizeof(uint16_t)));
4059 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->source_dsa_address, length_source_dsa_address_1, sizeof(uint16_t), CH_UTF16));
4060 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_source_dsa_address_0, 0);
4063 return NDR_ERR_SUCCESS;
4066 _PUBLIC_ void ndr_print_drsuapi_DsReplicaAddRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaAddRequest1 *r)
4068 ndr_print_struct(ndr, name, "drsuapi_DsReplicaAddRequest1");
4069 ndr->depth++;
4070 ndr_print_ptr(ndr, "naming_context", r->naming_context);
4071 ndr->depth++;
4072 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
4073 ndr->depth--;
4074 ndr_print_ptr(ndr, "source_dsa_address", r->source_dsa_address);
4075 ndr->depth++;
4076 if (r->source_dsa_address) {
4077 ndr_print_string(ndr, "source_dsa_address", r->source_dsa_address);
4079 ndr->depth--;
4080 ndr_print_array_uint8(ndr, "schedule", r->schedule, 84);
4081 ndr_print_drsuapi_DsReplicaAddOptions(ndr, "options", r->options);
4082 ndr->depth--;
4085 static enum ndr_err_code ndr_push_drsuapi_DsReplicaAddRequest2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaAddRequest2 *r)
4087 if (ndr_flags & NDR_SCALARS) {
4088 NDR_CHECK(ndr_push_align(ndr, 5));
4089 if (r->naming_context == NULL) {
4090 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4092 NDR_CHECK(ndr_push_ref_ptr(ndr));
4093 NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dsa_dn));
4094 NDR_CHECK(ndr_push_unique_ptr(ndr, r->transport_dn));
4095 NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dsa_address));
4096 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->schedule, 84));
4097 NDR_CHECK(ndr_push_drsuapi_DsReplicaAddOptions(ndr, NDR_SCALARS, r->options));
4098 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
4100 if (ndr_flags & NDR_BUFFERS) {
4101 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
4102 if (r->source_dsa_dn) {
4103 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->source_dsa_dn));
4105 if (r->transport_dn) {
4106 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->transport_dn));
4108 if (r->source_dsa_address) {
4109 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_address, CH_UTF16)));
4110 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
4111 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_address, CH_UTF16)));
4112 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->source_dsa_address, ndr_charset_length(r->source_dsa_address, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4115 return NDR_ERR_SUCCESS;
4118 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAddRequest2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaAddRequest2 *r)
4120 uint32_t _ptr_naming_context;
4121 TALLOC_CTX *_mem_save_naming_context_0;
4122 uint32_t _ptr_source_dsa_dn;
4123 TALLOC_CTX *_mem_save_source_dsa_dn_0;
4124 uint32_t _ptr_transport_dn;
4125 TALLOC_CTX *_mem_save_transport_dn_0;
4126 uint32_t _ptr_source_dsa_address;
4127 uint32_t size_source_dsa_address_1 = 0;
4128 uint32_t length_source_dsa_address_1 = 0;
4129 TALLOC_CTX *_mem_save_source_dsa_address_0;
4130 uint32_t size_schedule_0 = 0;
4131 if (ndr_flags & NDR_SCALARS) {
4132 NDR_CHECK(ndr_pull_align(ndr, 5));
4133 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_naming_context));
4134 if (_ptr_naming_context) {
4135 NDR_PULL_ALLOC(ndr, r->naming_context);
4136 } else {
4137 r->naming_context = NULL;
4139 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_source_dsa_dn));
4140 if (_ptr_source_dsa_dn) {
4141 NDR_PULL_ALLOC(ndr, r->source_dsa_dn);
4142 } else {
4143 r->source_dsa_dn = NULL;
4145 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_transport_dn));
4146 if (_ptr_transport_dn) {
4147 NDR_PULL_ALLOC(ndr, r->transport_dn);
4148 } else {
4149 r->transport_dn = NULL;
4151 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_source_dsa_address));
4152 if (_ptr_source_dsa_address) {
4153 NDR_PULL_ALLOC(ndr, r->source_dsa_address);
4154 } else {
4155 r->source_dsa_address = NULL;
4157 size_schedule_0 = 84;
4158 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->schedule, size_schedule_0));
4159 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAddOptions(ndr, NDR_SCALARS, &r->options));
4160 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
4162 if (ndr_flags & NDR_BUFFERS) {
4163 _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
4164 NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
4165 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
4166 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
4167 if (r->source_dsa_dn) {
4168 _mem_save_source_dsa_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
4169 NDR_PULL_SET_MEM_CTX(ndr, r->source_dsa_dn, 0);
4170 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->source_dsa_dn));
4171 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_source_dsa_dn_0, 0);
4173 if (r->transport_dn) {
4174 _mem_save_transport_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
4175 NDR_PULL_SET_MEM_CTX(ndr, r->transport_dn, 0);
4176 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->transport_dn));
4177 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_transport_dn_0, 0);
4179 if (r->source_dsa_address) {
4180 _mem_save_source_dsa_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
4181 NDR_PULL_SET_MEM_CTX(ndr, r->source_dsa_address, 0);
4182 NDR_CHECK(ndr_pull_array_size(ndr, &r->source_dsa_address));
4183 NDR_CHECK(ndr_pull_array_length(ndr, &r->source_dsa_address));
4184 size_source_dsa_address_1 = ndr_get_array_size(ndr, &r->source_dsa_address);
4185 length_source_dsa_address_1 = ndr_get_array_length(ndr, &r->source_dsa_address);
4186 if (length_source_dsa_address_1 > size_source_dsa_address_1) {
4187 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_source_dsa_address_1, length_source_dsa_address_1);
4189 NDR_CHECK(ndr_check_string_terminator(ndr, length_source_dsa_address_1, sizeof(uint16_t)));
4190 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->source_dsa_address, length_source_dsa_address_1, sizeof(uint16_t), CH_UTF16));
4191 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_source_dsa_address_0, 0);
4194 return NDR_ERR_SUCCESS;
4197 _PUBLIC_ void ndr_print_drsuapi_DsReplicaAddRequest2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaAddRequest2 *r)
4199 ndr_print_struct(ndr, name, "drsuapi_DsReplicaAddRequest2");
4200 ndr->depth++;
4201 ndr_print_ptr(ndr, "naming_context", r->naming_context);
4202 ndr->depth++;
4203 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
4204 ndr->depth--;
4205 ndr_print_ptr(ndr, "source_dsa_dn", r->source_dsa_dn);
4206 ndr->depth++;
4207 if (r->source_dsa_dn) {
4208 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "source_dsa_dn", r->source_dsa_dn);
4210 ndr->depth--;
4211 ndr_print_ptr(ndr, "transport_dn", r->transport_dn);
4212 ndr->depth++;
4213 if (r->transport_dn) {
4214 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "transport_dn", r->transport_dn);
4216 ndr->depth--;
4217 ndr_print_ptr(ndr, "source_dsa_address", r->source_dsa_address);
4218 ndr->depth++;
4219 if (r->source_dsa_address) {
4220 ndr_print_string(ndr, "source_dsa_address", r->source_dsa_address);
4222 ndr->depth--;
4223 ndr_print_array_uint8(ndr, "schedule", r->schedule, 84);
4224 ndr_print_drsuapi_DsReplicaAddOptions(ndr, "options", r->options);
4225 ndr->depth--;
4228 static enum ndr_err_code ndr_push_drsuapi_DsReplicaAddRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsReplicaAddRequest *r)
4230 if (ndr_flags & NDR_SCALARS) {
4231 int level = ndr_push_get_switch_value(ndr, r);
4232 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
4233 NDR_CHECK(ndr_push_union_align(ndr, 5));
4234 switch (level) {
4235 case 1: {
4236 NDR_CHECK(ndr_push_drsuapi_DsReplicaAddRequest1(ndr, NDR_SCALARS, &r->req1));
4237 break; }
4239 case 2: {
4240 NDR_CHECK(ndr_push_drsuapi_DsReplicaAddRequest2(ndr, NDR_SCALARS, &r->req2));
4241 break; }
4243 default:
4244 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4247 if (ndr_flags & NDR_BUFFERS) {
4248 int level = ndr_push_get_switch_value(ndr, r);
4249 switch (level) {
4250 case 1:
4251 NDR_CHECK(ndr_push_drsuapi_DsReplicaAddRequest1(ndr, NDR_BUFFERS, &r->req1));
4252 break;
4254 case 2:
4255 NDR_CHECK(ndr_push_drsuapi_DsReplicaAddRequest2(ndr, NDR_BUFFERS, &r->req2));
4256 break;
4258 default:
4259 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4262 return NDR_ERR_SUCCESS;
4265 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAddRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsReplicaAddRequest *r)
4267 int level;
4268 int32_t _level;
4269 level = ndr_pull_get_switch_value(ndr, r);
4270 if (ndr_flags & NDR_SCALARS) {
4271 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
4272 if (_level != level) {
4273 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
4275 NDR_CHECK(ndr_pull_union_align(ndr, 5));
4276 switch (level) {
4277 case 1: {
4278 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAddRequest1(ndr, NDR_SCALARS, &r->req1));
4279 break; }
4281 case 2: {
4282 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAddRequest2(ndr, NDR_SCALARS, &r->req2));
4283 break; }
4285 default:
4286 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4289 if (ndr_flags & NDR_BUFFERS) {
4290 switch (level) {
4291 case 1:
4292 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAddRequest1(ndr, NDR_BUFFERS, &r->req1));
4293 break;
4295 case 2:
4296 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAddRequest2(ndr, NDR_BUFFERS, &r->req2));
4297 break;
4299 default:
4300 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4303 return NDR_ERR_SUCCESS;
4306 _PUBLIC_ void ndr_print_drsuapi_DsReplicaAddRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsReplicaAddRequest *r)
4308 int level;
4309 level = ndr_print_get_switch_value(ndr, r);
4310 ndr_print_union(ndr, name, level, "drsuapi_DsReplicaAddRequest");
4311 switch (level) {
4312 case 1:
4313 ndr_print_drsuapi_DsReplicaAddRequest1(ndr, "req1", &r->req1);
4314 break;
4316 case 2:
4317 ndr_print_drsuapi_DsReplicaAddRequest2(ndr, "req2", &r->req2);
4318 break;
4320 default:
4321 ndr_print_bad_level(ndr, name, level);
4325 static enum ndr_err_code ndr_push_drsuapi_DsReplicaDeleteOptions(struct ndr_push *ndr, int ndr_flags, uint32_t r)
4327 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
4328 return NDR_ERR_SUCCESS;
4331 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaDeleteOptions(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
4333 uint32_t v;
4334 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
4335 *r = v;
4336 return NDR_ERR_SUCCESS;
4339 _PUBLIC_ void ndr_print_drsuapi_DsReplicaDeleteOptions(struct ndr_print *ndr, const char *name, uint32_t r)
4341 ndr_print_uint32(ndr, name, r);
4342 ndr->depth++;
4343 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION", DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION, r);
4344 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_ADD_WRITEABLE", DRSUAPI_DS_REPLICA_ADD_WRITEABLE, r);
4345 ndr->depth--;
4348 static enum ndr_err_code ndr_push_drsuapi_DsReplicaDelRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaDelRequest1 *r)
4350 if (ndr_flags & NDR_SCALARS) {
4351 NDR_CHECK(ndr_push_align(ndr, 5));
4352 if (r->naming_context == NULL) {
4353 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4355 NDR_CHECK(ndr_push_ref_ptr(ndr));
4356 NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dsa_address));
4357 NDR_CHECK(ndr_push_drsuapi_DsReplicaDeleteOptions(ndr, NDR_SCALARS, r->options));
4358 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
4360 if (ndr_flags & NDR_BUFFERS) {
4361 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
4362 if (r->source_dsa_address) {
4363 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_address, CH_UTF16)));
4364 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
4365 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_address, CH_UTF16)));
4366 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->source_dsa_address, ndr_charset_length(r->source_dsa_address, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4369 return NDR_ERR_SUCCESS;
4372 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaDelRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaDelRequest1 *r)
4374 uint32_t _ptr_naming_context;
4375 TALLOC_CTX *_mem_save_naming_context_0;
4376 uint32_t _ptr_source_dsa_address;
4377 uint32_t size_source_dsa_address_1 = 0;
4378 uint32_t length_source_dsa_address_1 = 0;
4379 TALLOC_CTX *_mem_save_source_dsa_address_0;
4380 if (ndr_flags & NDR_SCALARS) {
4381 NDR_CHECK(ndr_pull_align(ndr, 5));
4382 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_naming_context));
4383 if (_ptr_naming_context) {
4384 NDR_PULL_ALLOC(ndr, r->naming_context);
4385 } else {
4386 r->naming_context = NULL;
4388 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_source_dsa_address));
4389 if (_ptr_source_dsa_address) {
4390 NDR_PULL_ALLOC(ndr, r->source_dsa_address);
4391 } else {
4392 r->source_dsa_address = NULL;
4394 NDR_CHECK(ndr_pull_drsuapi_DsReplicaDeleteOptions(ndr, NDR_SCALARS, &r->options));
4395 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
4397 if (ndr_flags & NDR_BUFFERS) {
4398 _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
4399 NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
4400 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
4401 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
4402 if (r->source_dsa_address) {
4403 _mem_save_source_dsa_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
4404 NDR_PULL_SET_MEM_CTX(ndr, r->source_dsa_address, 0);
4405 NDR_CHECK(ndr_pull_array_size(ndr, &r->source_dsa_address));
4406 NDR_CHECK(ndr_pull_array_length(ndr, &r->source_dsa_address));
4407 size_source_dsa_address_1 = ndr_get_array_size(ndr, &r->source_dsa_address);
4408 length_source_dsa_address_1 = ndr_get_array_length(ndr, &r->source_dsa_address);
4409 if (length_source_dsa_address_1 > size_source_dsa_address_1) {
4410 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_source_dsa_address_1, length_source_dsa_address_1);
4412 NDR_CHECK(ndr_check_string_terminator(ndr, length_source_dsa_address_1, sizeof(uint16_t)));
4413 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->source_dsa_address, length_source_dsa_address_1, sizeof(uint16_t), CH_UTF16));
4414 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_source_dsa_address_0, 0);
4417 return NDR_ERR_SUCCESS;
4420 _PUBLIC_ void ndr_print_drsuapi_DsReplicaDelRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaDelRequest1 *r)
4422 ndr_print_struct(ndr, name, "drsuapi_DsReplicaDelRequest1");
4423 ndr->depth++;
4424 ndr_print_ptr(ndr, "naming_context", r->naming_context);
4425 ndr->depth++;
4426 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
4427 ndr->depth--;
4428 ndr_print_ptr(ndr, "source_dsa_address", r->source_dsa_address);
4429 ndr->depth++;
4430 if (r->source_dsa_address) {
4431 ndr_print_string(ndr, "source_dsa_address", r->source_dsa_address);
4433 ndr->depth--;
4434 ndr_print_drsuapi_DsReplicaDeleteOptions(ndr, "options", r->options);
4435 ndr->depth--;
4438 static enum ndr_err_code ndr_push_drsuapi_DsReplicaDelRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsReplicaDelRequest *r)
4440 if (ndr_flags & NDR_SCALARS) {
4441 int level = ndr_push_get_switch_value(ndr, r);
4442 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
4443 NDR_CHECK(ndr_push_union_align(ndr, 5));
4444 switch (level) {
4445 case 1: {
4446 NDR_CHECK(ndr_push_drsuapi_DsReplicaDelRequest1(ndr, NDR_SCALARS, &r->req1));
4447 break; }
4449 default:
4450 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4453 if (ndr_flags & NDR_BUFFERS) {
4454 int level = ndr_push_get_switch_value(ndr, r);
4455 switch (level) {
4456 case 1:
4457 NDR_CHECK(ndr_push_drsuapi_DsReplicaDelRequest1(ndr, NDR_BUFFERS, &r->req1));
4458 break;
4460 default:
4461 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4464 return NDR_ERR_SUCCESS;
4467 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaDelRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsReplicaDelRequest *r)
4469 int level;
4470 int32_t _level;
4471 level = ndr_pull_get_switch_value(ndr, r);
4472 if (ndr_flags & NDR_SCALARS) {
4473 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
4474 if (_level != level) {
4475 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
4477 NDR_CHECK(ndr_pull_union_align(ndr, 5));
4478 switch (level) {
4479 case 1: {
4480 NDR_CHECK(ndr_pull_drsuapi_DsReplicaDelRequest1(ndr, NDR_SCALARS, &r->req1));
4481 break; }
4483 default:
4484 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4487 if (ndr_flags & NDR_BUFFERS) {
4488 switch (level) {
4489 case 1:
4490 NDR_CHECK(ndr_pull_drsuapi_DsReplicaDelRequest1(ndr, NDR_BUFFERS, &r->req1));
4491 break;
4493 default:
4494 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4497 return NDR_ERR_SUCCESS;
4500 _PUBLIC_ void ndr_print_drsuapi_DsReplicaDelRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsReplicaDelRequest *r)
4502 int level;
4503 level = ndr_print_get_switch_value(ndr, r);
4504 ndr_print_union(ndr, name, level, "drsuapi_DsReplicaDelRequest");
4505 switch (level) {
4506 case 1:
4507 ndr_print_drsuapi_DsReplicaDelRequest1(ndr, "req1", &r->req1);
4508 break;
4510 default:
4511 ndr_print_bad_level(ndr, name, level);
4515 static enum ndr_err_code ndr_push_drsuapi_DsReplicaModifyOptions(struct ndr_push *ndr, int ndr_flags, uint32_t r)
4517 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
4518 return NDR_ERR_SUCCESS;
4521 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaModifyOptions(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
4523 uint32_t v;
4524 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
4525 *r = v;
4526 return NDR_ERR_SUCCESS;
4529 _PUBLIC_ void ndr_print_drsuapi_DsReplicaModifyOptions(struct ndr_print *ndr, const char *name, uint32_t r)
4531 ndr_print_uint32(ndr, name, r);
4532 ndr->depth++;
4533 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION", DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION, r);
4534 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_ADD_WRITEABLE", DRSUAPI_DS_REPLICA_ADD_WRITEABLE, r);
4535 ndr->depth--;
4538 static enum ndr_err_code ndr_push_drsuapi_DsReplicaModRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaModRequest1 *r)
4540 if (ndr_flags & NDR_SCALARS) {
4541 NDR_CHECK(ndr_push_align(ndr, 5));
4542 if (r->naming_context == NULL) {
4543 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
4545 NDR_CHECK(ndr_push_ref_ptr(ndr));
4546 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dra));
4547 NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dra_address));
4548 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->schedule, 84));
4549 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->replica_flags));
4550 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->modify_fields));
4551 NDR_CHECK(ndr_push_drsuapi_DsReplicaModifyOptions(ndr, NDR_SCALARS, r->options));
4552 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
4554 if (ndr_flags & NDR_BUFFERS) {
4555 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
4556 if (r->source_dra_address) {
4557 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dra_address, CH_UTF16)));
4558 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
4559 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dra_address, CH_UTF16)));
4560 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->source_dra_address, ndr_charset_length(r->source_dra_address, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4563 return NDR_ERR_SUCCESS;
4566 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaModRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaModRequest1 *r)
4568 uint32_t _ptr_naming_context;
4569 TALLOC_CTX *_mem_save_naming_context_0;
4570 uint32_t _ptr_source_dra_address;
4571 uint32_t size_source_dra_address_1 = 0;
4572 uint32_t length_source_dra_address_1 = 0;
4573 TALLOC_CTX *_mem_save_source_dra_address_0;
4574 uint32_t size_schedule_0 = 0;
4575 if (ndr_flags & NDR_SCALARS) {
4576 NDR_CHECK(ndr_pull_align(ndr, 5));
4577 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_naming_context));
4578 if (_ptr_naming_context) {
4579 NDR_PULL_ALLOC(ndr, r->naming_context);
4580 } else {
4581 r->naming_context = NULL;
4583 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dra));
4584 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_source_dra_address));
4585 if (_ptr_source_dra_address) {
4586 NDR_PULL_ALLOC(ndr, r->source_dra_address);
4587 } else {
4588 r->source_dra_address = NULL;
4590 size_schedule_0 = 84;
4591 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->schedule, size_schedule_0));
4592 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->replica_flags));
4593 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->modify_fields));
4594 NDR_CHECK(ndr_pull_drsuapi_DsReplicaModifyOptions(ndr, NDR_SCALARS, &r->options));
4595 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
4597 if (ndr_flags & NDR_BUFFERS) {
4598 _mem_save_naming_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
4599 NDR_PULL_SET_MEM_CTX(ndr, r->naming_context, 0);
4600 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->naming_context));
4601 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_0, 0);
4602 if (r->source_dra_address) {
4603 _mem_save_source_dra_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
4604 NDR_PULL_SET_MEM_CTX(ndr, r->source_dra_address, 0);
4605 NDR_CHECK(ndr_pull_array_size(ndr, &r->source_dra_address));
4606 NDR_CHECK(ndr_pull_array_length(ndr, &r->source_dra_address));
4607 size_source_dra_address_1 = ndr_get_array_size(ndr, &r->source_dra_address);
4608 length_source_dra_address_1 = ndr_get_array_length(ndr, &r->source_dra_address);
4609 if (length_source_dra_address_1 > size_source_dra_address_1) {
4610 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_source_dra_address_1, length_source_dra_address_1);
4612 NDR_CHECK(ndr_check_string_terminator(ndr, length_source_dra_address_1, sizeof(uint16_t)));
4613 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->source_dra_address, length_source_dra_address_1, sizeof(uint16_t), CH_UTF16));
4614 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_source_dra_address_0, 0);
4617 return NDR_ERR_SUCCESS;
4620 _PUBLIC_ void ndr_print_drsuapi_DsReplicaModRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaModRequest1 *r)
4622 ndr_print_struct(ndr, name, "drsuapi_DsReplicaModRequest1");
4623 ndr->depth++;
4624 ndr_print_ptr(ndr, "naming_context", r->naming_context);
4625 ndr->depth++;
4626 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "naming_context", r->naming_context);
4627 ndr->depth--;
4628 ndr_print_GUID(ndr, "source_dra", &r->source_dra);
4629 ndr_print_ptr(ndr, "source_dra_address", r->source_dra_address);
4630 ndr->depth++;
4631 if (r->source_dra_address) {
4632 ndr_print_string(ndr, "source_dra_address", r->source_dra_address);
4634 ndr->depth--;
4635 ndr_print_array_uint8(ndr, "schedule", r->schedule, 84);
4636 ndr_print_uint32(ndr, "replica_flags", r->replica_flags);
4637 ndr_print_uint32(ndr, "modify_fields", r->modify_fields);
4638 ndr_print_drsuapi_DsReplicaModifyOptions(ndr, "options", r->options);
4639 ndr->depth--;
4642 static enum ndr_err_code ndr_push_drsuapi_DsReplicaModRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsReplicaModRequest *r)
4644 if (ndr_flags & NDR_SCALARS) {
4645 int level = ndr_push_get_switch_value(ndr, r);
4646 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
4647 NDR_CHECK(ndr_push_union_align(ndr, 5));
4648 switch (level) {
4649 case 1: {
4650 NDR_CHECK(ndr_push_drsuapi_DsReplicaModRequest1(ndr, NDR_SCALARS, &r->req1));
4651 break; }
4653 default:
4654 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4657 if (ndr_flags & NDR_BUFFERS) {
4658 int level = ndr_push_get_switch_value(ndr, r);
4659 switch (level) {
4660 case 1:
4661 NDR_CHECK(ndr_push_drsuapi_DsReplicaModRequest1(ndr, NDR_BUFFERS, &r->req1));
4662 break;
4664 default:
4665 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4668 return NDR_ERR_SUCCESS;
4671 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaModRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsReplicaModRequest *r)
4673 int level;
4674 int32_t _level;
4675 level = ndr_pull_get_switch_value(ndr, r);
4676 if (ndr_flags & NDR_SCALARS) {
4677 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
4678 if (_level != level) {
4679 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
4681 NDR_CHECK(ndr_pull_union_align(ndr, 5));
4682 switch (level) {
4683 case 1: {
4684 NDR_CHECK(ndr_pull_drsuapi_DsReplicaModRequest1(ndr, NDR_SCALARS, &r->req1));
4685 break; }
4687 default:
4688 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4691 if (ndr_flags & NDR_BUFFERS) {
4692 switch (level) {
4693 case 1:
4694 NDR_CHECK(ndr_pull_drsuapi_DsReplicaModRequest1(ndr, NDR_BUFFERS, &r->req1));
4695 break;
4697 default:
4698 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
4701 return NDR_ERR_SUCCESS;
4704 _PUBLIC_ void ndr_print_drsuapi_DsReplicaModRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsReplicaModRequest *r)
4706 int level;
4707 level = ndr_print_get_switch_value(ndr, r);
4708 ndr_print_union(ndr, name, level, "drsuapi_DsReplicaModRequest");
4709 switch (level) {
4710 case 1:
4711 ndr_print_drsuapi_DsReplicaModRequest1(ndr, "req1", &r->req1);
4712 break;
4714 default:
4715 ndr_print_bad_level(ndr, name, level);
4719 static enum ndr_err_code ndr_push_drsuapi_DsMembershipType(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsMembershipType r)
4721 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
4722 return NDR_ERR_SUCCESS;
4725 static enum ndr_err_code ndr_pull_drsuapi_DsMembershipType(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsMembershipType *r)
4727 uint32_t v;
4728 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
4729 *r = v;
4730 return NDR_ERR_SUCCESS;
4733 _PUBLIC_ void ndr_print_drsuapi_DsMembershipType(struct ndr_print *ndr, const char *name, enum drsuapi_DsMembershipType r)
4735 const char *val = NULL;
4737 switch (r) {
4738 case DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_AND_DOMAIN_GROUPS: val = "DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_AND_DOMAIN_GROUPS"; break;
4739 case DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS: val = "DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS"; break;
4740 case DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS: val = "DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS"; break;
4741 case DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS2: val = "DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS2"; break;
4742 case DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_GROUPS: val = "DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_GROUPS"; break;
4743 case DRSUAPI_DS_MEMBERSHIP_TYPE_GROUPMEMBERS: val = "DRSUAPI_DS_MEMBERSHIP_TYPE_GROUPMEMBERS"; break;
4744 case DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS2: val = "DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS2"; break;
4746 ndr_print_enum(ndr, name, "ENUM", val, r);
4749 static enum ndr_err_code ndr_push_drsuapi_DsGetMembershipsCtr1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetMembershipsCtr1 *r)
4751 uint32_t cntr_info_array_1;
4752 uint32_t cntr_group_attrs_1;
4753 uint32_t cntr_sids_1;
4754 if (ndr_flags & NDR_SCALARS) {
4755 NDR_CHECK(ndr_push_align(ndr, 5));
4756 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->status));
4757 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_memberships));
4758 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sids));
4759 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info_array));
4760 NDR_CHECK(ndr_push_unique_ptr(ndr, r->group_attrs));
4761 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids));
4762 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
4764 if (ndr_flags & NDR_BUFFERS) {
4765 if (r->info_array) {
4766 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_memberships));
4767 for (cntr_info_array_1 = 0; cntr_info_array_1 < r->num_memberships; cntr_info_array_1++) {
4768 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info_array[cntr_info_array_1]));
4770 for (cntr_info_array_1 = 0; cntr_info_array_1 < r->num_memberships; cntr_info_array_1++) {
4771 if (r->info_array[cntr_info_array_1]) {
4772 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->info_array[cntr_info_array_1]));
4776 if (r->group_attrs) {
4777 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_memberships));
4778 for (cntr_group_attrs_1 = 0; cntr_group_attrs_1 < r->num_memberships; cntr_group_attrs_1++) {
4779 NDR_CHECK(ndr_push_samr_GroupAttrs(ndr, NDR_SCALARS, r->group_attrs[cntr_group_attrs_1]));
4782 if (r->sids) {
4783 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_sids));
4784 for (cntr_sids_1 = 0; cntr_sids_1 < r->num_sids; cntr_sids_1++) {
4785 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids[cntr_sids_1]));
4787 for (cntr_sids_1 = 0; cntr_sids_1 < r->num_sids; cntr_sids_1++) {
4788 if (r->sids[cntr_sids_1]) {
4789 NDR_CHECK(ndr_push_dom_sid28(ndr, NDR_SCALARS|NDR_BUFFERS, r->sids[cntr_sids_1]));
4794 return NDR_ERR_SUCCESS;
4797 static enum ndr_err_code ndr_pull_drsuapi_DsGetMembershipsCtr1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetMembershipsCtr1 *r)
4799 uint32_t _ptr_info_array;
4800 uint32_t size_info_array_1 = 0;
4801 uint32_t cntr_info_array_1;
4802 TALLOC_CTX *_mem_save_info_array_0;
4803 TALLOC_CTX *_mem_save_info_array_1;
4804 TALLOC_CTX *_mem_save_info_array_2;
4805 uint32_t _ptr_group_attrs;
4806 uint32_t size_group_attrs_1 = 0;
4807 uint32_t cntr_group_attrs_1;
4808 TALLOC_CTX *_mem_save_group_attrs_0;
4809 TALLOC_CTX *_mem_save_group_attrs_1;
4810 uint32_t _ptr_sids;
4811 uint32_t size_sids_1 = 0;
4812 uint32_t cntr_sids_1;
4813 TALLOC_CTX *_mem_save_sids_0;
4814 TALLOC_CTX *_mem_save_sids_1;
4815 TALLOC_CTX *_mem_save_sids_2;
4816 if (ndr_flags & NDR_SCALARS) {
4817 NDR_CHECK(ndr_pull_align(ndr, 5));
4818 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->status));
4819 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_memberships));
4820 if (r->num_memberships > 10000) {
4821 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
4823 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_sids));
4824 if (r->num_sids > 10000) {
4825 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
4827 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info_array));
4828 if (_ptr_info_array) {
4829 NDR_PULL_ALLOC(ndr, r->info_array);
4830 } else {
4831 r->info_array = NULL;
4833 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group_attrs));
4834 if (_ptr_group_attrs) {
4835 NDR_PULL_ALLOC(ndr, r->group_attrs);
4836 } else {
4837 r->group_attrs = NULL;
4839 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
4840 if (_ptr_sids) {
4841 NDR_PULL_ALLOC(ndr, r->sids);
4842 } else {
4843 r->sids = NULL;
4845 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
4847 if (ndr_flags & NDR_BUFFERS) {
4848 if (r->info_array) {
4849 _mem_save_info_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
4850 NDR_PULL_SET_MEM_CTX(ndr, r->info_array, 0);
4851 NDR_CHECK(ndr_pull_array_size(ndr, &r->info_array));
4852 size_info_array_1 = ndr_get_array_size(ndr, &r->info_array);
4853 NDR_PULL_ALLOC_N(ndr, r->info_array, size_info_array_1);
4854 _mem_save_info_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
4855 NDR_PULL_SET_MEM_CTX(ndr, r->info_array, 0);
4856 for (cntr_info_array_1 = 0; cntr_info_array_1 < size_info_array_1; cntr_info_array_1++) {
4857 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info_array));
4858 if (_ptr_info_array) {
4859 NDR_PULL_ALLOC(ndr, r->info_array[cntr_info_array_1]);
4860 } else {
4861 r->info_array[cntr_info_array_1] = NULL;
4864 for (cntr_info_array_1 = 0; cntr_info_array_1 < size_info_array_1; cntr_info_array_1++) {
4865 if (r->info_array[cntr_info_array_1]) {
4866 _mem_save_info_array_2 = NDR_PULL_GET_MEM_CTX(ndr);
4867 NDR_PULL_SET_MEM_CTX(ndr, r->info_array[cntr_info_array_1], 0);
4868 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->info_array[cntr_info_array_1]));
4869 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_array_2, 0);
4872 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_array_1, 0);
4873 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_array_0, 0);
4875 if (r->group_attrs) {
4876 _mem_save_group_attrs_0 = NDR_PULL_GET_MEM_CTX(ndr);
4877 NDR_PULL_SET_MEM_CTX(ndr, r->group_attrs, 0);
4878 NDR_CHECK(ndr_pull_array_size(ndr, &r->group_attrs));
4879 size_group_attrs_1 = ndr_get_array_size(ndr, &r->group_attrs);
4880 NDR_PULL_ALLOC_N(ndr, r->group_attrs, size_group_attrs_1);
4881 _mem_save_group_attrs_1 = NDR_PULL_GET_MEM_CTX(ndr);
4882 NDR_PULL_SET_MEM_CTX(ndr, r->group_attrs, 0);
4883 for (cntr_group_attrs_1 = 0; cntr_group_attrs_1 < size_group_attrs_1; cntr_group_attrs_1++) {
4884 NDR_CHECK(ndr_pull_samr_GroupAttrs(ndr, NDR_SCALARS, &r->group_attrs[cntr_group_attrs_1]));
4886 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_attrs_1, 0);
4887 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_attrs_0, 0);
4889 if (r->sids) {
4890 _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
4891 NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
4892 NDR_CHECK(ndr_pull_array_size(ndr, &r->sids));
4893 size_sids_1 = ndr_get_array_size(ndr, &r->sids);
4894 NDR_PULL_ALLOC_N(ndr, r->sids, size_sids_1);
4895 _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr);
4896 NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
4897 for (cntr_sids_1 = 0; cntr_sids_1 < size_sids_1; cntr_sids_1++) {
4898 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
4899 if (_ptr_sids) {
4900 NDR_PULL_ALLOC(ndr, r->sids[cntr_sids_1]);
4901 } else {
4902 r->sids[cntr_sids_1] = NULL;
4905 for (cntr_sids_1 = 0; cntr_sids_1 < size_sids_1; cntr_sids_1++) {
4906 if (r->sids[cntr_sids_1]) {
4907 _mem_save_sids_2 = NDR_PULL_GET_MEM_CTX(ndr);
4908 NDR_PULL_SET_MEM_CTX(ndr, r->sids[cntr_sids_1], 0);
4909 NDR_CHECK(ndr_pull_dom_sid28(ndr, NDR_SCALARS|NDR_BUFFERS, r->sids[cntr_sids_1]));
4910 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_2, 0);
4913 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0);
4914 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
4916 if (r->info_array) {
4917 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->info_array, r->num_memberships));
4919 if (r->group_attrs) {
4920 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->group_attrs, r->num_memberships));
4922 if (r->sids) {
4923 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->num_sids));
4926 return NDR_ERR_SUCCESS;
4929 _PUBLIC_ void ndr_print_drsuapi_DsGetMembershipsCtr1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetMembershipsCtr1 *r)
4931 uint32_t cntr_info_array_1;
4932 uint32_t cntr_group_attrs_1;
4933 uint32_t cntr_sids_1;
4934 ndr_print_struct(ndr, name, "drsuapi_DsGetMembershipsCtr1");
4935 ndr->depth++;
4936 ndr_print_NTSTATUS(ndr, "status", r->status);
4937 ndr_print_uint32(ndr, "num_memberships", r->num_memberships);
4938 ndr_print_uint32(ndr, "num_sids", r->num_sids);
4939 ndr_print_ptr(ndr, "info_array", r->info_array);
4940 ndr->depth++;
4941 if (r->info_array) {
4942 ndr->print(ndr, "%s: ARRAY(%d)", "info_array", (int)r->num_memberships);
4943 ndr->depth++;
4944 for (cntr_info_array_1=0;cntr_info_array_1<r->num_memberships;cntr_info_array_1++) {
4945 char *idx_1=NULL;
4946 if (asprintf(&idx_1, "[%d]", cntr_info_array_1) != -1) {
4947 ndr_print_ptr(ndr, "info_array", r->info_array[cntr_info_array_1]);
4948 ndr->depth++;
4949 if (r->info_array[cntr_info_array_1]) {
4950 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "info_array", r->info_array[cntr_info_array_1]);
4952 ndr->depth--;
4953 free(idx_1);
4956 ndr->depth--;
4958 ndr->depth--;
4959 ndr_print_ptr(ndr, "group_attrs", r->group_attrs);
4960 ndr->depth++;
4961 if (r->group_attrs) {
4962 ndr->print(ndr, "%s: ARRAY(%d)", "group_attrs", (int)r->num_memberships);
4963 ndr->depth++;
4964 for (cntr_group_attrs_1=0;cntr_group_attrs_1<r->num_memberships;cntr_group_attrs_1++) {
4965 char *idx_1=NULL;
4966 if (asprintf(&idx_1, "[%d]", cntr_group_attrs_1) != -1) {
4967 ndr_print_samr_GroupAttrs(ndr, "group_attrs", r->group_attrs[cntr_group_attrs_1]);
4968 free(idx_1);
4971 ndr->depth--;
4973 ndr->depth--;
4974 ndr_print_ptr(ndr, "sids", r->sids);
4975 ndr->depth++;
4976 if (r->sids) {
4977 ndr->print(ndr, "%s: ARRAY(%d)", "sids", (int)r->num_sids);
4978 ndr->depth++;
4979 for (cntr_sids_1=0;cntr_sids_1<r->num_sids;cntr_sids_1++) {
4980 char *idx_1=NULL;
4981 if (asprintf(&idx_1, "[%d]", cntr_sids_1) != -1) {
4982 ndr_print_ptr(ndr, "sids", r->sids[cntr_sids_1]);
4983 ndr->depth++;
4984 if (r->sids[cntr_sids_1]) {
4985 ndr_print_dom_sid28(ndr, "sids", r->sids[cntr_sids_1]);
4987 ndr->depth--;
4988 free(idx_1);
4991 ndr->depth--;
4993 ndr->depth--;
4994 ndr->depth--;
4997 static enum ndr_err_code ndr_push_drsuapi_DsGetMembershipsCtr(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetMembershipsCtr *r)
4999 if (ndr_flags & NDR_SCALARS) {
5000 int level = ndr_push_get_switch_value(ndr, r);
5001 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
5002 NDR_CHECK(ndr_push_union_align(ndr, 5));
5003 switch (level) {
5004 case 1: {
5005 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsCtr1(ndr, NDR_SCALARS, &r->ctr1));
5006 break; }
5008 default:
5009 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5012 if (ndr_flags & NDR_BUFFERS) {
5013 int level = ndr_push_get_switch_value(ndr, r);
5014 switch (level) {
5015 case 1:
5016 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsCtr1(ndr, NDR_BUFFERS, &r->ctr1));
5017 break;
5019 default:
5020 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5023 return NDR_ERR_SUCCESS;
5026 static enum ndr_err_code ndr_pull_drsuapi_DsGetMembershipsCtr(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetMembershipsCtr *r)
5028 int level;
5029 int32_t _level;
5030 level = ndr_pull_get_switch_value(ndr, r);
5031 if (ndr_flags & NDR_SCALARS) {
5032 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
5033 if (_level != level) {
5034 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
5036 NDR_CHECK(ndr_pull_union_align(ndr, 5));
5037 switch (level) {
5038 case 1: {
5039 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsCtr1(ndr, NDR_SCALARS, &r->ctr1));
5040 break; }
5042 default:
5043 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5046 if (ndr_flags & NDR_BUFFERS) {
5047 switch (level) {
5048 case 1:
5049 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsCtr1(ndr, NDR_BUFFERS, &r->ctr1));
5050 break;
5052 default:
5053 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5056 return NDR_ERR_SUCCESS;
5059 _PUBLIC_ void ndr_print_drsuapi_DsGetMembershipsCtr(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetMembershipsCtr *r)
5061 int level;
5062 level = ndr_print_get_switch_value(ndr, r);
5063 ndr_print_union(ndr, name, level, "drsuapi_DsGetMembershipsCtr");
5064 switch (level) {
5065 case 1:
5066 ndr_print_drsuapi_DsGetMembershipsCtr1(ndr, "ctr1", &r->ctr1);
5067 break;
5069 default:
5070 ndr_print_bad_level(ndr, name, level);
5074 static enum ndr_err_code ndr_push_drsuapi_DsGetMembershipsRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetMembershipsRequest1 *r)
5076 uint32_t cntr_info_array_1;
5077 if (ndr_flags & NDR_SCALARS) {
5078 NDR_CHECK(ndr_push_align(ndr, 5));
5079 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
5080 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info_array));
5081 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
5082 NDR_CHECK(ndr_push_drsuapi_DsMembershipType(ndr, NDR_SCALARS, r->type));
5083 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
5084 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5086 if (ndr_flags & NDR_BUFFERS) {
5087 if (r->info_array) {
5088 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
5089 for (cntr_info_array_1 = 0; cntr_info_array_1 < r->count; cntr_info_array_1++) {
5090 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info_array[cntr_info_array_1]));
5092 for (cntr_info_array_1 = 0; cntr_info_array_1 < r->count; cntr_info_array_1++) {
5093 if (r->info_array[cntr_info_array_1]) {
5094 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->info_array[cntr_info_array_1]));
5098 if (r->domain) {
5099 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain));
5102 return NDR_ERR_SUCCESS;
5105 static enum ndr_err_code ndr_pull_drsuapi_DsGetMembershipsRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetMembershipsRequest1 *r)
5107 uint32_t _ptr_info_array;
5108 uint32_t size_info_array_1 = 0;
5109 uint32_t cntr_info_array_1;
5110 TALLOC_CTX *_mem_save_info_array_0;
5111 TALLOC_CTX *_mem_save_info_array_1;
5112 TALLOC_CTX *_mem_save_info_array_2;
5113 uint32_t _ptr_domain;
5114 TALLOC_CTX *_mem_save_domain_0;
5115 if (ndr_flags & NDR_SCALARS) {
5116 NDR_CHECK(ndr_pull_align(ndr, 5));
5117 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
5118 if (r->count < 1 || r->count > 10000) {
5119 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5121 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info_array));
5122 if (_ptr_info_array) {
5123 NDR_PULL_ALLOC(ndr, r->info_array);
5124 } else {
5125 r->info_array = NULL;
5127 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
5128 NDR_CHECK(ndr_pull_drsuapi_DsMembershipType(ndr, NDR_SCALARS, &r->type));
5129 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
5130 if (_ptr_domain) {
5131 NDR_PULL_ALLOC(ndr, r->domain);
5132 } else {
5133 r->domain = NULL;
5135 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5137 if (ndr_flags & NDR_BUFFERS) {
5138 if (r->info_array) {
5139 _mem_save_info_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
5140 NDR_PULL_SET_MEM_CTX(ndr, r->info_array, 0);
5141 NDR_CHECK(ndr_pull_array_size(ndr, &r->info_array));
5142 size_info_array_1 = ndr_get_array_size(ndr, &r->info_array);
5143 NDR_PULL_ALLOC_N(ndr, r->info_array, size_info_array_1);
5144 _mem_save_info_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
5145 NDR_PULL_SET_MEM_CTX(ndr, r->info_array, 0);
5146 for (cntr_info_array_1 = 0; cntr_info_array_1 < size_info_array_1; cntr_info_array_1++) {
5147 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info_array));
5148 if (_ptr_info_array) {
5149 NDR_PULL_ALLOC(ndr, r->info_array[cntr_info_array_1]);
5150 } else {
5151 r->info_array[cntr_info_array_1] = NULL;
5154 for (cntr_info_array_1 = 0; cntr_info_array_1 < size_info_array_1; cntr_info_array_1++) {
5155 if (r->info_array[cntr_info_array_1]) {
5156 _mem_save_info_array_2 = NDR_PULL_GET_MEM_CTX(ndr);
5157 NDR_PULL_SET_MEM_CTX(ndr, r->info_array[cntr_info_array_1], 0);
5158 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->info_array[cntr_info_array_1]));
5159 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_array_2, 0);
5162 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_array_1, 0);
5163 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_array_0, 0);
5165 if (r->domain) {
5166 _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
5167 NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
5168 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain));
5169 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
5171 if (r->info_array) {
5172 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->info_array, r->count));
5175 return NDR_ERR_SUCCESS;
5178 _PUBLIC_ void ndr_print_drsuapi_DsGetMembershipsRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetMembershipsRequest1 *r)
5180 uint32_t cntr_info_array_1;
5181 ndr_print_struct(ndr, name, "drsuapi_DsGetMembershipsRequest1");
5182 ndr->depth++;
5183 ndr_print_uint32(ndr, "count", r->count);
5184 ndr_print_ptr(ndr, "info_array", r->info_array);
5185 ndr->depth++;
5186 if (r->info_array) {
5187 ndr->print(ndr, "%s: ARRAY(%d)", "info_array", (int)r->count);
5188 ndr->depth++;
5189 for (cntr_info_array_1=0;cntr_info_array_1<r->count;cntr_info_array_1++) {
5190 char *idx_1=NULL;
5191 if (asprintf(&idx_1, "[%d]", cntr_info_array_1) != -1) {
5192 ndr_print_ptr(ndr, "info_array", r->info_array[cntr_info_array_1]);
5193 ndr->depth++;
5194 if (r->info_array[cntr_info_array_1]) {
5195 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "info_array", r->info_array[cntr_info_array_1]);
5197 ndr->depth--;
5198 free(idx_1);
5201 ndr->depth--;
5203 ndr->depth--;
5204 ndr_print_uint32(ndr, "flags", r->flags);
5205 ndr_print_drsuapi_DsMembershipType(ndr, "type", r->type);
5206 ndr_print_ptr(ndr, "domain", r->domain);
5207 ndr->depth++;
5208 if (r->domain) {
5209 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "domain", r->domain);
5211 ndr->depth--;
5212 ndr->depth--;
5215 static enum ndr_err_code ndr_push_drsuapi_DsGetMembershipsRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetMembershipsRequest *r)
5217 if (ndr_flags & NDR_SCALARS) {
5218 int level = ndr_push_get_switch_value(ndr, r);
5219 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
5220 NDR_CHECK(ndr_push_union_align(ndr, 5));
5221 switch (level) {
5222 case 1: {
5223 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsRequest1(ndr, NDR_SCALARS, &r->req1));
5224 break; }
5226 default:
5227 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5230 if (ndr_flags & NDR_BUFFERS) {
5231 int level = ndr_push_get_switch_value(ndr, r);
5232 switch (level) {
5233 case 1:
5234 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsRequest1(ndr, NDR_BUFFERS, &r->req1));
5235 break;
5237 default:
5238 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5241 return NDR_ERR_SUCCESS;
5244 static enum ndr_err_code ndr_pull_drsuapi_DsGetMembershipsRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetMembershipsRequest *r)
5246 int level;
5247 int32_t _level;
5248 level = ndr_pull_get_switch_value(ndr, r);
5249 if (ndr_flags & NDR_SCALARS) {
5250 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
5251 if (_level != level) {
5252 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
5254 NDR_CHECK(ndr_pull_union_align(ndr, 5));
5255 switch (level) {
5256 case 1: {
5257 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsRequest1(ndr, NDR_SCALARS, &r->req1));
5258 break; }
5260 default:
5261 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5264 if (ndr_flags & NDR_BUFFERS) {
5265 switch (level) {
5266 case 1:
5267 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsRequest1(ndr, NDR_BUFFERS, &r->req1));
5268 break;
5270 default:
5271 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5274 return NDR_ERR_SUCCESS;
5277 _PUBLIC_ void ndr_print_drsuapi_DsGetMembershipsRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetMembershipsRequest *r)
5279 int level;
5280 level = ndr_print_get_switch_value(ndr, r);
5281 ndr_print_union(ndr, name, level, "drsuapi_DsGetMembershipsRequest");
5282 switch (level) {
5283 case 1:
5284 ndr_print_drsuapi_DsGetMembershipsRequest1(ndr, "req1", &r->req1);
5285 break;
5287 default:
5288 ndr_print_bad_level(ndr, name, level);
5292 static enum ndr_err_code ndr_push_drsuapi_DsGetNT4ChangeLogRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNT4ChangeLogRequest1 *r)
5294 if (ndr_flags & NDR_SCALARS) {
5295 NDR_CHECK(ndr_push_align(ndr, 5));
5296 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
5297 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
5298 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
5299 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
5300 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5302 if (ndr_flags & NDR_BUFFERS) {
5303 if (r->data) {
5304 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->length));
5305 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
5308 return NDR_ERR_SUCCESS;
5311 static enum ndr_err_code ndr_pull_drsuapi_DsGetNT4ChangeLogRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNT4ChangeLogRequest1 *r)
5313 uint32_t _ptr_data;
5314 uint32_t size_data_1 = 0;
5315 TALLOC_CTX *_mem_save_data_0;
5316 if (ndr_flags & NDR_SCALARS) {
5317 NDR_CHECK(ndr_pull_align(ndr, 5));
5318 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
5319 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
5320 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
5321 if (r->length > 0x00A00000) {
5322 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5324 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
5325 if (_ptr_data) {
5326 NDR_PULL_ALLOC(ndr, r->data);
5327 } else {
5328 r->data = NULL;
5330 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5332 if (ndr_flags & NDR_BUFFERS) {
5333 if (r->data) {
5334 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
5335 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
5336 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
5337 size_data_1 = ndr_get_array_size(ndr, &r->data);
5338 NDR_PULL_ALLOC_N(ndr, r->data, size_data_1);
5339 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, size_data_1));
5340 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
5342 if (r->data) {
5343 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
5346 return NDR_ERR_SUCCESS;
5349 _PUBLIC_ void ndr_print_drsuapi_DsGetNT4ChangeLogRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNT4ChangeLogRequest1 *r)
5351 ndr_print_struct(ndr, name, "drsuapi_DsGetNT4ChangeLogRequest1");
5352 ndr->depth++;
5353 ndr_print_uint32(ndr, "unknown1", r->unknown1);
5354 ndr_print_uint32(ndr, "unknown2", r->unknown2);
5355 ndr_print_uint32(ndr, "length", r->length);
5356 ndr_print_ptr(ndr, "data", r->data);
5357 ndr->depth++;
5358 if (r->data) {
5359 ndr_print_array_uint8(ndr, "data", r->data, r->length);
5361 ndr->depth--;
5362 ndr->depth--;
5365 static enum ndr_err_code ndr_push_drsuapi_DsGetNT4ChangeLogRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetNT4ChangeLogRequest *r)
5367 if (ndr_flags & NDR_SCALARS) {
5368 int level = ndr_push_get_switch_value(ndr, r);
5369 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5370 NDR_CHECK(ndr_push_union_align(ndr, 5));
5371 switch (level) {
5372 case 1: {
5373 NDR_CHECK(ndr_push_drsuapi_DsGetNT4ChangeLogRequest1(ndr, NDR_SCALARS, &r->req1));
5374 break; }
5376 default:
5377 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5380 if (ndr_flags & NDR_BUFFERS) {
5381 int level = ndr_push_get_switch_value(ndr, r);
5382 switch (level) {
5383 case 1:
5384 NDR_CHECK(ndr_push_drsuapi_DsGetNT4ChangeLogRequest1(ndr, NDR_BUFFERS, &r->req1));
5385 break;
5387 default:
5388 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5391 return NDR_ERR_SUCCESS;
5394 static enum ndr_err_code ndr_pull_drsuapi_DsGetNT4ChangeLogRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetNT4ChangeLogRequest *r)
5396 int level;
5397 uint32_t _level;
5398 level = ndr_pull_get_switch_value(ndr, r);
5399 if (ndr_flags & NDR_SCALARS) {
5400 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5401 if (_level != level) {
5402 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
5404 NDR_CHECK(ndr_pull_union_align(ndr, 5));
5405 switch (level) {
5406 case 1: {
5407 NDR_CHECK(ndr_pull_drsuapi_DsGetNT4ChangeLogRequest1(ndr, NDR_SCALARS, &r->req1));
5408 break; }
5410 default:
5411 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5414 if (ndr_flags & NDR_BUFFERS) {
5415 switch (level) {
5416 case 1:
5417 NDR_CHECK(ndr_pull_drsuapi_DsGetNT4ChangeLogRequest1(ndr, NDR_BUFFERS, &r->req1));
5418 break;
5420 default:
5421 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5424 return NDR_ERR_SUCCESS;
5427 _PUBLIC_ void ndr_print_drsuapi_DsGetNT4ChangeLogRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetNT4ChangeLogRequest *r)
5429 int level;
5430 level = ndr_print_get_switch_value(ndr, r);
5431 ndr_print_union(ndr, name, level, "drsuapi_DsGetNT4ChangeLogRequest");
5432 switch (level) {
5433 case 1:
5434 ndr_print_drsuapi_DsGetNT4ChangeLogRequest1(ndr, "req1", &r->req1);
5435 break;
5437 default:
5438 ndr_print_bad_level(ndr, name, level);
5442 static enum ndr_err_code ndr_push_drsuapi_DsGetNT4ChangeLogInfo1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetNT4ChangeLogInfo1 *r)
5444 if (ndr_flags & NDR_SCALARS) {
5445 NDR_CHECK(ndr_push_align(ndr, 8));
5446 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length1));
5447 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length2));
5448 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->unknown1));
5449 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->time2));
5450 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->unknown3));
5451 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->time4));
5452 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->unknown5));
5453 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->time6));
5454 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->status));
5455 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data1));
5456 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data2));
5457 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
5459 if (ndr_flags & NDR_BUFFERS) {
5460 if (r->data1) {
5461 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->length1));
5462 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data1, r->length1));
5464 if (r->data2) {
5465 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->length2));
5466 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data2, r->length2));
5469 return NDR_ERR_SUCCESS;
5472 static enum ndr_err_code ndr_pull_drsuapi_DsGetNT4ChangeLogInfo1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetNT4ChangeLogInfo1 *r)
5474 uint32_t _ptr_data1;
5475 uint32_t size_data1_1 = 0;
5476 TALLOC_CTX *_mem_save_data1_0;
5477 uint32_t _ptr_data2;
5478 uint32_t size_data2_1 = 0;
5479 TALLOC_CTX *_mem_save_data2_0;
5480 if (ndr_flags & NDR_SCALARS) {
5481 NDR_CHECK(ndr_pull_align(ndr, 8));
5482 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length1));
5483 if (r->length1 > 0x00A00000) {
5484 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5486 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length2));
5487 if (r->length2 > 0x00A00000) {
5488 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5490 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->unknown1));
5491 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->time2));
5492 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->unknown3));
5493 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->time4));
5494 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->unknown5));
5495 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->time6));
5496 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->status));
5497 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data1));
5498 if (_ptr_data1) {
5499 NDR_PULL_ALLOC(ndr, r->data1);
5500 } else {
5501 r->data1 = NULL;
5503 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data2));
5504 if (_ptr_data2) {
5505 NDR_PULL_ALLOC(ndr, r->data2);
5506 } else {
5507 r->data2 = NULL;
5509 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
5511 if (ndr_flags & NDR_BUFFERS) {
5512 if (r->data1) {
5513 _mem_save_data1_0 = NDR_PULL_GET_MEM_CTX(ndr);
5514 NDR_PULL_SET_MEM_CTX(ndr, r->data1, 0);
5515 NDR_CHECK(ndr_pull_array_size(ndr, &r->data1));
5516 size_data1_1 = ndr_get_array_size(ndr, &r->data1);
5517 NDR_PULL_ALLOC_N(ndr, r->data1, size_data1_1);
5518 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data1, size_data1_1));
5519 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data1_0, 0);
5521 if (r->data2) {
5522 _mem_save_data2_0 = NDR_PULL_GET_MEM_CTX(ndr);
5523 NDR_PULL_SET_MEM_CTX(ndr, r->data2, 0);
5524 NDR_CHECK(ndr_pull_array_size(ndr, &r->data2));
5525 size_data2_1 = ndr_get_array_size(ndr, &r->data2);
5526 NDR_PULL_ALLOC_N(ndr, r->data2, size_data2_1);
5527 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data2, size_data2_1));
5528 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data2_0, 0);
5530 if (r->data1) {
5531 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data1, r->length1));
5533 if (r->data2) {
5534 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data2, r->length2));
5537 return NDR_ERR_SUCCESS;
5540 _PUBLIC_ void ndr_print_drsuapi_DsGetNT4ChangeLogInfo1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetNT4ChangeLogInfo1 *r)
5542 ndr_print_struct(ndr, name, "drsuapi_DsGetNT4ChangeLogInfo1");
5543 ndr->depth++;
5544 ndr_print_uint32(ndr, "length1", r->length1);
5545 ndr_print_uint32(ndr, "length2", r->length2);
5546 ndr_print_hyper(ndr, "unknown1", r->unknown1);
5547 ndr_print_NTTIME(ndr, "time2", r->time2);
5548 ndr_print_hyper(ndr, "unknown3", r->unknown3);
5549 ndr_print_NTTIME(ndr, "time4", r->time4);
5550 ndr_print_hyper(ndr, "unknown5", r->unknown5);
5551 ndr_print_NTTIME(ndr, "time6", r->time6);
5552 ndr_print_NTSTATUS(ndr, "status", r->status);
5553 ndr_print_ptr(ndr, "data1", r->data1);
5554 ndr->depth++;
5555 if (r->data1) {
5556 ndr_print_array_uint8(ndr, "data1", r->data1, r->length1);
5558 ndr->depth--;
5559 ndr_print_ptr(ndr, "data2", r->data2);
5560 ndr->depth++;
5561 if (r->data2) {
5562 ndr_print_array_uint8(ndr, "data2", r->data2, r->length2);
5564 ndr->depth--;
5565 ndr->depth--;
5568 static enum ndr_err_code ndr_push_drsuapi_DsGetNT4ChangeLogInfo(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetNT4ChangeLogInfo *r)
5570 if (ndr_flags & NDR_SCALARS) {
5571 int level = ndr_push_get_switch_value(ndr, r);
5572 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5573 NDR_CHECK(ndr_push_union_align(ndr, 8));
5574 switch (level) {
5575 case 1: {
5576 NDR_CHECK(ndr_push_drsuapi_DsGetNT4ChangeLogInfo1(ndr, NDR_SCALARS, &r->info1));
5577 break; }
5579 default:
5580 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5583 if (ndr_flags & NDR_BUFFERS) {
5584 int level = ndr_push_get_switch_value(ndr, r);
5585 switch (level) {
5586 case 1:
5587 NDR_CHECK(ndr_push_drsuapi_DsGetNT4ChangeLogInfo1(ndr, NDR_BUFFERS, &r->info1));
5588 break;
5590 default:
5591 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5594 return NDR_ERR_SUCCESS;
5597 static enum ndr_err_code ndr_pull_drsuapi_DsGetNT4ChangeLogInfo(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetNT4ChangeLogInfo *r)
5599 int level;
5600 uint32_t _level;
5601 level = ndr_pull_get_switch_value(ndr, r);
5602 if (ndr_flags & NDR_SCALARS) {
5603 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5604 if (_level != level) {
5605 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
5607 NDR_CHECK(ndr_pull_union_align(ndr, 8));
5608 switch (level) {
5609 case 1: {
5610 NDR_CHECK(ndr_pull_drsuapi_DsGetNT4ChangeLogInfo1(ndr, NDR_SCALARS, &r->info1));
5611 break; }
5613 default:
5614 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5617 if (ndr_flags & NDR_BUFFERS) {
5618 switch (level) {
5619 case 1:
5620 NDR_CHECK(ndr_pull_drsuapi_DsGetNT4ChangeLogInfo1(ndr, NDR_BUFFERS, &r->info1));
5621 break;
5623 default:
5624 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5627 return NDR_ERR_SUCCESS;
5630 _PUBLIC_ void ndr_print_drsuapi_DsGetNT4ChangeLogInfo(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetNT4ChangeLogInfo *r)
5632 int level;
5633 level = ndr_print_get_switch_value(ndr, r);
5634 ndr_print_union(ndr, name, level, "drsuapi_DsGetNT4ChangeLogInfo");
5635 switch (level) {
5636 case 1:
5637 ndr_print_drsuapi_DsGetNT4ChangeLogInfo1(ndr, "info1", &r->info1);
5638 break;
5640 default:
5641 ndr_print_bad_level(ndr, name, level);
5645 static enum ndr_err_code ndr_push_drsuapi_DsNameStatus(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsNameStatus r)
5647 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
5648 return NDR_ERR_SUCCESS;
5651 static enum ndr_err_code ndr_pull_drsuapi_DsNameStatus(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsNameStatus *r)
5653 uint32_t v;
5654 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
5655 *r = v;
5656 return NDR_ERR_SUCCESS;
5659 _PUBLIC_ void ndr_print_drsuapi_DsNameStatus(struct ndr_print *ndr, const char *name, enum drsuapi_DsNameStatus r)
5661 const char *val = NULL;
5663 switch (r) {
5664 case DRSUAPI_DS_NAME_STATUS_OK: val = "DRSUAPI_DS_NAME_STATUS_OK"; break;
5665 case DRSUAPI_DS_NAME_STATUS_RESOLVE_ERROR: val = "DRSUAPI_DS_NAME_STATUS_RESOLVE_ERROR"; break;
5666 case DRSUAPI_DS_NAME_STATUS_NOT_FOUND: val = "DRSUAPI_DS_NAME_STATUS_NOT_FOUND"; break;
5667 case DRSUAPI_DS_NAME_STATUS_NOT_UNIQUE: val = "DRSUAPI_DS_NAME_STATUS_NOT_UNIQUE"; break;
5668 case DRSUAPI_DS_NAME_STATUS_NO_MAPPING: val = "DRSUAPI_DS_NAME_STATUS_NO_MAPPING"; break;
5669 case DRSUAPI_DS_NAME_STATUS_DOMAIN_ONLY: val = "DRSUAPI_DS_NAME_STATUS_DOMAIN_ONLY"; break;
5670 case DRSUAPI_DS_NAME_STATUS_NO_SYNTACTICAL_MAPPING: val = "DRSUAPI_DS_NAME_STATUS_NO_SYNTACTICAL_MAPPING"; break;
5671 case DRSUAPI_DS_NAME_STATUS_TRUST_REFERRAL: val = "DRSUAPI_DS_NAME_STATUS_TRUST_REFERRAL"; break;
5673 ndr_print_enum(ndr, name, "ENUM", val, r);
5676 static enum ndr_err_code ndr_push_drsuapi_DsNameFlags(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsNameFlags r)
5678 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
5679 return NDR_ERR_SUCCESS;
5682 static enum ndr_err_code ndr_pull_drsuapi_DsNameFlags(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsNameFlags *r)
5684 uint32_t v;
5685 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
5686 *r = v;
5687 return NDR_ERR_SUCCESS;
5690 _PUBLIC_ void ndr_print_drsuapi_DsNameFlags(struct ndr_print *ndr, const char *name, enum drsuapi_DsNameFlags r)
5692 const char *val = NULL;
5694 switch (r) {
5695 case DRSUAPI_DS_NAME_FLAG_NO_FLAGS: val = "DRSUAPI_DS_NAME_FLAG_NO_FLAGS"; break;
5696 case DRSUAPI_DS_NAME_FLAG_SYNTACTICAL_ONLY: val = "DRSUAPI_DS_NAME_FLAG_SYNTACTICAL_ONLY"; break;
5697 case DRSUAPI_DS_NAME_FLAG_EVAL_AT_DC: val = "DRSUAPI_DS_NAME_FLAG_EVAL_AT_DC"; break;
5698 case DRSUAPI_DS_NAME_FLAG_GCVERIFY: val = "DRSUAPI_DS_NAME_FLAG_GCVERIFY"; break;
5699 case DRSUAPI_DS_NAME_FLAG_TRUST_REFERRAL: val = "DRSUAPI_DS_NAME_FLAG_TRUST_REFERRAL"; break;
5701 ndr_print_enum(ndr, name, "ENUM", val, r);
5704 static enum ndr_err_code ndr_push_drsuapi_DsNameFormat(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsNameFormat r)
5706 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
5707 return NDR_ERR_SUCCESS;
5710 static enum ndr_err_code ndr_pull_drsuapi_DsNameFormat(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsNameFormat *r)
5712 uint32_t v;
5713 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
5714 *r = v;
5715 return NDR_ERR_SUCCESS;
5718 _PUBLIC_ void ndr_print_drsuapi_DsNameFormat(struct ndr_print *ndr, const char *name, enum drsuapi_DsNameFormat r)
5720 const char *val = NULL;
5722 switch (r) {
5723 case DRSUAPI_DS_NAME_FORMAT_UNKNOWN: val = "DRSUAPI_DS_NAME_FORMAT_UNKNOWN"; break;
5724 case DRSUAPI_DS_NAME_FORMAT_FQDN_1779: val = "DRSUAPI_DS_NAME_FORMAT_FQDN_1779"; break;
5725 case DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT: val = "DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT"; break;
5726 case DRSUAPI_DS_NAME_FORMAT_DISPLAY: val = "DRSUAPI_DS_NAME_FORMAT_DISPLAY"; break;
5727 case DRSUAPI_DS_NAME_FORMAT_GUID: val = "DRSUAPI_DS_NAME_FORMAT_GUID"; break;
5728 case DRSUAPI_DS_NAME_FORMAT_CANONICAL: val = "DRSUAPI_DS_NAME_FORMAT_CANONICAL"; break;
5729 case DRSUAPI_DS_NAME_FORMAT_USER_PRINCIPAL: val = "DRSUAPI_DS_NAME_FORMAT_USER_PRINCIPAL"; break;
5730 case DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX: val = "DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX"; break;
5731 case DRSUAPI_DS_NAME_FORMAT_SERVICE_PRINCIPAL: val = "DRSUAPI_DS_NAME_FORMAT_SERVICE_PRINCIPAL"; break;
5732 case DRSUAPI_DS_NAME_FORMAT_SID_OR_SID_HISTORY: val = "DRSUAPI_DS_NAME_FORMAT_SID_OR_SID_HISTORY"; break;
5733 case DRSUAPI_DS_NAME_FORMAT_DNS_DOMAIN: val = "DRSUAPI_DS_NAME_FORMAT_DNS_DOMAIN"; break;
5735 ndr_print_enum(ndr, name, "ENUM", val, r);
5738 static enum ndr_err_code ndr_push_drsuapi_DsNameString(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsNameString *r)
5740 if (ndr_flags & NDR_SCALARS) {
5741 NDR_CHECK(ndr_push_align(ndr, 5));
5742 NDR_CHECK(ndr_push_unique_ptr(ndr, r->str));
5743 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5745 if (ndr_flags & NDR_BUFFERS) {
5746 if (r->str) {
5747 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->str, CH_UTF16)));
5748 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5749 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->str, CH_UTF16)));
5750 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->str, ndr_charset_length(r->str, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5753 return NDR_ERR_SUCCESS;
5756 static enum ndr_err_code ndr_pull_drsuapi_DsNameString(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsNameString *r)
5758 uint32_t _ptr_str;
5759 uint32_t size_str_1 = 0;
5760 uint32_t length_str_1 = 0;
5761 TALLOC_CTX *_mem_save_str_0;
5762 if (ndr_flags & NDR_SCALARS) {
5763 NDR_CHECK(ndr_pull_align(ndr, 5));
5764 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_str));
5765 if (_ptr_str) {
5766 NDR_PULL_ALLOC(ndr, r->str);
5767 } else {
5768 r->str = NULL;
5770 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5772 if (ndr_flags & NDR_BUFFERS) {
5773 if (r->str) {
5774 _mem_save_str_0 = NDR_PULL_GET_MEM_CTX(ndr);
5775 NDR_PULL_SET_MEM_CTX(ndr, r->str, 0);
5776 NDR_CHECK(ndr_pull_array_size(ndr, &r->str));
5777 NDR_CHECK(ndr_pull_array_length(ndr, &r->str));
5778 size_str_1 = ndr_get_array_size(ndr, &r->str);
5779 length_str_1 = ndr_get_array_length(ndr, &r->str);
5780 if (length_str_1 > size_str_1) {
5781 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_str_1, length_str_1);
5783 NDR_CHECK(ndr_check_string_terminator(ndr, length_str_1, sizeof(uint16_t)));
5784 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->str, length_str_1, sizeof(uint16_t), CH_UTF16));
5785 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_str_0, 0);
5788 return NDR_ERR_SUCCESS;
5791 _PUBLIC_ void ndr_print_drsuapi_DsNameString(struct ndr_print *ndr, const char *name, const struct drsuapi_DsNameString *r)
5793 ndr_print_struct(ndr, name, "drsuapi_DsNameString");
5794 ndr->depth++;
5795 ndr_print_ptr(ndr, "str", r->str);
5796 ndr->depth++;
5797 if (r->str) {
5798 ndr_print_string(ndr, "str", r->str);
5800 ndr->depth--;
5801 ndr->depth--;
5804 static enum ndr_err_code ndr_push_drsuapi_DsNameRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsNameRequest1 *r)
5806 uint32_t cntr_names_1;
5807 if (ndr_flags & NDR_SCALARS) {
5808 NDR_CHECK(ndr_push_align(ndr, 5));
5809 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->codepage));
5810 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->language));
5811 NDR_CHECK(ndr_push_drsuapi_DsNameFlags(ndr, NDR_SCALARS, r->format_flags));
5812 NDR_CHECK(ndr_push_drsuapi_DsNameFormat(ndr, NDR_SCALARS, r->format_offered));
5813 NDR_CHECK(ndr_push_drsuapi_DsNameFormat(ndr, NDR_SCALARS, r->format_desired));
5814 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
5815 NDR_CHECK(ndr_push_unique_ptr(ndr, r->names));
5816 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5818 if (ndr_flags & NDR_BUFFERS) {
5819 if (r->names) {
5820 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
5821 for (cntr_names_1 = 0; cntr_names_1 < r->count; cntr_names_1++) {
5822 NDR_CHECK(ndr_push_drsuapi_DsNameString(ndr, NDR_SCALARS, &r->names[cntr_names_1]));
5824 for (cntr_names_1 = 0; cntr_names_1 < r->count; cntr_names_1++) {
5825 NDR_CHECK(ndr_push_drsuapi_DsNameString(ndr, NDR_BUFFERS, &r->names[cntr_names_1]));
5829 return NDR_ERR_SUCCESS;
5832 static enum ndr_err_code ndr_pull_drsuapi_DsNameRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsNameRequest1 *r)
5834 uint32_t _ptr_names;
5835 uint32_t size_names_1 = 0;
5836 uint32_t cntr_names_1;
5837 TALLOC_CTX *_mem_save_names_0;
5838 TALLOC_CTX *_mem_save_names_1;
5839 if (ndr_flags & NDR_SCALARS) {
5840 NDR_CHECK(ndr_pull_align(ndr, 5));
5841 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->codepage));
5842 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->language));
5843 NDR_CHECK(ndr_pull_drsuapi_DsNameFlags(ndr, NDR_SCALARS, &r->format_flags));
5844 NDR_CHECK(ndr_pull_drsuapi_DsNameFormat(ndr, NDR_SCALARS, &r->format_offered));
5845 NDR_CHECK(ndr_pull_drsuapi_DsNameFormat(ndr, NDR_SCALARS, &r->format_desired));
5846 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
5847 if (r->count < 1 || r->count > 10000) {
5848 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5850 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_names));
5851 if (_ptr_names) {
5852 NDR_PULL_ALLOC(ndr, r->names);
5853 } else {
5854 r->names = NULL;
5856 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5858 if (ndr_flags & NDR_BUFFERS) {
5859 if (r->names) {
5860 _mem_save_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
5861 NDR_PULL_SET_MEM_CTX(ndr, r->names, 0);
5862 NDR_CHECK(ndr_pull_array_size(ndr, &r->names));
5863 size_names_1 = ndr_get_array_size(ndr, &r->names);
5864 NDR_PULL_ALLOC_N(ndr, r->names, size_names_1);
5865 _mem_save_names_1 = NDR_PULL_GET_MEM_CTX(ndr);
5866 NDR_PULL_SET_MEM_CTX(ndr, r->names, 0);
5867 for (cntr_names_1 = 0; cntr_names_1 < size_names_1; cntr_names_1++) {
5868 NDR_CHECK(ndr_pull_drsuapi_DsNameString(ndr, NDR_SCALARS, &r->names[cntr_names_1]));
5870 for (cntr_names_1 = 0; cntr_names_1 < size_names_1; cntr_names_1++) {
5871 NDR_CHECK(ndr_pull_drsuapi_DsNameString(ndr, NDR_BUFFERS, &r->names[cntr_names_1]));
5873 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_names_1, 0);
5874 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_names_0, 0);
5876 if (r->names) {
5877 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->names, r->count));
5880 return NDR_ERR_SUCCESS;
5883 _PUBLIC_ void ndr_print_drsuapi_DsNameRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsNameRequest1 *r)
5885 uint32_t cntr_names_1;
5886 ndr_print_struct(ndr, name, "drsuapi_DsNameRequest1");
5887 ndr->depth++;
5888 ndr_print_uint32(ndr, "codepage", r->codepage);
5889 ndr_print_uint32(ndr, "language", r->language);
5890 ndr_print_drsuapi_DsNameFlags(ndr, "format_flags", r->format_flags);
5891 ndr_print_drsuapi_DsNameFormat(ndr, "format_offered", r->format_offered);
5892 ndr_print_drsuapi_DsNameFormat(ndr, "format_desired", r->format_desired);
5893 ndr_print_uint32(ndr, "count", r->count);
5894 ndr_print_ptr(ndr, "names", r->names);
5895 ndr->depth++;
5896 if (r->names) {
5897 ndr->print(ndr, "%s: ARRAY(%d)", "names", (int)r->count);
5898 ndr->depth++;
5899 for (cntr_names_1=0;cntr_names_1<r->count;cntr_names_1++) {
5900 char *idx_1=NULL;
5901 if (asprintf(&idx_1, "[%d]", cntr_names_1) != -1) {
5902 ndr_print_drsuapi_DsNameString(ndr, "names", &r->names[cntr_names_1]);
5903 free(idx_1);
5906 ndr->depth--;
5908 ndr->depth--;
5909 ndr->depth--;
5912 static enum ndr_err_code ndr_push_drsuapi_DsNameRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsNameRequest *r)
5914 if (ndr_flags & NDR_SCALARS) {
5915 int level = ndr_push_get_switch_value(ndr, r);
5916 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
5917 NDR_CHECK(ndr_push_union_align(ndr, 5));
5918 switch (level) {
5919 case 1: {
5920 NDR_CHECK(ndr_push_drsuapi_DsNameRequest1(ndr, NDR_SCALARS, &r->req1));
5921 break; }
5923 default:
5924 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5927 if (ndr_flags & NDR_BUFFERS) {
5928 int level = ndr_push_get_switch_value(ndr, r);
5929 switch (level) {
5930 case 1:
5931 NDR_CHECK(ndr_push_drsuapi_DsNameRequest1(ndr, NDR_BUFFERS, &r->req1));
5932 break;
5934 default:
5935 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5938 return NDR_ERR_SUCCESS;
5941 static enum ndr_err_code ndr_pull_drsuapi_DsNameRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsNameRequest *r)
5943 int level;
5944 int32_t _level;
5945 level = ndr_pull_get_switch_value(ndr, r);
5946 if (ndr_flags & NDR_SCALARS) {
5947 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
5948 if (_level != level) {
5949 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
5951 NDR_CHECK(ndr_pull_union_align(ndr, 5));
5952 switch (level) {
5953 case 1: {
5954 NDR_CHECK(ndr_pull_drsuapi_DsNameRequest1(ndr, NDR_SCALARS, &r->req1));
5955 break; }
5957 default:
5958 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5961 if (ndr_flags & NDR_BUFFERS) {
5962 switch (level) {
5963 case 1:
5964 NDR_CHECK(ndr_pull_drsuapi_DsNameRequest1(ndr, NDR_BUFFERS, &r->req1));
5965 break;
5967 default:
5968 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
5971 return NDR_ERR_SUCCESS;
5974 _PUBLIC_ void ndr_print_drsuapi_DsNameRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsNameRequest *r)
5976 int level;
5977 level = ndr_print_get_switch_value(ndr, r);
5978 ndr_print_union(ndr, name, level, "drsuapi_DsNameRequest");
5979 switch (level) {
5980 case 1:
5981 ndr_print_drsuapi_DsNameRequest1(ndr, "req1", &r->req1);
5982 break;
5984 default:
5985 ndr_print_bad_level(ndr, name, level);
5989 static enum ndr_err_code ndr_push_drsuapi_DsNameInfo1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsNameInfo1 *r)
5991 if (ndr_flags & NDR_SCALARS) {
5992 NDR_CHECK(ndr_push_align(ndr, 5));
5993 NDR_CHECK(ndr_push_drsuapi_DsNameStatus(ndr, NDR_SCALARS, r->status));
5994 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_domain_name));
5995 NDR_CHECK(ndr_push_unique_ptr(ndr, r->result_name));
5996 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5998 if (ndr_flags & NDR_BUFFERS) {
5999 if (r->dns_domain_name) {
6000 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dns_domain_name, CH_UTF16)));
6001 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6002 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dns_domain_name, CH_UTF16)));
6003 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dns_domain_name, ndr_charset_length(r->dns_domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6005 if (r->result_name) {
6006 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->result_name, CH_UTF16)));
6007 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6008 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->result_name, CH_UTF16)));
6009 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->result_name, ndr_charset_length(r->result_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6012 return NDR_ERR_SUCCESS;
6015 static enum ndr_err_code ndr_pull_drsuapi_DsNameInfo1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsNameInfo1 *r)
6017 uint32_t _ptr_dns_domain_name;
6018 uint32_t size_dns_domain_name_1 = 0;
6019 uint32_t length_dns_domain_name_1 = 0;
6020 TALLOC_CTX *_mem_save_dns_domain_name_0;
6021 uint32_t _ptr_result_name;
6022 uint32_t size_result_name_1 = 0;
6023 uint32_t length_result_name_1 = 0;
6024 TALLOC_CTX *_mem_save_result_name_0;
6025 if (ndr_flags & NDR_SCALARS) {
6026 NDR_CHECK(ndr_pull_align(ndr, 5));
6027 NDR_CHECK(ndr_pull_drsuapi_DsNameStatus(ndr, NDR_SCALARS, &r->status));
6028 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_domain_name));
6029 if (_ptr_dns_domain_name) {
6030 NDR_PULL_ALLOC(ndr, r->dns_domain_name);
6031 } else {
6032 r->dns_domain_name = NULL;
6034 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_result_name));
6035 if (_ptr_result_name) {
6036 NDR_PULL_ALLOC(ndr, r->result_name);
6037 } else {
6038 r->result_name = NULL;
6040 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6042 if (ndr_flags & NDR_BUFFERS) {
6043 if (r->dns_domain_name) {
6044 _mem_save_dns_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6045 NDR_PULL_SET_MEM_CTX(ndr, r->dns_domain_name, 0);
6046 NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_domain_name));
6047 NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_domain_name));
6048 size_dns_domain_name_1 = ndr_get_array_size(ndr, &r->dns_domain_name);
6049 length_dns_domain_name_1 = ndr_get_array_length(ndr, &r->dns_domain_name);
6050 if (length_dns_domain_name_1 > size_dns_domain_name_1) {
6051 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_dns_domain_name_1, length_dns_domain_name_1);
6053 NDR_CHECK(ndr_check_string_terminator(ndr, length_dns_domain_name_1, sizeof(uint16_t)));
6054 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_domain_name, length_dns_domain_name_1, sizeof(uint16_t), CH_UTF16));
6055 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_domain_name_0, 0);
6057 if (r->result_name) {
6058 _mem_save_result_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6059 NDR_PULL_SET_MEM_CTX(ndr, r->result_name, 0);
6060 NDR_CHECK(ndr_pull_array_size(ndr, &r->result_name));
6061 NDR_CHECK(ndr_pull_array_length(ndr, &r->result_name));
6062 size_result_name_1 = ndr_get_array_size(ndr, &r->result_name);
6063 length_result_name_1 = ndr_get_array_length(ndr, &r->result_name);
6064 if (length_result_name_1 > size_result_name_1) {
6065 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_result_name_1, length_result_name_1);
6067 NDR_CHECK(ndr_check_string_terminator(ndr, length_result_name_1, sizeof(uint16_t)));
6068 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->result_name, length_result_name_1, sizeof(uint16_t), CH_UTF16));
6069 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_result_name_0, 0);
6072 return NDR_ERR_SUCCESS;
6075 _PUBLIC_ void ndr_print_drsuapi_DsNameInfo1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsNameInfo1 *r)
6077 ndr_print_struct(ndr, name, "drsuapi_DsNameInfo1");
6078 ndr->depth++;
6079 ndr_print_drsuapi_DsNameStatus(ndr, "status", r->status);
6080 ndr_print_ptr(ndr, "dns_domain_name", r->dns_domain_name);
6081 ndr->depth++;
6082 if (r->dns_domain_name) {
6083 ndr_print_string(ndr, "dns_domain_name", r->dns_domain_name);
6085 ndr->depth--;
6086 ndr_print_ptr(ndr, "result_name", r->result_name);
6087 ndr->depth++;
6088 if (r->result_name) {
6089 ndr_print_string(ndr, "result_name", r->result_name);
6091 ndr->depth--;
6092 ndr->depth--;
6095 static enum ndr_err_code ndr_push_drsuapi_DsNameCtr1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsNameCtr1 *r)
6097 uint32_t cntr_array_1;
6098 if (ndr_flags & NDR_SCALARS) {
6099 NDR_CHECK(ndr_push_align(ndr, 5));
6100 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
6101 NDR_CHECK(ndr_push_unique_ptr(ndr, r->array));
6102 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6104 if (ndr_flags & NDR_BUFFERS) {
6105 if (r->array) {
6106 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
6107 for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
6108 NDR_CHECK(ndr_push_drsuapi_DsNameInfo1(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
6110 for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
6111 NDR_CHECK(ndr_push_drsuapi_DsNameInfo1(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
6115 return NDR_ERR_SUCCESS;
6118 static enum ndr_err_code ndr_pull_drsuapi_DsNameCtr1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsNameCtr1 *r)
6120 uint32_t _ptr_array;
6121 uint32_t size_array_1 = 0;
6122 uint32_t cntr_array_1;
6123 TALLOC_CTX *_mem_save_array_0;
6124 TALLOC_CTX *_mem_save_array_1;
6125 if (ndr_flags & NDR_SCALARS) {
6126 NDR_CHECK(ndr_pull_align(ndr, 5));
6127 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
6128 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array));
6129 if (_ptr_array) {
6130 NDR_PULL_ALLOC(ndr, r->array);
6131 } else {
6132 r->array = NULL;
6134 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6136 if (ndr_flags & NDR_BUFFERS) {
6137 if (r->array) {
6138 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
6139 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
6140 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
6141 size_array_1 = ndr_get_array_size(ndr, &r->array);
6142 NDR_PULL_ALLOC_N(ndr, r->array, size_array_1);
6143 _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
6144 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
6145 for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) {
6146 NDR_CHECK(ndr_pull_drsuapi_DsNameInfo1(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
6148 for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) {
6149 NDR_CHECK(ndr_pull_drsuapi_DsNameInfo1(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
6151 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0);
6152 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
6154 if (r->array) {
6155 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
6158 return NDR_ERR_SUCCESS;
6161 _PUBLIC_ void ndr_print_drsuapi_DsNameCtr1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsNameCtr1 *r)
6163 uint32_t cntr_array_1;
6164 ndr_print_struct(ndr, name, "drsuapi_DsNameCtr1");
6165 ndr->depth++;
6166 ndr_print_uint32(ndr, "count", r->count);
6167 ndr_print_ptr(ndr, "array", r->array);
6168 ndr->depth++;
6169 if (r->array) {
6170 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
6171 ndr->depth++;
6172 for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
6173 char *idx_1=NULL;
6174 if (asprintf(&idx_1, "[%d]", cntr_array_1) != -1) {
6175 ndr_print_drsuapi_DsNameInfo1(ndr, "array", &r->array[cntr_array_1]);
6176 free(idx_1);
6179 ndr->depth--;
6181 ndr->depth--;
6182 ndr->depth--;
6185 static enum ndr_err_code ndr_push_drsuapi_DsNameCtr(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsNameCtr *r)
6187 if (ndr_flags & NDR_SCALARS) {
6188 int level = ndr_push_get_switch_value(ndr, r);
6189 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
6190 NDR_CHECK(ndr_push_union_align(ndr, 5));
6191 switch (level) {
6192 case 1: {
6193 NDR_CHECK(ndr_push_unique_ptr(ndr, r->ctr1));
6194 break; }
6196 default:
6197 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6200 if (ndr_flags & NDR_BUFFERS) {
6201 int level = ndr_push_get_switch_value(ndr, r);
6202 switch (level) {
6203 case 1:
6204 if (r->ctr1) {
6205 NDR_CHECK(ndr_push_drsuapi_DsNameCtr1(ndr, NDR_SCALARS|NDR_BUFFERS, r->ctr1));
6207 break;
6209 default:
6210 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6213 return NDR_ERR_SUCCESS;
6216 static enum ndr_err_code ndr_pull_drsuapi_DsNameCtr(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsNameCtr *r)
6218 int level;
6219 int32_t _level;
6220 TALLOC_CTX *_mem_save_ctr1_0;
6221 uint32_t _ptr_ctr1;
6222 level = ndr_pull_get_switch_value(ndr, r);
6223 if (ndr_flags & NDR_SCALARS) {
6224 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
6225 if (_level != level) {
6226 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
6228 NDR_CHECK(ndr_pull_union_align(ndr, 5));
6229 switch (level) {
6230 case 1: {
6231 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr1));
6232 if (_ptr_ctr1) {
6233 NDR_PULL_ALLOC(ndr, r->ctr1);
6234 } else {
6235 r->ctr1 = NULL;
6237 break; }
6239 default:
6240 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6243 if (ndr_flags & NDR_BUFFERS) {
6244 switch (level) {
6245 case 1:
6246 if (r->ctr1) {
6247 _mem_save_ctr1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6248 NDR_PULL_SET_MEM_CTX(ndr, r->ctr1, 0);
6249 NDR_CHECK(ndr_pull_drsuapi_DsNameCtr1(ndr, NDR_SCALARS|NDR_BUFFERS, r->ctr1));
6250 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr1_0, 0);
6252 break;
6254 default:
6255 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6258 return NDR_ERR_SUCCESS;
6261 _PUBLIC_ void ndr_print_drsuapi_DsNameCtr(struct ndr_print *ndr, const char *name, const union drsuapi_DsNameCtr *r)
6263 int level;
6264 level = ndr_print_get_switch_value(ndr, r);
6265 ndr_print_union(ndr, name, level, "drsuapi_DsNameCtr");
6266 switch (level) {
6267 case 1:
6268 ndr_print_ptr(ndr, "ctr1", r->ctr1);
6269 ndr->depth++;
6270 if (r->ctr1) {
6271 ndr_print_drsuapi_DsNameCtr1(ndr, "ctr1", r->ctr1);
6273 ndr->depth--;
6274 break;
6276 default:
6277 ndr_print_bad_level(ndr, name, level);
6281 static enum ndr_err_code ndr_push_drsuapi_DsSpnOperation(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsSpnOperation r)
6283 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
6284 return NDR_ERR_SUCCESS;
6287 static enum ndr_err_code ndr_pull_drsuapi_DsSpnOperation(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsSpnOperation *r)
6289 uint32_t v;
6290 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
6291 *r = v;
6292 return NDR_ERR_SUCCESS;
6295 _PUBLIC_ void ndr_print_drsuapi_DsSpnOperation(struct ndr_print *ndr, const char *name, enum drsuapi_DsSpnOperation r)
6297 const char *val = NULL;
6299 switch (r) {
6300 case DRSUAPI_DS_SPN_OPERATION_ADD: val = "DRSUAPI_DS_SPN_OPERATION_ADD"; break;
6301 case DRSUAPI_DS_SPN_OPERATION_REPLACE: val = "DRSUAPI_DS_SPN_OPERATION_REPLACE"; break;
6302 case DRSUAPI_DS_SPN_OPERATION_DELETE: val = "DRSUAPI_DS_SPN_OPERATION_DELETE"; break;
6304 ndr_print_enum(ndr, name, "ENUM", val, r);
6307 static enum ndr_err_code ndr_push_drsuapi_DsWriteAccountSpnRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsWriteAccountSpnRequest1 *r)
6309 uint32_t cntr_spn_names_1;
6310 if (ndr_flags & NDR_SCALARS) {
6311 NDR_CHECK(ndr_push_align(ndr, 5));
6312 NDR_CHECK(ndr_push_drsuapi_DsSpnOperation(ndr, NDR_SCALARS, r->operation));
6313 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
6314 NDR_CHECK(ndr_push_unique_ptr(ndr, r->object_dn));
6315 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
6316 NDR_CHECK(ndr_push_unique_ptr(ndr, r->spn_names));
6317 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6319 if (ndr_flags & NDR_BUFFERS) {
6320 if (r->object_dn) {
6321 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
6322 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6323 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
6324 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->object_dn, ndr_charset_length(r->object_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6326 if (r->spn_names) {
6327 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
6328 for (cntr_spn_names_1 = 0; cntr_spn_names_1 < r->count; cntr_spn_names_1++) {
6329 NDR_CHECK(ndr_push_drsuapi_DsNameString(ndr, NDR_SCALARS, &r->spn_names[cntr_spn_names_1]));
6331 for (cntr_spn_names_1 = 0; cntr_spn_names_1 < r->count; cntr_spn_names_1++) {
6332 NDR_CHECK(ndr_push_drsuapi_DsNameString(ndr, NDR_BUFFERS, &r->spn_names[cntr_spn_names_1]));
6336 return NDR_ERR_SUCCESS;
6339 static enum ndr_err_code ndr_pull_drsuapi_DsWriteAccountSpnRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsWriteAccountSpnRequest1 *r)
6341 uint32_t _ptr_object_dn;
6342 uint32_t size_object_dn_1 = 0;
6343 uint32_t length_object_dn_1 = 0;
6344 TALLOC_CTX *_mem_save_object_dn_0;
6345 uint32_t _ptr_spn_names;
6346 uint32_t size_spn_names_1 = 0;
6347 uint32_t cntr_spn_names_1;
6348 TALLOC_CTX *_mem_save_spn_names_0;
6349 TALLOC_CTX *_mem_save_spn_names_1;
6350 if (ndr_flags & NDR_SCALARS) {
6351 NDR_CHECK(ndr_pull_align(ndr, 5));
6352 NDR_CHECK(ndr_pull_drsuapi_DsSpnOperation(ndr, NDR_SCALARS, &r->operation));
6353 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
6354 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_object_dn));
6355 if (_ptr_object_dn) {
6356 NDR_PULL_ALLOC(ndr, r->object_dn);
6357 } else {
6358 r->object_dn = NULL;
6360 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
6361 if (r->count > 10000) {
6362 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
6364 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_spn_names));
6365 if (_ptr_spn_names) {
6366 NDR_PULL_ALLOC(ndr, r->spn_names);
6367 } else {
6368 r->spn_names = NULL;
6370 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6372 if (ndr_flags & NDR_BUFFERS) {
6373 if (r->object_dn) {
6374 _mem_save_object_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
6375 NDR_PULL_SET_MEM_CTX(ndr, r->object_dn, 0);
6376 NDR_CHECK(ndr_pull_array_size(ndr, &r->object_dn));
6377 NDR_CHECK(ndr_pull_array_length(ndr, &r->object_dn));
6378 size_object_dn_1 = ndr_get_array_size(ndr, &r->object_dn);
6379 length_object_dn_1 = ndr_get_array_length(ndr, &r->object_dn);
6380 if (length_object_dn_1 > size_object_dn_1) {
6381 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_object_dn_1, length_object_dn_1);
6383 NDR_CHECK(ndr_check_string_terminator(ndr, length_object_dn_1, sizeof(uint16_t)));
6384 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->object_dn, length_object_dn_1, sizeof(uint16_t), CH_UTF16));
6385 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_object_dn_0, 0);
6387 if (r->spn_names) {
6388 _mem_save_spn_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
6389 NDR_PULL_SET_MEM_CTX(ndr, r->spn_names, 0);
6390 NDR_CHECK(ndr_pull_array_size(ndr, &r->spn_names));
6391 size_spn_names_1 = ndr_get_array_size(ndr, &r->spn_names);
6392 NDR_PULL_ALLOC_N(ndr, r->spn_names, size_spn_names_1);
6393 _mem_save_spn_names_1 = NDR_PULL_GET_MEM_CTX(ndr);
6394 NDR_PULL_SET_MEM_CTX(ndr, r->spn_names, 0);
6395 for (cntr_spn_names_1 = 0; cntr_spn_names_1 < size_spn_names_1; cntr_spn_names_1++) {
6396 NDR_CHECK(ndr_pull_drsuapi_DsNameString(ndr, NDR_SCALARS, &r->spn_names[cntr_spn_names_1]));
6398 for (cntr_spn_names_1 = 0; cntr_spn_names_1 < size_spn_names_1; cntr_spn_names_1++) {
6399 NDR_CHECK(ndr_pull_drsuapi_DsNameString(ndr, NDR_BUFFERS, &r->spn_names[cntr_spn_names_1]));
6401 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_spn_names_1, 0);
6402 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_spn_names_0, 0);
6404 if (r->spn_names) {
6405 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->spn_names, r->count));
6408 return NDR_ERR_SUCCESS;
6411 _PUBLIC_ void ndr_print_drsuapi_DsWriteAccountSpnRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsWriteAccountSpnRequest1 *r)
6413 uint32_t cntr_spn_names_1;
6414 ndr_print_struct(ndr, name, "drsuapi_DsWriteAccountSpnRequest1");
6415 ndr->depth++;
6416 ndr_print_drsuapi_DsSpnOperation(ndr, "operation", r->operation);
6417 ndr_print_uint32(ndr, "unknown1", r->unknown1);
6418 ndr_print_ptr(ndr, "object_dn", r->object_dn);
6419 ndr->depth++;
6420 if (r->object_dn) {
6421 ndr_print_string(ndr, "object_dn", r->object_dn);
6423 ndr->depth--;
6424 ndr_print_uint32(ndr, "count", r->count);
6425 ndr_print_ptr(ndr, "spn_names", r->spn_names);
6426 ndr->depth++;
6427 if (r->spn_names) {
6428 ndr->print(ndr, "%s: ARRAY(%d)", "spn_names", (int)r->count);
6429 ndr->depth++;
6430 for (cntr_spn_names_1=0;cntr_spn_names_1<r->count;cntr_spn_names_1++) {
6431 char *idx_1=NULL;
6432 if (asprintf(&idx_1, "[%d]", cntr_spn_names_1) != -1) {
6433 ndr_print_drsuapi_DsNameString(ndr, "spn_names", &r->spn_names[cntr_spn_names_1]);
6434 free(idx_1);
6437 ndr->depth--;
6439 ndr->depth--;
6440 ndr->depth--;
6443 static enum ndr_err_code ndr_push_drsuapi_DsWriteAccountSpnRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsWriteAccountSpnRequest *r)
6445 if (ndr_flags & NDR_SCALARS) {
6446 int level = ndr_push_get_switch_value(ndr, r);
6447 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
6448 NDR_CHECK(ndr_push_union_align(ndr, 5));
6449 switch (level) {
6450 case 1: {
6451 NDR_CHECK(ndr_push_drsuapi_DsWriteAccountSpnRequest1(ndr, NDR_SCALARS, &r->req1));
6452 break; }
6454 default:
6455 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6458 if (ndr_flags & NDR_BUFFERS) {
6459 int level = ndr_push_get_switch_value(ndr, r);
6460 switch (level) {
6461 case 1:
6462 NDR_CHECK(ndr_push_drsuapi_DsWriteAccountSpnRequest1(ndr, NDR_BUFFERS, &r->req1));
6463 break;
6465 default:
6466 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6469 return NDR_ERR_SUCCESS;
6472 static enum ndr_err_code ndr_pull_drsuapi_DsWriteAccountSpnRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsWriteAccountSpnRequest *r)
6474 int level;
6475 int32_t _level;
6476 level = ndr_pull_get_switch_value(ndr, r);
6477 if (ndr_flags & NDR_SCALARS) {
6478 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
6479 if (_level != level) {
6480 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
6482 NDR_CHECK(ndr_pull_union_align(ndr, 5));
6483 switch (level) {
6484 case 1: {
6485 NDR_CHECK(ndr_pull_drsuapi_DsWriteAccountSpnRequest1(ndr, NDR_SCALARS, &r->req1));
6486 break; }
6488 default:
6489 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6492 if (ndr_flags & NDR_BUFFERS) {
6493 switch (level) {
6494 case 1:
6495 NDR_CHECK(ndr_pull_drsuapi_DsWriteAccountSpnRequest1(ndr, NDR_BUFFERS, &r->req1));
6496 break;
6498 default:
6499 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6502 return NDR_ERR_SUCCESS;
6505 _PUBLIC_ void ndr_print_drsuapi_DsWriteAccountSpnRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsWriteAccountSpnRequest *r)
6507 int level;
6508 level = ndr_print_get_switch_value(ndr, r);
6509 ndr_print_union(ndr, name, level, "drsuapi_DsWriteAccountSpnRequest");
6510 switch (level) {
6511 case 1:
6512 ndr_print_drsuapi_DsWriteAccountSpnRequest1(ndr, "req1", &r->req1);
6513 break;
6515 default:
6516 ndr_print_bad_level(ndr, name, level);
6520 static enum ndr_err_code ndr_push_drsuapi_DsWriteAccountSpnResult1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsWriteAccountSpnResult1 *r)
6522 if (ndr_flags & NDR_SCALARS) {
6523 NDR_CHECK(ndr_push_align(ndr, 4));
6524 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->status));
6525 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
6527 if (ndr_flags & NDR_BUFFERS) {
6529 return NDR_ERR_SUCCESS;
6532 static enum ndr_err_code ndr_pull_drsuapi_DsWriteAccountSpnResult1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsWriteAccountSpnResult1 *r)
6534 if (ndr_flags & NDR_SCALARS) {
6535 NDR_CHECK(ndr_pull_align(ndr, 4));
6536 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->status));
6537 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
6539 if (ndr_flags & NDR_BUFFERS) {
6541 return NDR_ERR_SUCCESS;
6544 _PUBLIC_ void ndr_print_drsuapi_DsWriteAccountSpnResult1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsWriteAccountSpnResult1 *r)
6546 ndr_print_struct(ndr, name, "drsuapi_DsWriteAccountSpnResult1");
6547 ndr->depth++;
6548 ndr_print_WERROR(ndr, "status", r->status);
6549 ndr->depth--;
6552 static enum ndr_err_code ndr_push_drsuapi_DsWriteAccountSpnResult(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsWriteAccountSpnResult *r)
6554 if (ndr_flags & NDR_SCALARS) {
6555 int level = ndr_push_get_switch_value(ndr, r);
6556 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
6557 NDR_CHECK(ndr_push_union_align(ndr, 4));
6558 switch (level) {
6559 case 1: {
6560 NDR_CHECK(ndr_push_drsuapi_DsWriteAccountSpnResult1(ndr, NDR_SCALARS, &r->res1));
6561 break; }
6563 default:
6564 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6567 if (ndr_flags & NDR_BUFFERS) {
6568 int level = ndr_push_get_switch_value(ndr, r);
6569 switch (level) {
6570 case 1:
6571 break;
6573 default:
6574 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6577 return NDR_ERR_SUCCESS;
6580 static enum ndr_err_code ndr_pull_drsuapi_DsWriteAccountSpnResult(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsWriteAccountSpnResult *r)
6582 int level;
6583 int32_t _level;
6584 level = ndr_pull_get_switch_value(ndr, r);
6585 if (ndr_flags & NDR_SCALARS) {
6586 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
6587 if (_level != level) {
6588 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
6590 NDR_CHECK(ndr_pull_union_align(ndr, 4));
6591 switch (level) {
6592 case 1: {
6593 NDR_CHECK(ndr_pull_drsuapi_DsWriteAccountSpnResult1(ndr, NDR_SCALARS, &r->res1));
6594 break; }
6596 default:
6597 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6600 if (ndr_flags & NDR_BUFFERS) {
6601 switch (level) {
6602 case 1:
6603 break;
6605 default:
6606 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6609 return NDR_ERR_SUCCESS;
6612 _PUBLIC_ void ndr_print_drsuapi_DsWriteAccountSpnResult(struct ndr_print *ndr, const char *name, const union drsuapi_DsWriteAccountSpnResult *r)
6614 int level;
6615 level = ndr_print_get_switch_value(ndr, r);
6616 ndr_print_union(ndr, name, level, "drsuapi_DsWriteAccountSpnResult");
6617 switch (level) {
6618 case 1:
6619 ndr_print_drsuapi_DsWriteAccountSpnResult1(ndr, "res1", &r->res1);
6620 break;
6622 default:
6623 ndr_print_bad_level(ndr, name, level);
6627 static enum ndr_err_code ndr_push_drsuapi_DsRemoveDSServerRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsRemoveDSServerRequest1 *r)
6629 if (ndr_flags & NDR_SCALARS) {
6630 NDR_CHECK(ndr_push_align(ndr, 5));
6631 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_dn));
6632 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_dn));
6633 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->commit));
6634 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6636 if (ndr_flags & NDR_BUFFERS) {
6637 if (r->server_dn) {
6638 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_dn, CH_UTF16)));
6639 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6640 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_dn, CH_UTF16)));
6641 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_dn, ndr_charset_length(r->server_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6643 if (r->domain_dn) {
6644 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->domain_dn, CH_UTF16)));
6645 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6646 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->domain_dn, CH_UTF16)));
6647 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain_dn, ndr_charset_length(r->domain_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6650 return NDR_ERR_SUCCESS;
6653 static enum ndr_err_code ndr_pull_drsuapi_DsRemoveDSServerRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsRemoveDSServerRequest1 *r)
6655 uint32_t _ptr_server_dn;
6656 uint32_t size_server_dn_1 = 0;
6657 uint32_t length_server_dn_1 = 0;
6658 TALLOC_CTX *_mem_save_server_dn_0;
6659 uint32_t _ptr_domain_dn;
6660 uint32_t size_domain_dn_1 = 0;
6661 uint32_t length_domain_dn_1 = 0;
6662 TALLOC_CTX *_mem_save_domain_dn_0;
6663 if (ndr_flags & NDR_SCALARS) {
6664 NDR_CHECK(ndr_pull_align(ndr, 5));
6665 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_dn));
6666 if (_ptr_server_dn) {
6667 NDR_PULL_ALLOC(ndr, r->server_dn);
6668 } else {
6669 r->server_dn = NULL;
6671 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_dn));
6672 if (_ptr_domain_dn) {
6673 NDR_PULL_ALLOC(ndr, r->domain_dn);
6674 } else {
6675 r->domain_dn = NULL;
6677 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->commit));
6678 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6680 if (ndr_flags & NDR_BUFFERS) {
6681 if (r->server_dn) {
6682 _mem_save_server_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
6683 NDR_PULL_SET_MEM_CTX(ndr, r->server_dn, 0);
6684 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_dn));
6685 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_dn));
6686 size_server_dn_1 = ndr_get_array_size(ndr, &r->server_dn);
6687 length_server_dn_1 = ndr_get_array_length(ndr, &r->server_dn);
6688 if (length_server_dn_1 > size_server_dn_1) {
6689 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_dn_1, length_server_dn_1);
6691 NDR_CHECK(ndr_check_string_terminator(ndr, length_server_dn_1, sizeof(uint16_t)));
6692 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_dn, length_server_dn_1, sizeof(uint16_t), CH_UTF16));
6693 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_dn_0, 0);
6695 if (r->domain_dn) {
6696 _mem_save_domain_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
6697 NDR_PULL_SET_MEM_CTX(ndr, r->domain_dn, 0);
6698 NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_dn));
6699 NDR_CHECK(ndr_pull_array_length(ndr, &r->domain_dn));
6700 size_domain_dn_1 = ndr_get_array_size(ndr, &r->domain_dn);
6701 length_domain_dn_1 = ndr_get_array_length(ndr, &r->domain_dn);
6702 if (length_domain_dn_1 > size_domain_dn_1) {
6703 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_domain_dn_1, length_domain_dn_1);
6705 NDR_CHECK(ndr_check_string_terminator(ndr, length_domain_dn_1, sizeof(uint16_t)));
6706 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_dn, length_domain_dn_1, sizeof(uint16_t), CH_UTF16));
6707 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_dn_0, 0);
6710 return NDR_ERR_SUCCESS;
6713 _PUBLIC_ void ndr_print_drsuapi_DsRemoveDSServerRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsRemoveDSServerRequest1 *r)
6715 ndr_print_struct(ndr, name, "drsuapi_DsRemoveDSServerRequest1");
6716 ndr->depth++;
6717 ndr_print_ptr(ndr, "server_dn", r->server_dn);
6718 ndr->depth++;
6719 if (r->server_dn) {
6720 ndr_print_string(ndr, "server_dn", r->server_dn);
6722 ndr->depth--;
6723 ndr_print_ptr(ndr, "domain_dn", r->domain_dn);
6724 ndr->depth++;
6725 if (r->domain_dn) {
6726 ndr_print_string(ndr, "domain_dn", r->domain_dn);
6728 ndr->depth--;
6729 ndr_print_uint32(ndr, "commit", r->commit);
6730 ndr->depth--;
6733 static enum ndr_err_code ndr_push_drsuapi_DsRemoveDSServerRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsRemoveDSServerRequest *r)
6735 if (ndr_flags & NDR_SCALARS) {
6736 int level = ndr_push_get_switch_value(ndr, r);
6737 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
6738 NDR_CHECK(ndr_push_union_align(ndr, 5));
6739 switch (level) {
6740 case 1: {
6741 NDR_CHECK(ndr_push_drsuapi_DsRemoveDSServerRequest1(ndr, NDR_SCALARS, &r->req1));
6742 break; }
6744 default:
6745 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6748 if (ndr_flags & NDR_BUFFERS) {
6749 int level = ndr_push_get_switch_value(ndr, r);
6750 switch (level) {
6751 case 1:
6752 NDR_CHECK(ndr_push_drsuapi_DsRemoveDSServerRequest1(ndr, NDR_BUFFERS, &r->req1));
6753 break;
6755 default:
6756 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6759 return NDR_ERR_SUCCESS;
6762 static enum ndr_err_code ndr_pull_drsuapi_DsRemoveDSServerRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsRemoveDSServerRequest *r)
6764 int level;
6765 int32_t _level;
6766 level = ndr_pull_get_switch_value(ndr, r);
6767 if (ndr_flags & NDR_SCALARS) {
6768 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
6769 if (_level != level) {
6770 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
6772 NDR_CHECK(ndr_pull_union_align(ndr, 5));
6773 switch (level) {
6774 case 1: {
6775 NDR_CHECK(ndr_pull_drsuapi_DsRemoveDSServerRequest1(ndr, NDR_SCALARS, &r->req1));
6776 break; }
6778 default:
6779 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6782 if (ndr_flags & NDR_BUFFERS) {
6783 switch (level) {
6784 case 1:
6785 NDR_CHECK(ndr_pull_drsuapi_DsRemoveDSServerRequest1(ndr, NDR_BUFFERS, &r->req1));
6786 break;
6788 default:
6789 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6792 return NDR_ERR_SUCCESS;
6795 _PUBLIC_ void ndr_print_drsuapi_DsRemoveDSServerRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsRemoveDSServerRequest *r)
6797 int level;
6798 level = ndr_print_get_switch_value(ndr, r);
6799 ndr_print_union(ndr, name, level, "drsuapi_DsRemoveDSServerRequest");
6800 switch (level) {
6801 case 1:
6802 ndr_print_drsuapi_DsRemoveDSServerRequest1(ndr, "req1", &r->req1);
6803 break;
6805 default:
6806 ndr_print_bad_level(ndr, name, level);
6810 static enum ndr_err_code ndr_push_drsuapi_DsRemoveDSServerResult1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsRemoveDSServerResult1 *r)
6812 if (ndr_flags & NDR_SCALARS) {
6813 NDR_CHECK(ndr_push_align(ndr, 4));
6814 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->last_dc_in_domain));
6815 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
6817 if (ndr_flags & NDR_BUFFERS) {
6819 return NDR_ERR_SUCCESS;
6822 static enum ndr_err_code ndr_pull_drsuapi_DsRemoveDSServerResult1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsRemoveDSServerResult1 *r)
6824 if (ndr_flags & NDR_SCALARS) {
6825 NDR_CHECK(ndr_pull_align(ndr, 4));
6826 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->last_dc_in_domain));
6827 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
6829 if (ndr_flags & NDR_BUFFERS) {
6831 return NDR_ERR_SUCCESS;
6834 _PUBLIC_ void ndr_print_drsuapi_DsRemoveDSServerResult1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsRemoveDSServerResult1 *r)
6836 ndr_print_struct(ndr, name, "drsuapi_DsRemoveDSServerResult1");
6837 ndr->depth++;
6838 ndr_print_uint32(ndr, "last_dc_in_domain", r->last_dc_in_domain);
6839 ndr->depth--;
6842 static enum ndr_err_code ndr_push_drsuapi_DsRemoveDSServerResult(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsRemoveDSServerResult *r)
6844 if (ndr_flags & NDR_SCALARS) {
6845 int level = ndr_push_get_switch_value(ndr, r);
6846 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
6847 NDR_CHECK(ndr_push_union_align(ndr, 4));
6848 switch (level) {
6849 case 1: {
6850 NDR_CHECK(ndr_push_drsuapi_DsRemoveDSServerResult1(ndr, NDR_SCALARS, &r->res1));
6851 break; }
6853 default:
6854 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6857 if (ndr_flags & NDR_BUFFERS) {
6858 int level = ndr_push_get_switch_value(ndr, r);
6859 switch (level) {
6860 case 1:
6861 break;
6863 default:
6864 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6867 return NDR_ERR_SUCCESS;
6870 static enum ndr_err_code ndr_pull_drsuapi_DsRemoveDSServerResult(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsRemoveDSServerResult *r)
6872 int level;
6873 int32_t _level;
6874 level = ndr_pull_get_switch_value(ndr, r);
6875 if (ndr_flags & NDR_SCALARS) {
6876 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
6877 if (_level != level) {
6878 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
6880 NDR_CHECK(ndr_pull_union_align(ndr, 4));
6881 switch (level) {
6882 case 1: {
6883 NDR_CHECK(ndr_pull_drsuapi_DsRemoveDSServerResult1(ndr, NDR_SCALARS, &r->res1));
6884 break; }
6886 default:
6887 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6890 if (ndr_flags & NDR_BUFFERS) {
6891 switch (level) {
6892 case 1:
6893 break;
6895 default:
6896 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
6899 return NDR_ERR_SUCCESS;
6902 _PUBLIC_ void ndr_print_drsuapi_DsRemoveDSServerResult(struct ndr_print *ndr, const char *name, const union drsuapi_DsRemoveDSServerResult *r)
6904 int level;
6905 level = ndr_print_get_switch_value(ndr, r);
6906 ndr_print_union(ndr, name, level, "drsuapi_DsRemoveDSServerResult");
6907 switch (level) {
6908 case 1:
6909 ndr_print_drsuapi_DsRemoveDSServerResult1(ndr, "res1", &r->res1);
6910 break;
6912 default:
6913 ndr_print_bad_level(ndr, name, level);
6917 static enum ndr_err_code ndr_push_drsuapi_DsGetDCInfoRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetDCInfoRequest1 *r)
6919 if (ndr_flags & NDR_SCALARS) {
6920 NDR_CHECK(ndr_push_align(ndr, 5));
6921 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_name));
6922 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->level));
6923 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6925 if (ndr_flags & NDR_BUFFERS) {
6926 if (r->domain_name) {
6927 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
6928 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6929 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
6930 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain_name, ndr_charset_length(r->domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6933 return NDR_ERR_SUCCESS;
6936 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCInfoRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetDCInfoRequest1 *r)
6938 uint32_t _ptr_domain_name;
6939 uint32_t size_domain_name_1 = 0;
6940 uint32_t length_domain_name_1 = 0;
6941 TALLOC_CTX *_mem_save_domain_name_0;
6942 if (ndr_flags & NDR_SCALARS) {
6943 NDR_CHECK(ndr_pull_align(ndr, 5));
6944 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
6945 if (_ptr_domain_name) {
6946 NDR_PULL_ALLOC(ndr, r->domain_name);
6947 } else {
6948 r->domain_name = NULL;
6950 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->level));
6951 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6953 if (ndr_flags & NDR_BUFFERS) {
6954 if (r->domain_name) {
6955 _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6956 NDR_PULL_SET_MEM_CTX(ndr, r->domain_name, 0);
6957 NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_name));
6958 NDR_CHECK(ndr_pull_array_length(ndr, &r->domain_name));
6959 size_domain_name_1 = ndr_get_array_size(ndr, &r->domain_name);
6960 length_domain_name_1 = ndr_get_array_length(ndr, &r->domain_name);
6961 if (length_domain_name_1 > size_domain_name_1) {
6962 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_domain_name_1, length_domain_name_1);
6964 NDR_CHECK(ndr_check_string_terminator(ndr, length_domain_name_1, sizeof(uint16_t)));
6965 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_name, length_domain_name_1, sizeof(uint16_t), CH_UTF16));
6966 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
6969 return NDR_ERR_SUCCESS;
6972 _PUBLIC_ void ndr_print_drsuapi_DsGetDCInfoRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetDCInfoRequest1 *r)
6974 ndr_print_struct(ndr, name, "drsuapi_DsGetDCInfoRequest1");
6975 ndr->depth++;
6976 ndr_print_ptr(ndr, "domain_name", r->domain_name);
6977 ndr->depth++;
6978 if (r->domain_name) {
6979 ndr_print_string(ndr, "domain_name", r->domain_name);
6981 ndr->depth--;
6982 ndr_print_int32(ndr, "level", r->level);
6983 ndr->depth--;
6986 static enum ndr_err_code ndr_push_drsuapi_DsGetDCInfoRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetDCInfoRequest *r)
6988 if (ndr_flags & NDR_SCALARS) {
6989 int level = ndr_push_get_switch_value(ndr, r);
6990 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
6991 NDR_CHECK(ndr_push_union_align(ndr, 5));
6992 switch (level) {
6993 case 1: {
6994 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoRequest1(ndr, NDR_SCALARS, &r->req1));
6995 break; }
6997 default:
6998 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
7001 if (ndr_flags & NDR_BUFFERS) {
7002 int level = ndr_push_get_switch_value(ndr, r);
7003 switch (level) {
7004 case 1:
7005 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoRequest1(ndr, NDR_BUFFERS, &r->req1));
7006 break;
7008 default:
7009 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
7012 return NDR_ERR_SUCCESS;
7015 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCInfoRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetDCInfoRequest *r)
7017 int level;
7018 int32_t _level;
7019 level = ndr_pull_get_switch_value(ndr, r);
7020 if (ndr_flags & NDR_SCALARS) {
7021 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
7022 if (_level != level) {
7023 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
7025 NDR_CHECK(ndr_pull_union_align(ndr, 5));
7026 switch (level) {
7027 case 1: {
7028 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoRequest1(ndr, NDR_SCALARS, &r->req1));
7029 break; }
7031 default:
7032 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
7035 if (ndr_flags & NDR_BUFFERS) {
7036 switch (level) {
7037 case 1:
7038 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoRequest1(ndr, NDR_BUFFERS, &r->req1));
7039 break;
7041 default:
7042 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
7045 return NDR_ERR_SUCCESS;
7048 _PUBLIC_ void ndr_print_drsuapi_DsGetDCInfoRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetDCInfoRequest *r)
7050 int level;
7051 level = ndr_print_get_switch_value(ndr, r);
7052 ndr_print_union(ndr, name, level, "drsuapi_DsGetDCInfoRequest");
7053 switch (level) {
7054 case 1:
7055 ndr_print_drsuapi_DsGetDCInfoRequest1(ndr, "req1", &r->req1);
7056 break;
7058 default:
7059 ndr_print_bad_level(ndr, name, level);
7063 static enum ndr_err_code ndr_push_drsuapi_DsGetDCInfo1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetDCInfo1 *r)
7065 if (ndr_flags & NDR_SCALARS) {
7066 NDR_CHECK(ndr_push_align(ndr, 5));
7067 NDR_CHECK(ndr_push_unique_ptr(ndr, r->netbios_name));
7068 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_name));
7069 NDR_CHECK(ndr_push_unique_ptr(ndr, r->site_name));
7070 NDR_CHECK(ndr_push_unique_ptr(ndr, r->computer_dn));
7071 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_dn));
7072 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_pdc));
7073 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_enabled));
7074 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7076 if (ndr_flags & NDR_BUFFERS) {
7077 if (r->netbios_name) {
7078 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
7079 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7080 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
7081 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->netbios_name, ndr_charset_length(r->netbios_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7083 if (r->dns_name) {
7084 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
7085 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7086 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
7087 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dns_name, ndr_charset_length(r->dns_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7089 if (r->site_name) {
7090 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_name, CH_UTF16)));
7091 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7092 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_name, CH_UTF16)));
7093 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->site_name, ndr_charset_length(r->site_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7095 if (r->computer_dn) {
7096 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->computer_dn, CH_UTF16)));
7097 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7098 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->computer_dn, CH_UTF16)));
7099 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->computer_dn, ndr_charset_length(r->computer_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7101 if (r->server_dn) {
7102 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_dn, CH_UTF16)));
7103 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7104 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_dn, CH_UTF16)));
7105 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_dn, ndr_charset_length(r->server_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7108 return NDR_ERR_SUCCESS;
7111 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCInfo1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetDCInfo1 *r)
7113 uint32_t _ptr_netbios_name;
7114 uint32_t size_netbios_name_1 = 0;
7115 uint32_t length_netbios_name_1 = 0;
7116 TALLOC_CTX *_mem_save_netbios_name_0;
7117 uint32_t _ptr_dns_name;
7118 uint32_t size_dns_name_1 = 0;
7119 uint32_t length_dns_name_1 = 0;
7120 TALLOC_CTX *_mem_save_dns_name_0;
7121 uint32_t _ptr_site_name;
7122 uint32_t size_site_name_1 = 0;
7123 uint32_t length_site_name_1 = 0;
7124 TALLOC_CTX *_mem_save_site_name_0;
7125 uint32_t _ptr_computer_dn;
7126 uint32_t size_computer_dn_1 = 0;
7127 uint32_t length_computer_dn_1 = 0;
7128 TALLOC_CTX *_mem_save_computer_dn_0;
7129 uint32_t _ptr_server_dn;
7130 uint32_t size_server_dn_1 = 0;
7131 uint32_t length_server_dn_1 = 0;
7132 TALLOC_CTX *_mem_save_server_dn_0;
7133 if (ndr_flags & NDR_SCALARS) {
7134 NDR_CHECK(ndr_pull_align(ndr, 5));
7135 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_netbios_name));
7136 if (_ptr_netbios_name) {
7137 NDR_PULL_ALLOC(ndr, r->netbios_name);
7138 } else {
7139 r->netbios_name = NULL;
7141 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_name));
7142 if (_ptr_dns_name) {
7143 NDR_PULL_ALLOC(ndr, r->dns_name);
7144 } else {
7145 r->dns_name = NULL;
7147 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
7148 if (_ptr_site_name) {
7149 NDR_PULL_ALLOC(ndr, r->site_name);
7150 } else {
7151 r->site_name = NULL;
7153 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_dn));
7154 if (_ptr_computer_dn) {
7155 NDR_PULL_ALLOC(ndr, r->computer_dn);
7156 } else {
7157 r->computer_dn = NULL;
7159 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_dn));
7160 if (_ptr_server_dn) {
7161 NDR_PULL_ALLOC(ndr, r->server_dn);
7162 } else {
7163 r->server_dn = NULL;
7165 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_pdc));
7166 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_enabled));
7167 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7169 if (ndr_flags & NDR_BUFFERS) {
7170 if (r->netbios_name) {
7171 _mem_save_netbios_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7172 NDR_PULL_SET_MEM_CTX(ndr, r->netbios_name, 0);
7173 NDR_CHECK(ndr_pull_array_size(ndr, &r->netbios_name));
7174 NDR_CHECK(ndr_pull_array_length(ndr, &r->netbios_name));
7175 size_netbios_name_1 = ndr_get_array_size(ndr, &r->netbios_name);
7176 length_netbios_name_1 = ndr_get_array_length(ndr, &r->netbios_name);
7177 if (length_netbios_name_1 > size_netbios_name_1) {
7178 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_netbios_name_1, length_netbios_name_1);
7180 NDR_CHECK(ndr_check_string_terminator(ndr, length_netbios_name_1, sizeof(uint16_t)));
7181 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->netbios_name, length_netbios_name_1, sizeof(uint16_t), CH_UTF16));
7182 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_netbios_name_0, 0);
7184 if (r->dns_name) {
7185 _mem_save_dns_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7186 NDR_PULL_SET_MEM_CTX(ndr, r->dns_name, 0);
7187 NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_name));
7188 NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_name));
7189 size_dns_name_1 = ndr_get_array_size(ndr, &r->dns_name);
7190 length_dns_name_1 = ndr_get_array_length(ndr, &r->dns_name);
7191 if (length_dns_name_1 > size_dns_name_1) {
7192 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_dns_name_1, length_dns_name_1);
7194 NDR_CHECK(ndr_check_string_terminator(ndr, length_dns_name_1, sizeof(uint16_t)));
7195 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_name, length_dns_name_1, sizeof(uint16_t), CH_UTF16));
7196 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_name_0, 0);
7198 if (r->site_name) {
7199 _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7200 NDR_PULL_SET_MEM_CTX(ndr, r->site_name, 0);
7201 NDR_CHECK(ndr_pull_array_size(ndr, &r->site_name));
7202 NDR_CHECK(ndr_pull_array_length(ndr, &r->site_name));
7203 size_site_name_1 = ndr_get_array_size(ndr, &r->site_name);
7204 length_site_name_1 = ndr_get_array_length(ndr, &r->site_name);
7205 if (length_site_name_1 > size_site_name_1) {
7206 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_site_name_1, length_site_name_1);
7208 NDR_CHECK(ndr_check_string_terminator(ndr, length_site_name_1, sizeof(uint16_t)));
7209 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->site_name, length_site_name_1, sizeof(uint16_t), CH_UTF16));
7210 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
7212 if (r->computer_dn) {
7213 _mem_save_computer_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
7214 NDR_PULL_SET_MEM_CTX(ndr, r->computer_dn, 0);
7215 NDR_CHECK(ndr_pull_array_size(ndr, &r->computer_dn));
7216 NDR_CHECK(ndr_pull_array_length(ndr, &r->computer_dn));
7217 size_computer_dn_1 = ndr_get_array_size(ndr, &r->computer_dn);
7218 length_computer_dn_1 = ndr_get_array_length(ndr, &r->computer_dn);
7219 if (length_computer_dn_1 > size_computer_dn_1) {
7220 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_computer_dn_1, length_computer_dn_1);
7222 NDR_CHECK(ndr_check_string_terminator(ndr, length_computer_dn_1, sizeof(uint16_t)));
7223 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->computer_dn, length_computer_dn_1, sizeof(uint16_t), CH_UTF16));
7224 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_dn_0, 0);
7226 if (r->server_dn) {
7227 _mem_save_server_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
7228 NDR_PULL_SET_MEM_CTX(ndr, r->server_dn, 0);
7229 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_dn));
7230 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_dn));
7231 size_server_dn_1 = ndr_get_array_size(ndr, &r->server_dn);
7232 length_server_dn_1 = ndr_get_array_length(ndr, &r->server_dn);
7233 if (length_server_dn_1 > size_server_dn_1) {
7234 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_dn_1, length_server_dn_1);
7236 NDR_CHECK(ndr_check_string_terminator(ndr, length_server_dn_1, sizeof(uint16_t)));
7237 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_dn, length_server_dn_1, sizeof(uint16_t), CH_UTF16));
7238 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_dn_0, 0);
7241 return NDR_ERR_SUCCESS;
7244 _PUBLIC_ void ndr_print_drsuapi_DsGetDCInfo1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetDCInfo1 *r)
7246 ndr_print_struct(ndr, name, "drsuapi_DsGetDCInfo1");
7247 ndr->depth++;
7248 ndr_print_ptr(ndr, "netbios_name", r->netbios_name);
7249 ndr->depth++;
7250 if (r->netbios_name) {
7251 ndr_print_string(ndr, "netbios_name", r->netbios_name);
7253 ndr->depth--;
7254 ndr_print_ptr(ndr, "dns_name", r->dns_name);
7255 ndr->depth++;
7256 if (r->dns_name) {
7257 ndr_print_string(ndr, "dns_name", r->dns_name);
7259 ndr->depth--;
7260 ndr_print_ptr(ndr, "site_name", r->site_name);
7261 ndr->depth++;
7262 if (r->site_name) {
7263 ndr_print_string(ndr, "site_name", r->site_name);
7265 ndr->depth--;
7266 ndr_print_ptr(ndr, "computer_dn", r->computer_dn);
7267 ndr->depth++;
7268 if (r->computer_dn) {
7269 ndr_print_string(ndr, "computer_dn", r->computer_dn);
7271 ndr->depth--;
7272 ndr_print_ptr(ndr, "server_dn", r->server_dn);
7273 ndr->depth++;
7274 if (r->server_dn) {
7275 ndr_print_string(ndr, "server_dn", r->server_dn);
7277 ndr->depth--;
7278 ndr_print_uint32(ndr, "is_pdc", r->is_pdc);
7279 ndr_print_uint32(ndr, "is_enabled", r->is_enabled);
7280 ndr->depth--;
7283 static enum ndr_err_code ndr_push_drsuapi_DsGetDCInfoCtr1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetDCInfoCtr1 *r)
7285 uint32_t cntr_array_1;
7286 if (ndr_flags & NDR_SCALARS) {
7287 NDR_CHECK(ndr_push_align(ndr, 5));
7288 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7289 NDR_CHECK(ndr_push_unique_ptr(ndr, r->array));
7290 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7292 if (ndr_flags & NDR_BUFFERS) {
7293 if (r->array) {
7294 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
7295 for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7296 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfo1(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
7298 for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7299 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfo1(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
7303 return NDR_ERR_SUCCESS;
7306 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCInfoCtr1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetDCInfoCtr1 *r)
7308 uint32_t _ptr_array;
7309 uint32_t size_array_1 = 0;
7310 uint32_t cntr_array_1;
7311 TALLOC_CTX *_mem_save_array_0;
7312 TALLOC_CTX *_mem_save_array_1;
7313 if (ndr_flags & NDR_SCALARS) {
7314 NDR_CHECK(ndr_pull_align(ndr, 5));
7315 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
7316 if (r->count > 10000) {
7317 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
7319 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array));
7320 if (_ptr_array) {
7321 NDR_PULL_ALLOC(ndr, r->array);
7322 } else {
7323 r->array = NULL;
7325 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7327 if (ndr_flags & NDR_BUFFERS) {
7328 if (r->array) {
7329 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
7330 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
7331 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
7332 size_array_1 = ndr_get_array_size(ndr, &r->array);
7333 NDR_PULL_ALLOC_N(ndr, r->array, size_array_1);
7334 _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
7335 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
7336 for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) {
7337 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfo1(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
7339 for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) {
7340 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfo1(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
7342 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0);
7343 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
7345 if (r->array) {
7346 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
7349 return NDR_ERR_SUCCESS;
7352 _PUBLIC_ void ndr_print_drsuapi_DsGetDCInfoCtr1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetDCInfoCtr1 *r)
7354 uint32_t cntr_array_1;
7355 ndr_print_struct(ndr, name, "drsuapi_DsGetDCInfoCtr1");
7356 ndr->depth++;
7357 ndr_print_uint32(ndr, "count", r->count);
7358 ndr_print_ptr(ndr, "array", r->array);
7359 ndr->depth++;
7360 if (r->array) {
7361 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
7362 ndr->depth++;
7363 for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
7364 char *idx_1=NULL;
7365 if (asprintf(&idx_1, "[%d]", cntr_array_1) != -1) {
7366 ndr_print_drsuapi_DsGetDCInfo1(ndr, "array", &r->array[cntr_array_1]);
7367 free(idx_1);
7370 ndr->depth--;
7372 ndr->depth--;
7373 ndr->depth--;
7376 static enum ndr_err_code ndr_push_drsuapi_DsGetDCInfo2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetDCInfo2 *r)
7378 if (ndr_flags & NDR_SCALARS) {
7379 NDR_CHECK(ndr_push_align(ndr, 5));
7380 NDR_CHECK(ndr_push_unique_ptr(ndr, r->netbios_name));
7381 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_name));
7382 NDR_CHECK(ndr_push_unique_ptr(ndr, r->site_name));
7383 NDR_CHECK(ndr_push_unique_ptr(ndr, r->site_dn));
7384 NDR_CHECK(ndr_push_unique_ptr(ndr, r->computer_dn));
7385 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_dn));
7386 NDR_CHECK(ndr_push_unique_ptr(ndr, r->ntds_dn));
7387 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_pdc));
7388 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_enabled));
7389 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_gc));
7390 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->site_guid));
7391 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->computer_guid));
7392 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->server_guid));
7393 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->ntds_guid));
7394 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7396 if (ndr_flags & NDR_BUFFERS) {
7397 if (r->netbios_name) {
7398 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
7399 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7400 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
7401 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->netbios_name, ndr_charset_length(r->netbios_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7403 if (r->dns_name) {
7404 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
7405 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7406 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
7407 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dns_name, ndr_charset_length(r->dns_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7409 if (r->site_name) {
7410 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_name, CH_UTF16)));
7411 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7412 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_name, CH_UTF16)));
7413 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->site_name, ndr_charset_length(r->site_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7415 if (r->site_dn) {
7416 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_dn, CH_UTF16)));
7417 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7418 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_dn, CH_UTF16)));
7419 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->site_dn, ndr_charset_length(r->site_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7421 if (r->computer_dn) {
7422 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->computer_dn, CH_UTF16)));
7423 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7424 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->computer_dn, CH_UTF16)));
7425 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->computer_dn, ndr_charset_length(r->computer_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7427 if (r->server_dn) {
7428 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_dn, CH_UTF16)));
7429 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7430 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_dn, CH_UTF16)));
7431 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_dn, ndr_charset_length(r->server_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7433 if (r->ntds_dn) {
7434 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->ntds_dn, CH_UTF16)));
7435 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7436 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->ntds_dn, CH_UTF16)));
7437 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ntds_dn, ndr_charset_length(r->ntds_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7440 return NDR_ERR_SUCCESS;
7443 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCInfo2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetDCInfo2 *r)
7445 uint32_t _ptr_netbios_name;
7446 uint32_t size_netbios_name_1 = 0;
7447 uint32_t length_netbios_name_1 = 0;
7448 TALLOC_CTX *_mem_save_netbios_name_0;
7449 uint32_t _ptr_dns_name;
7450 uint32_t size_dns_name_1 = 0;
7451 uint32_t length_dns_name_1 = 0;
7452 TALLOC_CTX *_mem_save_dns_name_0;
7453 uint32_t _ptr_site_name;
7454 uint32_t size_site_name_1 = 0;
7455 uint32_t length_site_name_1 = 0;
7456 TALLOC_CTX *_mem_save_site_name_0;
7457 uint32_t _ptr_site_dn;
7458 uint32_t size_site_dn_1 = 0;
7459 uint32_t length_site_dn_1 = 0;
7460 TALLOC_CTX *_mem_save_site_dn_0;
7461 uint32_t _ptr_computer_dn;
7462 uint32_t size_computer_dn_1 = 0;
7463 uint32_t length_computer_dn_1 = 0;
7464 TALLOC_CTX *_mem_save_computer_dn_0;
7465 uint32_t _ptr_server_dn;
7466 uint32_t size_server_dn_1 = 0;
7467 uint32_t length_server_dn_1 = 0;
7468 TALLOC_CTX *_mem_save_server_dn_0;
7469 uint32_t _ptr_ntds_dn;
7470 uint32_t size_ntds_dn_1 = 0;
7471 uint32_t length_ntds_dn_1 = 0;
7472 TALLOC_CTX *_mem_save_ntds_dn_0;
7473 if (ndr_flags & NDR_SCALARS) {
7474 NDR_CHECK(ndr_pull_align(ndr, 5));
7475 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_netbios_name));
7476 if (_ptr_netbios_name) {
7477 NDR_PULL_ALLOC(ndr, r->netbios_name);
7478 } else {
7479 r->netbios_name = NULL;
7481 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_name));
7482 if (_ptr_dns_name) {
7483 NDR_PULL_ALLOC(ndr, r->dns_name);
7484 } else {
7485 r->dns_name = NULL;
7487 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
7488 if (_ptr_site_name) {
7489 NDR_PULL_ALLOC(ndr, r->site_name);
7490 } else {
7491 r->site_name = NULL;
7493 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_dn));
7494 if (_ptr_site_dn) {
7495 NDR_PULL_ALLOC(ndr, r->site_dn);
7496 } else {
7497 r->site_dn = NULL;
7499 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_dn));
7500 if (_ptr_computer_dn) {
7501 NDR_PULL_ALLOC(ndr, r->computer_dn);
7502 } else {
7503 r->computer_dn = NULL;
7505 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_dn));
7506 if (_ptr_server_dn) {
7507 NDR_PULL_ALLOC(ndr, r->server_dn);
7508 } else {
7509 r->server_dn = NULL;
7511 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ntds_dn));
7512 if (_ptr_ntds_dn) {
7513 NDR_PULL_ALLOC(ndr, r->ntds_dn);
7514 } else {
7515 r->ntds_dn = NULL;
7517 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_pdc));
7518 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_enabled));
7519 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_gc));
7520 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->site_guid));
7521 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->computer_guid));
7522 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->server_guid));
7523 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->ntds_guid));
7524 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7526 if (ndr_flags & NDR_BUFFERS) {
7527 if (r->netbios_name) {
7528 _mem_save_netbios_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7529 NDR_PULL_SET_MEM_CTX(ndr, r->netbios_name, 0);
7530 NDR_CHECK(ndr_pull_array_size(ndr, &r->netbios_name));
7531 NDR_CHECK(ndr_pull_array_length(ndr, &r->netbios_name));
7532 size_netbios_name_1 = ndr_get_array_size(ndr, &r->netbios_name);
7533 length_netbios_name_1 = ndr_get_array_length(ndr, &r->netbios_name);
7534 if (length_netbios_name_1 > size_netbios_name_1) {
7535 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_netbios_name_1, length_netbios_name_1);
7537 NDR_CHECK(ndr_check_string_terminator(ndr, length_netbios_name_1, sizeof(uint16_t)));
7538 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->netbios_name, length_netbios_name_1, sizeof(uint16_t), CH_UTF16));
7539 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_netbios_name_0, 0);
7541 if (r->dns_name) {
7542 _mem_save_dns_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7543 NDR_PULL_SET_MEM_CTX(ndr, r->dns_name, 0);
7544 NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_name));
7545 NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_name));
7546 size_dns_name_1 = ndr_get_array_size(ndr, &r->dns_name);
7547 length_dns_name_1 = ndr_get_array_length(ndr, &r->dns_name);
7548 if (length_dns_name_1 > size_dns_name_1) {
7549 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_dns_name_1, length_dns_name_1);
7551 NDR_CHECK(ndr_check_string_terminator(ndr, length_dns_name_1, sizeof(uint16_t)));
7552 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_name, length_dns_name_1, sizeof(uint16_t), CH_UTF16));
7553 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_name_0, 0);
7555 if (r->site_name) {
7556 _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7557 NDR_PULL_SET_MEM_CTX(ndr, r->site_name, 0);
7558 NDR_CHECK(ndr_pull_array_size(ndr, &r->site_name));
7559 NDR_CHECK(ndr_pull_array_length(ndr, &r->site_name));
7560 size_site_name_1 = ndr_get_array_size(ndr, &r->site_name);
7561 length_site_name_1 = ndr_get_array_length(ndr, &r->site_name);
7562 if (length_site_name_1 > size_site_name_1) {
7563 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_site_name_1, length_site_name_1);
7565 NDR_CHECK(ndr_check_string_terminator(ndr, length_site_name_1, sizeof(uint16_t)));
7566 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->site_name, length_site_name_1, sizeof(uint16_t), CH_UTF16));
7567 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
7569 if (r->site_dn) {
7570 _mem_save_site_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
7571 NDR_PULL_SET_MEM_CTX(ndr, r->site_dn, 0);
7572 NDR_CHECK(ndr_pull_array_size(ndr, &r->site_dn));
7573 NDR_CHECK(ndr_pull_array_length(ndr, &r->site_dn));
7574 size_site_dn_1 = ndr_get_array_size(ndr, &r->site_dn);
7575 length_site_dn_1 = ndr_get_array_length(ndr, &r->site_dn);
7576 if (length_site_dn_1 > size_site_dn_1) {
7577 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_site_dn_1, length_site_dn_1);
7579 NDR_CHECK(ndr_check_string_terminator(ndr, length_site_dn_1, sizeof(uint16_t)));
7580 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->site_dn, length_site_dn_1, sizeof(uint16_t), CH_UTF16));
7581 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_dn_0, 0);
7583 if (r->computer_dn) {
7584 _mem_save_computer_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
7585 NDR_PULL_SET_MEM_CTX(ndr, r->computer_dn, 0);
7586 NDR_CHECK(ndr_pull_array_size(ndr, &r->computer_dn));
7587 NDR_CHECK(ndr_pull_array_length(ndr, &r->computer_dn));
7588 size_computer_dn_1 = ndr_get_array_size(ndr, &r->computer_dn);
7589 length_computer_dn_1 = ndr_get_array_length(ndr, &r->computer_dn);
7590 if (length_computer_dn_1 > size_computer_dn_1) {
7591 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_computer_dn_1, length_computer_dn_1);
7593 NDR_CHECK(ndr_check_string_terminator(ndr, length_computer_dn_1, sizeof(uint16_t)));
7594 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->computer_dn, length_computer_dn_1, sizeof(uint16_t), CH_UTF16));
7595 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_dn_0, 0);
7597 if (r->server_dn) {
7598 _mem_save_server_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
7599 NDR_PULL_SET_MEM_CTX(ndr, r->server_dn, 0);
7600 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_dn));
7601 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_dn));
7602 size_server_dn_1 = ndr_get_array_size(ndr, &r->server_dn);
7603 length_server_dn_1 = ndr_get_array_length(ndr, &r->server_dn);
7604 if (length_server_dn_1 > size_server_dn_1) {
7605 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_dn_1, length_server_dn_1);
7607 NDR_CHECK(ndr_check_string_terminator(ndr, length_server_dn_1, sizeof(uint16_t)));
7608 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_dn, length_server_dn_1, sizeof(uint16_t), CH_UTF16));
7609 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_dn_0, 0);
7611 if (r->ntds_dn) {
7612 _mem_save_ntds_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
7613 NDR_PULL_SET_MEM_CTX(ndr, r->ntds_dn, 0);
7614 NDR_CHECK(ndr_pull_array_size(ndr, &r->ntds_dn));
7615 NDR_CHECK(ndr_pull_array_length(ndr, &r->ntds_dn));
7616 size_ntds_dn_1 = ndr_get_array_size(ndr, &r->ntds_dn);
7617 length_ntds_dn_1 = ndr_get_array_length(ndr, &r->ntds_dn);
7618 if (length_ntds_dn_1 > size_ntds_dn_1) {
7619 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_ntds_dn_1, length_ntds_dn_1);
7621 NDR_CHECK(ndr_check_string_terminator(ndr, length_ntds_dn_1, sizeof(uint16_t)));
7622 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ntds_dn, length_ntds_dn_1, sizeof(uint16_t), CH_UTF16));
7623 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ntds_dn_0, 0);
7626 return NDR_ERR_SUCCESS;
7629 _PUBLIC_ void ndr_print_drsuapi_DsGetDCInfo2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetDCInfo2 *r)
7631 ndr_print_struct(ndr, name, "drsuapi_DsGetDCInfo2");
7632 ndr->depth++;
7633 ndr_print_ptr(ndr, "netbios_name", r->netbios_name);
7634 ndr->depth++;
7635 if (r->netbios_name) {
7636 ndr_print_string(ndr, "netbios_name", r->netbios_name);
7638 ndr->depth--;
7639 ndr_print_ptr(ndr, "dns_name", r->dns_name);
7640 ndr->depth++;
7641 if (r->dns_name) {
7642 ndr_print_string(ndr, "dns_name", r->dns_name);
7644 ndr->depth--;
7645 ndr_print_ptr(ndr, "site_name", r->site_name);
7646 ndr->depth++;
7647 if (r->site_name) {
7648 ndr_print_string(ndr, "site_name", r->site_name);
7650 ndr->depth--;
7651 ndr_print_ptr(ndr, "site_dn", r->site_dn);
7652 ndr->depth++;
7653 if (r->site_dn) {
7654 ndr_print_string(ndr, "site_dn", r->site_dn);
7656 ndr->depth--;
7657 ndr_print_ptr(ndr, "computer_dn", r->computer_dn);
7658 ndr->depth++;
7659 if (r->computer_dn) {
7660 ndr_print_string(ndr, "computer_dn", r->computer_dn);
7662 ndr->depth--;
7663 ndr_print_ptr(ndr, "server_dn", r->server_dn);
7664 ndr->depth++;
7665 if (r->server_dn) {
7666 ndr_print_string(ndr, "server_dn", r->server_dn);
7668 ndr->depth--;
7669 ndr_print_ptr(ndr, "ntds_dn", r->ntds_dn);
7670 ndr->depth++;
7671 if (r->ntds_dn) {
7672 ndr_print_string(ndr, "ntds_dn", r->ntds_dn);
7674 ndr->depth--;
7675 ndr_print_uint32(ndr, "is_pdc", r->is_pdc);
7676 ndr_print_uint32(ndr, "is_enabled", r->is_enabled);
7677 ndr_print_uint32(ndr, "is_gc", r->is_gc);
7678 ndr_print_GUID(ndr, "site_guid", &r->site_guid);
7679 ndr_print_GUID(ndr, "computer_guid", &r->computer_guid);
7680 ndr_print_GUID(ndr, "server_guid", &r->server_guid);
7681 ndr_print_GUID(ndr, "ntds_guid", &r->ntds_guid);
7682 ndr->depth--;
7685 static enum ndr_err_code ndr_push_drsuapi_DsGetDCInfoCtr2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetDCInfoCtr2 *r)
7687 uint32_t cntr_array_1;
7688 if (ndr_flags & NDR_SCALARS) {
7689 NDR_CHECK(ndr_push_align(ndr, 5));
7690 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7691 NDR_CHECK(ndr_push_unique_ptr(ndr, r->array));
7692 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7694 if (ndr_flags & NDR_BUFFERS) {
7695 if (r->array) {
7696 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
7697 for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7698 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfo2(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
7700 for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7701 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfo2(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
7705 return NDR_ERR_SUCCESS;
7708 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCInfoCtr2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetDCInfoCtr2 *r)
7710 uint32_t _ptr_array;
7711 uint32_t size_array_1 = 0;
7712 uint32_t cntr_array_1;
7713 TALLOC_CTX *_mem_save_array_0;
7714 TALLOC_CTX *_mem_save_array_1;
7715 if (ndr_flags & NDR_SCALARS) {
7716 NDR_CHECK(ndr_pull_align(ndr, 5));
7717 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
7718 if (r->count > 10000) {
7719 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
7721 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array));
7722 if (_ptr_array) {
7723 NDR_PULL_ALLOC(ndr, r->array);
7724 } else {
7725 r->array = NULL;
7727 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7729 if (ndr_flags & NDR_BUFFERS) {
7730 if (r->array) {
7731 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
7732 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
7733 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
7734 size_array_1 = ndr_get_array_size(ndr, &r->array);
7735 NDR_PULL_ALLOC_N(ndr, r->array, size_array_1);
7736 _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
7737 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
7738 for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) {
7739 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfo2(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
7741 for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) {
7742 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfo2(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
7744 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0);
7745 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
7747 if (r->array) {
7748 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
7751 return NDR_ERR_SUCCESS;
7754 _PUBLIC_ void ndr_print_drsuapi_DsGetDCInfoCtr2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetDCInfoCtr2 *r)
7756 uint32_t cntr_array_1;
7757 ndr_print_struct(ndr, name, "drsuapi_DsGetDCInfoCtr2");
7758 ndr->depth++;
7759 ndr_print_uint32(ndr, "count", r->count);
7760 ndr_print_ptr(ndr, "array", r->array);
7761 ndr->depth++;
7762 if (r->array) {
7763 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
7764 ndr->depth++;
7765 for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
7766 char *idx_1=NULL;
7767 if (asprintf(&idx_1, "[%d]", cntr_array_1) != -1) {
7768 ndr_print_drsuapi_DsGetDCInfo2(ndr, "array", &r->array[cntr_array_1]);
7769 free(idx_1);
7772 ndr->depth--;
7774 ndr->depth--;
7775 ndr->depth--;
7778 static enum ndr_err_code ndr_push_drsuapi_DsGetDCInfo3(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetDCInfo3 *r)
7780 if (ndr_flags & NDR_SCALARS) {
7781 NDR_CHECK(ndr_push_align(ndr, 5));
7782 NDR_CHECK(ndr_push_unique_ptr(ndr, r->netbios_name));
7783 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_name));
7784 NDR_CHECK(ndr_push_unique_ptr(ndr, r->site_name));
7785 NDR_CHECK(ndr_push_unique_ptr(ndr, r->site_dn));
7786 NDR_CHECK(ndr_push_unique_ptr(ndr, r->computer_dn));
7787 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_dn));
7788 NDR_CHECK(ndr_push_unique_ptr(ndr, r->ntds_dn));
7789 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_pdc));
7790 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_enabled));
7791 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_gc));
7792 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->is_rodc));
7793 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->site_guid));
7794 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->computer_guid));
7795 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->server_guid));
7796 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->ntds_guid));
7797 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7799 if (ndr_flags & NDR_BUFFERS) {
7800 if (r->netbios_name) {
7801 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
7802 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7803 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
7804 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->netbios_name, ndr_charset_length(r->netbios_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7806 if (r->dns_name) {
7807 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
7808 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7809 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
7810 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dns_name, ndr_charset_length(r->dns_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7812 if (r->site_name) {
7813 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_name, CH_UTF16)));
7814 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7815 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_name, CH_UTF16)));
7816 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->site_name, ndr_charset_length(r->site_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7818 if (r->site_dn) {
7819 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_dn, CH_UTF16)));
7820 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7821 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_dn, CH_UTF16)));
7822 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->site_dn, ndr_charset_length(r->site_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7824 if (r->computer_dn) {
7825 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->computer_dn, CH_UTF16)));
7826 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7827 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->computer_dn, CH_UTF16)));
7828 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->computer_dn, ndr_charset_length(r->computer_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7830 if (r->server_dn) {
7831 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_dn, CH_UTF16)));
7832 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7833 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_dn, CH_UTF16)));
7834 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_dn, ndr_charset_length(r->server_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7836 if (r->ntds_dn) {
7837 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->ntds_dn, CH_UTF16)));
7838 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7839 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->ntds_dn, CH_UTF16)));
7840 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ntds_dn, ndr_charset_length(r->ntds_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7843 return NDR_ERR_SUCCESS;
7846 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCInfo3(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetDCInfo3 *r)
7848 uint32_t _ptr_netbios_name;
7849 uint32_t size_netbios_name_1 = 0;
7850 uint32_t length_netbios_name_1 = 0;
7851 TALLOC_CTX *_mem_save_netbios_name_0;
7852 uint32_t _ptr_dns_name;
7853 uint32_t size_dns_name_1 = 0;
7854 uint32_t length_dns_name_1 = 0;
7855 TALLOC_CTX *_mem_save_dns_name_0;
7856 uint32_t _ptr_site_name;
7857 uint32_t size_site_name_1 = 0;
7858 uint32_t length_site_name_1 = 0;
7859 TALLOC_CTX *_mem_save_site_name_0;
7860 uint32_t _ptr_site_dn;
7861 uint32_t size_site_dn_1 = 0;
7862 uint32_t length_site_dn_1 = 0;
7863 TALLOC_CTX *_mem_save_site_dn_0;
7864 uint32_t _ptr_computer_dn;
7865 uint32_t size_computer_dn_1 = 0;
7866 uint32_t length_computer_dn_1 = 0;
7867 TALLOC_CTX *_mem_save_computer_dn_0;
7868 uint32_t _ptr_server_dn;
7869 uint32_t size_server_dn_1 = 0;
7870 uint32_t length_server_dn_1 = 0;
7871 TALLOC_CTX *_mem_save_server_dn_0;
7872 uint32_t _ptr_ntds_dn;
7873 uint32_t size_ntds_dn_1 = 0;
7874 uint32_t length_ntds_dn_1 = 0;
7875 TALLOC_CTX *_mem_save_ntds_dn_0;
7876 if (ndr_flags & NDR_SCALARS) {
7877 NDR_CHECK(ndr_pull_align(ndr, 5));
7878 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_netbios_name));
7879 if (_ptr_netbios_name) {
7880 NDR_PULL_ALLOC(ndr, r->netbios_name);
7881 } else {
7882 r->netbios_name = NULL;
7884 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_name));
7885 if (_ptr_dns_name) {
7886 NDR_PULL_ALLOC(ndr, r->dns_name);
7887 } else {
7888 r->dns_name = NULL;
7890 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
7891 if (_ptr_site_name) {
7892 NDR_PULL_ALLOC(ndr, r->site_name);
7893 } else {
7894 r->site_name = NULL;
7896 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_dn));
7897 if (_ptr_site_dn) {
7898 NDR_PULL_ALLOC(ndr, r->site_dn);
7899 } else {
7900 r->site_dn = NULL;
7902 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_dn));
7903 if (_ptr_computer_dn) {
7904 NDR_PULL_ALLOC(ndr, r->computer_dn);
7905 } else {
7906 r->computer_dn = NULL;
7908 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_dn));
7909 if (_ptr_server_dn) {
7910 NDR_PULL_ALLOC(ndr, r->server_dn);
7911 } else {
7912 r->server_dn = NULL;
7914 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ntds_dn));
7915 if (_ptr_ntds_dn) {
7916 NDR_PULL_ALLOC(ndr, r->ntds_dn);
7917 } else {
7918 r->ntds_dn = NULL;
7920 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_pdc));
7921 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_enabled));
7922 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_gc));
7923 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->is_rodc));
7924 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->site_guid));
7925 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->computer_guid));
7926 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->server_guid));
7927 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->ntds_guid));
7928 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7930 if (ndr_flags & NDR_BUFFERS) {
7931 if (r->netbios_name) {
7932 _mem_save_netbios_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7933 NDR_PULL_SET_MEM_CTX(ndr, r->netbios_name, 0);
7934 NDR_CHECK(ndr_pull_array_size(ndr, &r->netbios_name));
7935 NDR_CHECK(ndr_pull_array_length(ndr, &r->netbios_name));
7936 size_netbios_name_1 = ndr_get_array_size(ndr, &r->netbios_name);
7937 length_netbios_name_1 = ndr_get_array_length(ndr, &r->netbios_name);
7938 if (length_netbios_name_1 > size_netbios_name_1) {
7939 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_netbios_name_1, length_netbios_name_1);
7941 NDR_CHECK(ndr_check_string_terminator(ndr, length_netbios_name_1, sizeof(uint16_t)));
7942 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->netbios_name, length_netbios_name_1, sizeof(uint16_t), CH_UTF16));
7943 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_netbios_name_0, 0);
7945 if (r->dns_name) {
7946 _mem_save_dns_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7947 NDR_PULL_SET_MEM_CTX(ndr, r->dns_name, 0);
7948 NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_name));
7949 NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_name));
7950 size_dns_name_1 = ndr_get_array_size(ndr, &r->dns_name);
7951 length_dns_name_1 = ndr_get_array_length(ndr, &r->dns_name);
7952 if (length_dns_name_1 > size_dns_name_1) {
7953 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_dns_name_1, length_dns_name_1);
7955 NDR_CHECK(ndr_check_string_terminator(ndr, length_dns_name_1, sizeof(uint16_t)));
7956 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_name, length_dns_name_1, sizeof(uint16_t), CH_UTF16));
7957 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_name_0, 0);
7959 if (r->site_name) {
7960 _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7961 NDR_PULL_SET_MEM_CTX(ndr, r->site_name, 0);
7962 NDR_CHECK(ndr_pull_array_size(ndr, &r->site_name));
7963 NDR_CHECK(ndr_pull_array_length(ndr, &r->site_name));
7964 size_site_name_1 = ndr_get_array_size(ndr, &r->site_name);
7965 length_site_name_1 = ndr_get_array_length(ndr, &r->site_name);
7966 if (length_site_name_1 > size_site_name_1) {
7967 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_site_name_1, length_site_name_1);
7969 NDR_CHECK(ndr_check_string_terminator(ndr, length_site_name_1, sizeof(uint16_t)));
7970 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->site_name, length_site_name_1, sizeof(uint16_t), CH_UTF16));
7971 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
7973 if (r->site_dn) {
7974 _mem_save_site_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
7975 NDR_PULL_SET_MEM_CTX(ndr, r->site_dn, 0);
7976 NDR_CHECK(ndr_pull_array_size(ndr, &r->site_dn));
7977 NDR_CHECK(ndr_pull_array_length(ndr, &r->site_dn));
7978 size_site_dn_1 = ndr_get_array_size(ndr, &r->site_dn);
7979 length_site_dn_1 = ndr_get_array_length(ndr, &r->site_dn);
7980 if (length_site_dn_1 > size_site_dn_1) {
7981 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_site_dn_1, length_site_dn_1);
7983 NDR_CHECK(ndr_check_string_terminator(ndr, length_site_dn_1, sizeof(uint16_t)));
7984 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->site_dn, length_site_dn_1, sizeof(uint16_t), CH_UTF16));
7985 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_dn_0, 0);
7987 if (r->computer_dn) {
7988 _mem_save_computer_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
7989 NDR_PULL_SET_MEM_CTX(ndr, r->computer_dn, 0);
7990 NDR_CHECK(ndr_pull_array_size(ndr, &r->computer_dn));
7991 NDR_CHECK(ndr_pull_array_length(ndr, &r->computer_dn));
7992 size_computer_dn_1 = ndr_get_array_size(ndr, &r->computer_dn);
7993 length_computer_dn_1 = ndr_get_array_length(ndr, &r->computer_dn);
7994 if (length_computer_dn_1 > size_computer_dn_1) {
7995 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_computer_dn_1, length_computer_dn_1);
7997 NDR_CHECK(ndr_check_string_terminator(ndr, length_computer_dn_1, sizeof(uint16_t)));
7998 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->computer_dn, length_computer_dn_1, sizeof(uint16_t), CH_UTF16));
7999 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_dn_0, 0);
8001 if (r->server_dn) {
8002 _mem_save_server_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
8003 NDR_PULL_SET_MEM_CTX(ndr, r->server_dn, 0);
8004 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_dn));
8005 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_dn));
8006 size_server_dn_1 = ndr_get_array_size(ndr, &r->server_dn);
8007 length_server_dn_1 = ndr_get_array_length(ndr, &r->server_dn);
8008 if (length_server_dn_1 > size_server_dn_1) {
8009 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_dn_1, length_server_dn_1);
8011 NDR_CHECK(ndr_check_string_terminator(ndr, length_server_dn_1, sizeof(uint16_t)));
8012 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_dn, length_server_dn_1, sizeof(uint16_t), CH_UTF16));
8013 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_dn_0, 0);
8015 if (r->ntds_dn) {
8016 _mem_save_ntds_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
8017 NDR_PULL_SET_MEM_CTX(ndr, r->ntds_dn, 0);
8018 NDR_CHECK(ndr_pull_array_size(ndr, &r->ntds_dn));
8019 NDR_CHECK(ndr_pull_array_length(ndr, &r->ntds_dn));
8020 size_ntds_dn_1 = ndr_get_array_size(ndr, &r->ntds_dn);
8021 length_ntds_dn_1 = ndr_get_array_length(ndr, &r->ntds_dn);
8022 if (length_ntds_dn_1 > size_ntds_dn_1) {
8023 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_ntds_dn_1, length_ntds_dn_1);
8025 NDR_CHECK(ndr_check_string_terminator(ndr, length_ntds_dn_1, sizeof(uint16_t)));
8026 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ntds_dn, length_ntds_dn_1, sizeof(uint16_t), CH_UTF16));
8027 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ntds_dn_0, 0);
8030 return NDR_ERR_SUCCESS;
8033 _PUBLIC_ void ndr_print_drsuapi_DsGetDCInfo3(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetDCInfo3 *r)
8035 ndr_print_struct(ndr, name, "drsuapi_DsGetDCInfo3");
8036 ndr->depth++;
8037 ndr_print_ptr(ndr, "netbios_name", r->netbios_name);
8038 ndr->depth++;
8039 if (r->netbios_name) {
8040 ndr_print_string(ndr, "netbios_name", r->netbios_name);
8042 ndr->depth--;
8043 ndr_print_ptr(ndr, "dns_name", r->dns_name);
8044 ndr->depth++;
8045 if (r->dns_name) {
8046 ndr_print_string(ndr, "dns_name", r->dns_name);
8048 ndr->depth--;
8049 ndr_print_ptr(ndr, "site_name", r->site_name);
8050 ndr->depth++;
8051 if (r->site_name) {
8052 ndr_print_string(ndr, "site_name", r->site_name);
8054 ndr->depth--;
8055 ndr_print_ptr(ndr, "site_dn", r->site_dn);
8056 ndr->depth++;
8057 if (r->site_dn) {
8058 ndr_print_string(ndr, "site_dn", r->site_dn);
8060 ndr->depth--;
8061 ndr_print_ptr(ndr, "computer_dn", r->computer_dn);
8062 ndr->depth++;
8063 if (r->computer_dn) {
8064 ndr_print_string(ndr, "computer_dn", r->computer_dn);
8066 ndr->depth--;
8067 ndr_print_ptr(ndr, "server_dn", r->server_dn);
8068 ndr->depth++;
8069 if (r->server_dn) {
8070 ndr_print_string(ndr, "server_dn", r->server_dn);
8072 ndr->depth--;
8073 ndr_print_ptr(ndr, "ntds_dn", r->ntds_dn);
8074 ndr->depth++;
8075 if (r->ntds_dn) {
8076 ndr_print_string(ndr, "ntds_dn", r->ntds_dn);
8078 ndr->depth--;
8079 ndr_print_uint32(ndr, "is_pdc", r->is_pdc);
8080 ndr_print_uint32(ndr, "is_enabled", r->is_enabled);
8081 ndr_print_uint32(ndr, "is_gc", r->is_gc);
8082 ndr_print_uint32(ndr, "is_rodc", r->is_rodc);
8083 ndr_print_GUID(ndr, "site_guid", &r->site_guid);
8084 ndr_print_GUID(ndr, "computer_guid", &r->computer_guid);
8085 ndr_print_GUID(ndr, "server_guid", &r->server_guid);
8086 ndr_print_GUID(ndr, "ntds_guid", &r->ntds_guid);
8087 ndr->depth--;
8090 static enum ndr_err_code ndr_push_drsuapi_DsGetDCInfoCtr3(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetDCInfoCtr3 *r)
8092 uint32_t cntr_array_1;
8093 if (ndr_flags & NDR_SCALARS) {
8094 NDR_CHECK(ndr_push_align(ndr, 5));
8095 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8096 NDR_CHECK(ndr_push_unique_ptr(ndr, r->array));
8097 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8099 if (ndr_flags & NDR_BUFFERS) {
8100 if (r->array) {
8101 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
8102 for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
8103 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfo3(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
8105 for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
8106 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfo3(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
8110 return NDR_ERR_SUCCESS;
8113 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCInfoCtr3(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetDCInfoCtr3 *r)
8115 uint32_t _ptr_array;
8116 uint32_t size_array_1 = 0;
8117 uint32_t cntr_array_1;
8118 TALLOC_CTX *_mem_save_array_0;
8119 TALLOC_CTX *_mem_save_array_1;
8120 if (ndr_flags & NDR_SCALARS) {
8121 NDR_CHECK(ndr_pull_align(ndr, 5));
8122 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
8123 if (r->count > 10000) {
8124 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
8126 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array));
8127 if (_ptr_array) {
8128 NDR_PULL_ALLOC(ndr, r->array);
8129 } else {
8130 r->array = NULL;
8132 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8134 if (ndr_flags & NDR_BUFFERS) {
8135 if (r->array) {
8136 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
8137 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
8138 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
8139 size_array_1 = ndr_get_array_size(ndr, &r->array);
8140 NDR_PULL_ALLOC_N(ndr, r->array, size_array_1);
8141 _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
8142 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
8143 for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) {
8144 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfo3(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
8146 for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) {
8147 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfo3(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
8149 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0);
8150 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
8152 if (r->array) {
8153 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
8156 return NDR_ERR_SUCCESS;
8159 _PUBLIC_ void ndr_print_drsuapi_DsGetDCInfoCtr3(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetDCInfoCtr3 *r)
8161 uint32_t cntr_array_1;
8162 ndr_print_struct(ndr, name, "drsuapi_DsGetDCInfoCtr3");
8163 ndr->depth++;
8164 ndr_print_uint32(ndr, "count", r->count);
8165 ndr_print_ptr(ndr, "array", r->array);
8166 ndr->depth++;
8167 if (r->array) {
8168 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
8169 ndr->depth++;
8170 for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
8171 char *idx_1=NULL;
8172 if (asprintf(&idx_1, "[%d]", cntr_array_1) != -1) {
8173 ndr_print_drsuapi_DsGetDCInfo3(ndr, "array", &r->array[cntr_array_1]);
8174 free(idx_1);
8177 ndr->depth--;
8179 ndr->depth--;
8180 ndr->depth--;
8183 static enum ndr_err_code ndr_push_drsuapi_DsGetDCConnection01(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetDCConnection01 *r)
8185 if (ndr_flags & NDR_SCALARS) {
8186 NDR_CHECK(ndr_push_align(ndr, 5));
8188 uint32_t _flags_save_ipv4address = ndr->flags;
8189 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
8190 NDR_CHECK(ndr_push_ipv4address(ndr, NDR_SCALARS, r->client_ip_address));
8191 ndr->flags = _flags_save_ipv4address;
8193 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
8194 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->connection_time));
8195 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
8196 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
8197 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
8198 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client_account));
8199 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8201 if (ndr_flags & NDR_BUFFERS) {
8202 if (r->client_account) {
8203 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client_account, CH_UTF16)));
8204 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8205 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client_account, CH_UTF16)));
8206 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client_account, ndr_charset_length(r->client_account, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8209 return NDR_ERR_SUCCESS;
8212 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCConnection01(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetDCConnection01 *r)
8214 uint32_t _ptr_client_account;
8215 uint32_t size_client_account_1 = 0;
8216 uint32_t length_client_account_1 = 0;
8217 TALLOC_CTX *_mem_save_client_account_0;
8218 if (ndr_flags & NDR_SCALARS) {
8219 NDR_CHECK(ndr_pull_align(ndr, 5));
8221 uint32_t _flags_save_ipv4address = ndr->flags;
8222 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
8223 NDR_CHECK(ndr_pull_ipv4address(ndr, NDR_SCALARS, &r->client_ip_address));
8224 ndr->flags = _flags_save_ipv4address;
8226 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
8227 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->connection_time));
8228 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
8229 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
8230 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
8231 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_account));
8232 if (_ptr_client_account) {
8233 NDR_PULL_ALLOC(ndr, r->client_account);
8234 } else {
8235 r->client_account = NULL;
8237 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8239 if (ndr_flags & NDR_BUFFERS) {
8240 if (r->client_account) {
8241 _mem_save_client_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
8242 NDR_PULL_SET_MEM_CTX(ndr, r->client_account, 0);
8243 NDR_CHECK(ndr_pull_array_size(ndr, &r->client_account));
8244 NDR_CHECK(ndr_pull_array_length(ndr, &r->client_account));
8245 size_client_account_1 = ndr_get_array_size(ndr, &r->client_account);
8246 length_client_account_1 = ndr_get_array_length(ndr, &r->client_account);
8247 if (length_client_account_1 > size_client_account_1) {
8248 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_client_account_1, length_client_account_1);
8250 NDR_CHECK(ndr_check_string_terminator(ndr, length_client_account_1, sizeof(uint16_t)));
8251 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client_account, length_client_account_1, sizeof(uint16_t), CH_UTF16));
8252 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_account_0, 0);
8255 return NDR_ERR_SUCCESS;
8258 _PUBLIC_ void ndr_print_drsuapi_DsGetDCConnection01(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetDCConnection01 *r)
8260 ndr_print_struct(ndr, name, "drsuapi_DsGetDCConnection01");
8261 ndr->depth++;
8262 ndr_print_ipv4address(ndr, "client_ip_address", r->client_ip_address);
8263 ndr_print_uint32(ndr, "unknown2", r->unknown2);
8264 ndr_print_uint32(ndr, "connection_time", r->connection_time);
8265 ndr_print_uint32(ndr, "unknown4", r->unknown4);
8266 ndr_print_uint32(ndr, "unknown5", r->unknown5);
8267 ndr_print_uint32(ndr, "unknown6", r->unknown6);
8268 ndr_print_ptr(ndr, "client_account", r->client_account);
8269 ndr->depth++;
8270 if (r->client_account) {
8271 ndr_print_string(ndr, "client_account", r->client_account);
8273 ndr->depth--;
8274 ndr->depth--;
8277 static enum ndr_err_code ndr_push_drsuapi_DsGetDCConnectionCtr01(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetDCConnectionCtr01 *r)
8279 uint32_t cntr_array_1;
8280 if (ndr_flags & NDR_SCALARS) {
8281 NDR_CHECK(ndr_push_align(ndr, 5));
8282 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8283 NDR_CHECK(ndr_push_unique_ptr(ndr, r->array));
8284 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8286 if (ndr_flags & NDR_BUFFERS) {
8287 if (r->array) {
8288 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
8289 for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
8290 NDR_CHECK(ndr_push_drsuapi_DsGetDCConnection01(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
8292 for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
8293 NDR_CHECK(ndr_push_drsuapi_DsGetDCConnection01(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
8297 return NDR_ERR_SUCCESS;
8300 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCConnectionCtr01(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetDCConnectionCtr01 *r)
8302 uint32_t _ptr_array;
8303 uint32_t size_array_1 = 0;
8304 uint32_t cntr_array_1;
8305 TALLOC_CTX *_mem_save_array_0;
8306 TALLOC_CTX *_mem_save_array_1;
8307 if (ndr_flags & NDR_SCALARS) {
8308 NDR_CHECK(ndr_pull_align(ndr, 5));
8309 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
8310 if (r->count > 10000) {
8311 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
8313 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array));
8314 if (_ptr_array) {
8315 NDR_PULL_ALLOC(ndr, r->array);
8316 } else {
8317 r->array = NULL;
8319 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8321 if (ndr_flags & NDR_BUFFERS) {
8322 if (r->array) {
8323 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
8324 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
8325 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
8326 size_array_1 = ndr_get_array_size(ndr, &r->array);
8327 NDR_PULL_ALLOC_N(ndr, r->array, size_array_1);
8328 _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
8329 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
8330 for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) {
8331 NDR_CHECK(ndr_pull_drsuapi_DsGetDCConnection01(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
8333 for (cntr_array_1 = 0; cntr_array_1 < size_array_1; cntr_array_1++) {
8334 NDR_CHECK(ndr_pull_drsuapi_DsGetDCConnection01(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
8336 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0);
8337 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
8339 if (r->array) {
8340 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
8343 return NDR_ERR_SUCCESS;
8346 _PUBLIC_ void ndr_print_drsuapi_DsGetDCConnectionCtr01(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetDCConnectionCtr01 *r)
8348 uint32_t cntr_array_1;
8349 ndr_print_struct(ndr, name, "drsuapi_DsGetDCConnectionCtr01");
8350 ndr->depth++;
8351 ndr_print_uint32(ndr, "count", r->count);
8352 ndr_print_ptr(ndr, "array", r->array);
8353 ndr->depth++;
8354 if (r->array) {
8355 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
8356 ndr->depth++;
8357 for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
8358 char *idx_1=NULL;
8359 if (asprintf(&idx_1, "[%d]", cntr_array_1) != -1) {
8360 ndr_print_drsuapi_DsGetDCConnection01(ndr, "array", &r->array[cntr_array_1]);
8361 free(idx_1);
8364 ndr->depth--;
8366 ndr->depth--;
8367 ndr->depth--;
8370 static enum ndr_err_code ndr_push_drsuapi_DsGetDCInfoCtr(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetDCInfoCtr *r)
8372 if (ndr_flags & NDR_SCALARS) {
8373 int level = ndr_push_get_switch_value(ndr, r);
8374 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
8375 NDR_CHECK(ndr_push_union_align(ndr, 5));
8376 switch (level) {
8377 case DRSUAPI_DC_INFO_CTR_1: {
8378 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoCtr1(ndr, NDR_SCALARS, &r->ctr1));
8379 break; }
8381 case DRSUAPI_DC_INFO_CTR_2: {
8382 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoCtr2(ndr, NDR_SCALARS, &r->ctr2));
8383 break; }
8385 case DRSUAPI_DC_INFO_CTR_3: {
8386 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoCtr3(ndr, NDR_SCALARS, &r->ctr3));
8387 break; }
8389 case DRSUAPI_DC_CONNECTION_CTR_01: {
8390 NDR_CHECK(ndr_push_drsuapi_DsGetDCConnectionCtr01(ndr, NDR_SCALARS, &r->ctr01));
8391 break; }
8393 default:
8394 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
8397 if (ndr_flags & NDR_BUFFERS) {
8398 int level = ndr_push_get_switch_value(ndr, r);
8399 switch (level) {
8400 case DRSUAPI_DC_INFO_CTR_1:
8401 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoCtr1(ndr, NDR_BUFFERS, &r->ctr1));
8402 break;
8404 case DRSUAPI_DC_INFO_CTR_2:
8405 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoCtr2(ndr, NDR_BUFFERS, &r->ctr2));
8406 break;
8408 case DRSUAPI_DC_INFO_CTR_3:
8409 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoCtr3(ndr, NDR_BUFFERS, &r->ctr3));
8410 break;
8412 case DRSUAPI_DC_CONNECTION_CTR_01:
8413 NDR_CHECK(ndr_push_drsuapi_DsGetDCConnectionCtr01(ndr, NDR_BUFFERS, &r->ctr01));
8414 break;
8416 default:
8417 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
8420 return NDR_ERR_SUCCESS;
8423 static enum ndr_err_code ndr_pull_drsuapi_DsGetDCInfoCtr(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetDCInfoCtr *r)
8425 int level;
8426 int32_t _level;
8427 level = ndr_pull_get_switch_value(ndr, r);
8428 if (ndr_flags & NDR_SCALARS) {
8429 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
8430 if (_level != level) {
8431 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
8433 NDR_CHECK(ndr_pull_union_align(ndr, 5));
8434 switch (level) {
8435 case DRSUAPI_DC_INFO_CTR_1: {
8436 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoCtr1(ndr, NDR_SCALARS, &r->ctr1));
8437 break; }
8439 case DRSUAPI_DC_INFO_CTR_2: {
8440 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoCtr2(ndr, NDR_SCALARS, &r->ctr2));
8441 break; }
8443 case DRSUAPI_DC_INFO_CTR_3: {
8444 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoCtr3(ndr, NDR_SCALARS, &r->ctr3));
8445 break; }
8447 case DRSUAPI_DC_CONNECTION_CTR_01: {
8448 NDR_CHECK(ndr_pull_drsuapi_DsGetDCConnectionCtr01(ndr, NDR_SCALARS, &r->ctr01));
8449 break; }
8451 default:
8452 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
8455 if (ndr_flags & NDR_BUFFERS) {
8456 switch (level) {
8457 case DRSUAPI_DC_INFO_CTR_1:
8458 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoCtr1(ndr, NDR_BUFFERS, &r->ctr1));
8459 break;
8461 case DRSUAPI_DC_INFO_CTR_2:
8462 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoCtr2(ndr, NDR_BUFFERS, &r->ctr2));
8463 break;
8465 case DRSUAPI_DC_INFO_CTR_3:
8466 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoCtr3(ndr, NDR_BUFFERS, &r->ctr3));
8467 break;
8469 case DRSUAPI_DC_CONNECTION_CTR_01:
8470 NDR_CHECK(ndr_pull_drsuapi_DsGetDCConnectionCtr01(ndr, NDR_BUFFERS, &r->ctr01));
8471 break;
8473 default:
8474 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
8477 return NDR_ERR_SUCCESS;
8480 _PUBLIC_ void ndr_print_drsuapi_DsGetDCInfoCtr(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetDCInfoCtr *r)
8482 int level;
8483 level = ndr_print_get_switch_value(ndr, r);
8484 ndr_print_union(ndr, name, level, "drsuapi_DsGetDCInfoCtr");
8485 switch (level) {
8486 case DRSUAPI_DC_INFO_CTR_1:
8487 ndr_print_drsuapi_DsGetDCInfoCtr1(ndr, "ctr1", &r->ctr1);
8488 break;
8490 case DRSUAPI_DC_INFO_CTR_2:
8491 ndr_print_drsuapi_DsGetDCInfoCtr2(ndr, "ctr2", &r->ctr2);
8492 break;
8494 case DRSUAPI_DC_INFO_CTR_3:
8495 ndr_print_drsuapi_DsGetDCInfoCtr3(ndr, "ctr3", &r->ctr3);
8496 break;
8498 case DRSUAPI_DC_CONNECTION_CTR_01:
8499 ndr_print_drsuapi_DsGetDCConnectionCtr01(ndr, "ctr01", &r->ctr01);
8500 break;
8502 default:
8503 ndr_print_bad_level(ndr, name, level);
8507 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsReplicaObjectListItem(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObjectListItem *r)
8509 if (ndr_flags & NDR_SCALARS) {
8510 NDR_CHECK(ndr_push_align(ndr, 5));
8511 NDR_CHECK(ndr_push_unique_ptr(ndr, r->next_object));
8512 NDR_CHECK(ndr_push_drsuapi_DsReplicaObject(ndr, NDR_SCALARS, &r->object));
8513 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8515 if (ndr_flags & NDR_BUFFERS) {
8516 if (r->next_object) {
8517 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectListItem(ndr, NDR_SCALARS|NDR_BUFFERS, r->next_object));
8519 NDR_CHECK(ndr_push_drsuapi_DsReplicaObject(ndr, NDR_BUFFERS, &r->object));
8521 return NDR_ERR_SUCCESS;
8524 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjectListItem(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObjectListItem *r)
8526 uint32_t _ptr_next_object;
8527 TALLOC_CTX *_mem_save_next_object_0;
8528 if (ndr_flags & NDR_SCALARS) {
8529 NDR_CHECK(ndr_pull_align(ndr, 5));
8530 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_next_object));
8531 if (_ptr_next_object) {
8532 NDR_PULL_ALLOC(ndr, r->next_object);
8533 } else {
8534 r->next_object = NULL;
8536 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObject(ndr, NDR_SCALARS, &r->object));
8537 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8539 if (ndr_flags & NDR_BUFFERS) {
8540 if (r->next_object) {
8541 _mem_save_next_object_0 = NDR_PULL_GET_MEM_CTX(ndr);
8542 NDR_PULL_SET_MEM_CTX(ndr, r->next_object, 0);
8543 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectListItem(ndr, NDR_SCALARS|NDR_BUFFERS, r->next_object));
8544 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_next_object_0, 0);
8546 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObject(ndr, NDR_BUFFERS, &r->object));
8548 return NDR_ERR_SUCCESS;
8551 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryRequest2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntryRequest2 *r)
8553 if (ndr_flags & NDR_SCALARS) {
8554 NDR_CHECK(ndr_push_align(ndr, 5));
8555 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectListItem(ndr, NDR_SCALARS, &r->first_object));
8556 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8558 if (ndr_flags & NDR_BUFFERS) {
8559 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectListItem(ndr, NDR_BUFFERS, &r->first_object));
8561 return NDR_ERR_SUCCESS;
8564 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryRequest2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryRequest2 *r)
8566 if (ndr_flags & NDR_SCALARS) {
8567 NDR_CHECK(ndr_pull_align(ndr, 5));
8568 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectListItem(ndr, NDR_SCALARS, &r->first_object));
8569 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8571 if (ndr_flags & NDR_BUFFERS) {
8572 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectListItem(ndr, NDR_BUFFERS, &r->first_object));
8574 return NDR_ERR_SUCCESS;
8577 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryRequest2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryRequest2 *r)
8579 ndr_print_struct(ndr, name, "drsuapi_DsAddEntryRequest2");
8580 ndr->depth++;
8581 ndr_print_drsuapi_DsReplicaObjectListItem(ndr, "first_object", &r->first_object);
8582 ndr->depth--;
8585 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsAddEntryRequest *r)
8587 if (ndr_flags & NDR_SCALARS) {
8588 int level = ndr_push_get_switch_value(ndr, r);
8589 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
8590 NDR_CHECK(ndr_push_union_align(ndr, 5));
8591 switch (level) {
8592 case 2: {
8593 NDR_CHECK(ndr_push_drsuapi_DsAddEntryRequest2(ndr, NDR_SCALARS, &r->req2));
8594 break; }
8596 default:
8597 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
8600 if (ndr_flags & NDR_BUFFERS) {
8601 int level = ndr_push_get_switch_value(ndr, r);
8602 switch (level) {
8603 case 2:
8604 NDR_CHECK(ndr_push_drsuapi_DsAddEntryRequest2(ndr, NDR_BUFFERS, &r->req2));
8605 break;
8607 default:
8608 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
8611 return NDR_ERR_SUCCESS;
8614 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsAddEntryRequest *r)
8616 int level;
8617 int32_t _level;
8618 level = ndr_pull_get_switch_value(ndr, r);
8619 if (ndr_flags & NDR_SCALARS) {
8620 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
8621 if (_level != level) {
8622 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
8624 NDR_CHECK(ndr_pull_union_align(ndr, 5));
8625 switch (level) {
8626 case 2: {
8627 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryRequest2(ndr, NDR_SCALARS, &r->req2));
8628 break; }
8630 default:
8631 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
8634 if (ndr_flags & NDR_BUFFERS) {
8635 switch (level) {
8636 case 2:
8637 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryRequest2(ndr, NDR_BUFFERS, &r->req2));
8638 break;
8640 default:
8641 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
8644 return NDR_ERR_SUCCESS;
8647 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsAddEntryRequest *r)
8649 int level;
8650 level = ndr_print_get_switch_value(ndr, r);
8651 ndr_print_union(ndr, name, level, "drsuapi_DsAddEntryRequest");
8652 switch (level) {
8653 case 2:
8654 ndr_print_drsuapi_DsAddEntryRequest2(ndr, "req2", &r->req2);
8655 break;
8657 default:
8658 ndr_print_bad_level(ndr, name, level);
8662 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryErrorInfoX(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntryErrorInfoX *r)
8664 if (ndr_flags & NDR_SCALARS) {
8665 NDR_CHECK(ndr_push_align(ndr, 4));
8666 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
8667 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->status));
8668 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
8669 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown3));
8670 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
8672 if (ndr_flags & NDR_BUFFERS) {
8674 return NDR_ERR_SUCCESS;
8677 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryErrorInfoX(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryErrorInfoX *r)
8679 if (ndr_flags & NDR_SCALARS) {
8680 NDR_CHECK(ndr_pull_align(ndr, 4));
8681 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
8682 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->status));
8683 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
8684 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown3));
8685 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
8687 if (ndr_flags & NDR_BUFFERS) {
8689 return NDR_ERR_SUCCESS;
8692 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryErrorInfoX(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryErrorInfoX *r)
8694 ndr_print_struct(ndr, name, "drsuapi_DsAddEntryErrorInfoX");
8695 ndr->depth++;
8696 ndr_print_uint32(ndr, "unknown1", r->unknown1);
8697 ndr_print_WERROR(ndr, "status", r->status);
8698 ndr_print_uint32(ndr, "unknown2", r->unknown2);
8699 ndr_print_uint16(ndr, "unknown3", r->unknown3);
8700 ndr->depth--;
8703 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryExtraErrorBuffer(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntryExtraErrorBuffer *r)
8705 if (ndr_flags & NDR_SCALARS) {
8706 NDR_CHECK(ndr_push_align(ndr, 5));
8707 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
8708 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
8709 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8711 if (ndr_flags & NDR_BUFFERS) {
8712 if (r->data) {
8713 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->size));
8714 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->size));
8717 return NDR_ERR_SUCCESS;
8720 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryExtraErrorBuffer(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryExtraErrorBuffer *r)
8722 uint32_t _ptr_data;
8723 uint32_t size_data_1 = 0;
8724 TALLOC_CTX *_mem_save_data_0;
8725 if (ndr_flags & NDR_SCALARS) {
8726 NDR_CHECK(ndr_pull_align(ndr, 5));
8727 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
8728 if (r->size > 10485760) {
8729 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
8731 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
8732 if (_ptr_data) {
8733 NDR_PULL_ALLOC(ndr, r->data);
8734 } else {
8735 r->data = NULL;
8737 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8739 if (ndr_flags & NDR_BUFFERS) {
8740 if (r->data) {
8741 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
8742 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
8743 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
8744 size_data_1 = ndr_get_array_size(ndr, &r->data);
8745 NDR_PULL_ALLOC_N(ndr, r->data, size_data_1);
8746 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, size_data_1));
8747 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
8749 if (r->data) {
8750 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->size));
8753 return NDR_ERR_SUCCESS;
8756 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryExtraErrorBuffer(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryExtraErrorBuffer *r)
8758 ndr_print_struct(ndr, name, "drsuapi_DsAddEntryExtraErrorBuffer");
8759 ndr->depth++;
8760 ndr_print_uint32(ndr, "size", r->size);
8761 ndr_print_ptr(ndr, "data", r->data);
8762 ndr->depth++;
8763 if (r->data) {
8764 ndr_print_array_uint8(ndr, "data", r->data, r->size);
8766 ndr->depth--;
8767 ndr->depth--;
8770 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryExtraError1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntryExtraError1 *r)
8772 if (ndr_flags & NDR_SCALARS) {
8773 NDR_CHECK(ndr_push_align(ndr, 5));
8774 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->error));
8775 NDR_CHECK(ndr_push_drsuapi_DsAttributeId(ndr, NDR_SCALARS, r->attid));
8776 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
8777 NDR_CHECK(ndr_push_drsuapi_DsAddEntryExtraErrorBuffer(ndr, NDR_SCALARS, &r->buffer));
8778 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8780 if (ndr_flags & NDR_BUFFERS) {
8781 NDR_CHECK(ndr_push_drsuapi_DsAddEntryExtraErrorBuffer(ndr, NDR_BUFFERS, &r->buffer));
8783 return NDR_ERR_SUCCESS;
8786 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryExtraError1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryExtraError1 *r)
8788 if (ndr_flags & NDR_SCALARS) {
8789 NDR_CHECK(ndr_pull_align(ndr, 5));
8790 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->error));
8791 NDR_CHECK(ndr_pull_drsuapi_DsAttributeId(ndr, NDR_SCALARS, &r->attid));
8792 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
8793 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryExtraErrorBuffer(ndr, NDR_SCALARS, &r->buffer));
8794 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8796 if (ndr_flags & NDR_BUFFERS) {
8797 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryExtraErrorBuffer(ndr, NDR_BUFFERS, &r->buffer));
8799 return NDR_ERR_SUCCESS;
8802 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryExtraError1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryExtraError1 *r)
8804 ndr_print_struct(ndr, name, "drsuapi_DsAddEntryExtraError1");
8805 ndr->depth++;
8806 ndr_print_drsuapi_DsAddEntryErrorInfoX(ndr, "error", &r->error);
8807 ndr_print_drsuapi_DsAttributeId(ndr, "attid", r->attid);
8808 ndr_print_uint32(ndr, "unknown2", r->unknown2);
8809 ndr_print_drsuapi_DsAddEntryExtraErrorBuffer(ndr, "buffer", &r->buffer);
8810 ndr->depth--;
8813 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryErrorListItem1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntryErrorListItem1 *r)
8815 if (ndr_flags & NDR_SCALARS) {
8816 NDR_CHECK(ndr_push_align(ndr, 5));
8817 NDR_CHECK(ndr_push_unique_ptr(ndr, r->next));
8818 NDR_CHECK(ndr_push_drsuapi_DsAddEntryExtraError1(ndr, NDR_SCALARS, &r->error));
8819 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8821 if (ndr_flags & NDR_BUFFERS) {
8822 if (r->next) {
8823 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorListItem1(ndr, NDR_SCALARS|NDR_BUFFERS, r->next));
8825 NDR_CHECK(ndr_push_drsuapi_DsAddEntryExtraError1(ndr, NDR_BUFFERS, &r->error));
8827 return NDR_ERR_SUCCESS;
8830 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryErrorListItem1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryErrorListItem1 *r)
8832 uint32_t _ptr_next;
8833 TALLOC_CTX *_mem_save_next_0;
8834 if (ndr_flags & NDR_SCALARS) {
8835 NDR_CHECK(ndr_pull_align(ndr, 5));
8836 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_next));
8837 if (_ptr_next) {
8838 NDR_PULL_ALLOC(ndr, r->next);
8839 } else {
8840 r->next = NULL;
8842 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryExtraError1(ndr, NDR_SCALARS, &r->error));
8843 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8845 if (ndr_flags & NDR_BUFFERS) {
8846 if (r->next) {
8847 _mem_save_next_0 = NDR_PULL_GET_MEM_CTX(ndr);
8848 NDR_PULL_SET_MEM_CTX(ndr, r->next, 0);
8849 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorListItem1(ndr, NDR_SCALARS|NDR_BUFFERS, r->next));
8850 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_next_0, 0);
8852 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryExtraError1(ndr, NDR_BUFFERS, &r->error));
8854 return NDR_ERR_SUCCESS;
8857 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryErrorListItem1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryErrorListItem1 *r)
8859 ndr_print_struct(ndr, name, "drsuapi_DsAddEntryErrorListItem1");
8860 ndr->depth++;
8861 ndr_print_ptr(ndr, "next", r->next);
8862 ndr->depth++;
8863 if (r->next) {
8864 ndr_print_drsuapi_DsAddEntryErrorListItem1(ndr, "next", r->next);
8866 ndr->depth--;
8867 ndr_print_drsuapi_DsAddEntryExtraError1(ndr, "error", &r->error);
8868 ndr->depth--;
8871 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryErrorInfo1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntryErrorInfo1 *r)
8873 if (ndr_flags & NDR_SCALARS) {
8874 NDR_CHECK(ndr_push_align(ndr, 5));
8875 NDR_CHECK(ndr_push_unique_ptr(ndr, r->id));
8876 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->status));
8877 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorListItem1(ndr, NDR_SCALARS, &r->first));
8878 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8880 if (ndr_flags & NDR_BUFFERS) {
8881 if (r->id) {
8882 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->id));
8884 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorListItem1(ndr, NDR_BUFFERS, &r->first));
8886 return NDR_ERR_SUCCESS;
8889 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryErrorInfo1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryErrorInfo1 *r)
8891 uint32_t _ptr_id;
8892 TALLOC_CTX *_mem_save_id_0;
8893 if (ndr_flags & NDR_SCALARS) {
8894 NDR_CHECK(ndr_pull_align(ndr, 5));
8895 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_id));
8896 if (_ptr_id) {
8897 NDR_PULL_ALLOC(ndr, r->id);
8898 } else {
8899 r->id = NULL;
8901 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->status));
8902 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorListItem1(ndr, NDR_SCALARS, &r->first));
8903 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8905 if (ndr_flags & NDR_BUFFERS) {
8906 if (r->id) {
8907 _mem_save_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
8908 NDR_PULL_SET_MEM_CTX(ndr, r->id, 0);
8909 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->id));
8910 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_id_0, 0);
8912 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorListItem1(ndr, NDR_BUFFERS, &r->first));
8914 return NDR_ERR_SUCCESS;
8917 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryErrorInfo1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryErrorInfo1 *r)
8919 ndr_print_struct(ndr, name, "drsuapi_DsAddEntryErrorInfo1");
8920 ndr->depth++;
8921 ndr_print_ptr(ndr, "id", r->id);
8922 ndr->depth++;
8923 if (r->id) {
8924 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "id", r->id);
8926 ndr->depth--;
8927 ndr_print_WERROR(ndr, "status", r->status);
8928 ndr_print_drsuapi_DsAddEntryErrorListItem1(ndr, "first", &r->first);
8929 ndr->depth--;
8932 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryErrorInfo(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsAddEntryErrorInfo *r)
8934 if (ndr_flags & NDR_SCALARS) {
8935 int level = ndr_push_get_switch_value(ndr, r);
8936 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
8937 NDR_CHECK(ndr_push_union_align(ndr, 5));
8938 switch (level) {
8939 case 1: {
8940 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfo1(ndr, NDR_SCALARS, &r->error1));
8941 break; }
8943 case 4: {
8944 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->errorX));
8945 break; }
8947 case 5: {
8948 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->errorX));
8949 break; }
8951 case 6: {
8952 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->errorX));
8953 break; }
8955 case 7: {
8956 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->errorX));
8957 break; }
8959 default:
8960 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
8963 if (ndr_flags & NDR_BUFFERS) {
8964 int level = ndr_push_get_switch_value(ndr, r);
8965 switch (level) {
8966 case 1:
8967 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfo1(ndr, NDR_BUFFERS, &r->error1));
8968 break;
8970 case 4:
8971 break;
8973 case 5:
8974 break;
8976 case 6:
8977 break;
8979 case 7:
8980 break;
8982 default:
8983 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
8986 return NDR_ERR_SUCCESS;
8989 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryErrorInfo(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsAddEntryErrorInfo *r)
8991 int level;
8992 uint32_t _level;
8993 level = ndr_pull_get_switch_value(ndr, r);
8994 if (ndr_flags & NDR_SCALARS) {
8995 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
8996 if (_level != level) {
8997 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
8999 NDR_CHECK(ndr_pull_union_align(ndr, 5));
9000 switch (level) {
9001 case 1: {
9002 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfo1(ndr, NDR_SCALARS, &r->error1));
9003 break; }
9005 case 4: {
9006 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->errorX));
9007 break; }
9009 case 5: {
9010 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->errorX));
9011 break; }
9013 case 6: {
9014 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->errorX));
9015 break; }
9017 case 7: {
9018 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->errorX));
9019 break; }
9021 default:
9022 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
9025 if (ndr_flags & NDR_BUFFERS) {
9026 switch (level) {
9027 case 1:
9028 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfo1(ndr, NDR_BUFFERS, &r->error1));
9029 break;
9031 case 4:
9032 break;
9034 case 5:
9035 break;
9037 case 6:
9038 break;
9040 case 7:
9041 break;
9043 default:
9044 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
9047 return NDR_ERR_SUCCESS;
9050 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryErrorInfo(struct ndr_print *ndr, const char *name, const union drsuapi_DsAddEntryErrorInfo *r)
9052 int level;
9053 level = ndr_print_get_switch_value(ndr, r);
9054 ndr_print_union(ndr, name, level, "drsuapi_DsAddEntryErrorInfo");
9055 switch (level) {
9056 case 1:
9057 ndr_print_drsuapi_DsAddEntryErrorInfo1(ndr, "error1", &r->error1);
9058 break;
9060 case 4:
9061 ndr_print_drsuapi_DsAddEntryErrorInfoX(ndr, "errorX", &r->errorX);
9062 break;
9064 case 5:
9065 ndr_print_drsuapi_DsAddEntryErrorInfoX(ndr, "errorX", &r->errorX);
9066 break;
9068 case 6:
9069 ndr_print_drsuapi_DsAddEntryErrorInfoX(ndr, "errorX", &r->errorX);
9070 break;
9072 case 7:
9073 ndr_print_drsuapi_DsAddEntryErrorInfoX(ndr, "errorX", &r->errorX);
9074 break;
9076 default:
9077 ndr_print_bad_level(ndr, name, level);
9081 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryError1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntryError1 *r)
9083 if (ndr_flags & NDR_SCALARS) {
9084 NDR_CHECK(ndr_push_align(ndr, 5));
9085 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->status));
9086 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
9087 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info));
9088 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
9090 if (ndr_flags & NDR_BUFFERS) {
9091 if (r->info) {
9092 NDR_CHECK(ndr_push_set_switch_value(ndr, r->info, r->level));
9093 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info));
9096 return NDR_ERR_SUCCESS;
9099 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryError1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryError1 *r)
9101 uint32_t _ptr_info;
9102 TALLOC_CTX *_mem_save_info_0;
9103 if (ndr_flags & NDR_SCALARS) {
9104 NDR_CHECK(ndr_pull_align(ndr, 5));
9105 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->status));
9106 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
9107 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
9108 if (_ptr_info) {
9109 NDR_PULL_ALLOC(ndr, r->info);
9110 } else {
9111 r->info = NULL;
9113 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
9115 if (ndr_flags & NDR_BUFFERS) {
9116 if (r->info) {
9117 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
9118 NDR_PULL_SET_MEM_CTX(ndr, r->info, 0);
9119 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->info, r->level));
9120 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info));
9121 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
9124 return NDR_ERR_SUCCESS;
9127 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryError1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryError1 *r)
9129 ndr_print_struct(ndr, name, "drsuapi_DsAddEntryError1");
9130 ndr->depth++;
9131 ndr_print_WERROR(ndr, "status", r->status);
9132 ndr_print_uint32(ndr, "level", r->level);
9133 ndr_print_ptr(ndr, "info", r->info);
9134 ndr->depth++;
9135 if (r->info) {
9136 ndr_print_set_switch_value(ndr, r->info, r->level);
9137 ndr_print_drsuapi_DsAddEntryErrorInfo(ndr, "info", r->info);
9139 ndr->depth--;
9140 ndr->depth--;
9143 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryError(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsAddEntryError *r)
9145 if (ndr_flags & NDR_SCALARS) {
9146 int level = ndr_push_get_switch_value(ndr, r);
9147 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
9148 NDR_CHECK(ndr_push_union_align(ndr, 5));
9149 switch (level) {
9150 case 1: {
9151 NDR_CHECK(ndr_push_drsuapi_DsAddEntryError1(ndr, NDR_SCALARS, &r->info1));
9152 break; }
9154 default:
9155 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
9158 if (ndr_flags & NDR_BUFFERS) {
9159 int level = ndr_push_get_switch_value(ndr, r);
9160 switch (level) {
9161 case 1:
9162 NDR_CHECK(ndr_push_drsuapi_DsAddEntryError1(ndr, NDR_BUFFERS, &r->info1));
9163 break;
9165 default:
9166 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
9169 return NDR_ERR_SUCCESS;
9172 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryError(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsAddEntryError *r)
9174 int level;
9175 uint32_t _level;
9176 level = ndr_pull_get_switch_value(ndr, r);
9177 if (ndr_flags & NDR_SCALARS) {
9178 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
9179 if (_level != level) {
9180 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
9182 NDR_CHECK(ndr_pull_union_align(ndr, 5));
9183 switch (level) {
9184 case 1: {
9185 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryError1(ndr, NDR_SCALARS, &r->info1));
9186 break; }
9188 default:
9189 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
9192 if (ndr_flags & NDR_BUFFERS) {
9193 switch (level) {
9194 case 1:
9195 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryError1(ndr, NDR_BUFFERS, &r->info1));
9196 break;
9198 default:
9199 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
9202 return NDR_ERR_SUCCESS;
9205 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryError(struct ndr_print *ndr, const char *name, const union drsuapi_DsAddEntryError *r)
9207 int level;
9208 level = ndr_print_get_switch_value(ndr, r);
9209 ndr_print_union(ndr, name, level, "drsuapi_DsAddEntryError");
9210 switch (level) {
9211 case 1:
9212 ndr_print_drsuapi_DsAddEntryError1(ndr, "info1", &r->info1);
9213 break;
9215 default:
9216 ndr_print_bad_level(ndr, name, level);
9220 static enum ndr_err_code ndr_push_drsuapi_DsReplicaObjectIdentifier2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObjectIdentifier2 *r)
9222 if (ndr_flags & NDR_SCALARS) {
9223 NDR_CHECK(ndr_push_align(ndr, 4));
9224 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
9225 NDR_CHECK(ndr_push_dom_sid28(ndr, NDR_SCALARS, &r->sid));
9226 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
9228 if (ndr_flags & NDR_BUFFERS) {
9229 NDR_CHECK(ndr_push_dom_sid28(ndr, NDR_BUFFERS, &r->sid));
9231 return NDR_ERR_SUCCESS;
9234 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjectIdentifier2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObjectIdentifier2 *r)
9236 if (ndr_flags & NDR_SCALARS) {
9237 NDR_CHECK(ndr_pull_align(ndr, 4));
9238 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
9239 NDR_CHECK(ndr_pull_dom_sid28(ndr, NDR_SCALARS, &r->sid));
9240 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
9242 if (ndr_flags & NDR_BUFFERS) {
9243 NDR_CHECK(ndr_pull_dom_sid28(ndr, NDR_BUFFERS, &r->sid));
9245 return NDR_ERR_SUCCESS;
9248 _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjectIdentifier2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaObjectIdentifier2 *r)
9250 ndr_print_struct(ndr, name, "drsuapi_DsReplicaObjectIdentifier2");
9251 ndr->depth++;
9252 ndr_print_GUID(ndr, "guid", &r->guid);
9253 ndr_print_dom_sid28(ndr, "sid", &r->sid);
9254 ndr->depth--;
9257 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryCtr2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntryCtr2 *r)
9259 uint32_t cntr_objects_1;
9260 if (ndr_flags & NDR_SCALARS) {
9261 NDR_CHECK(ndr_push_align(ndr, 5));
9262 NDR_CHECK(ndr_push_unique_ptr(ndr, r->id));
9263 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
9264 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->error));
9265 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
9266 NDR_CHECK(ndr_push_unique_ptr(ndr, r->objects));
9267 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
9269 if (ndr_flags & NDR_BUFFERS) {
9270 if (r->id) {
9271 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->id));
9273 if (r->objects) {
9274 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
9275 for (cntr_objects_1 = 0; cntr_objects_1 < r->count; cntr_objects_1++) {
9276 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier2(ndr, NDR_SCALARS, &r->objects[cntr_objects_1]));
9278 for (cntr_objects_1 = 0; cntr_objects_1 < r->count; cntr_objects_1++) {
9279 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier2(ndr, NDR_BUFFERS, &r->objects[cntr_objects_1]));
9283 return NDR_ERR_SUCCESS;
9286 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryCtr2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryCtr2 *r)
9288 uint32_t _ptr_id;
9289 TALLOC_CTX *_mem_save_id_0;
9290 uint32_t _ptr_objects;
9291 uint32_t size_objects_1 = 0;
9292 uint32_t cntr_objects_1;
9293 TALLOC_CTX *_mem_save_objects_0;
9294 TALLOC_CTX *_mem_save_objects_1;
9295 if (ndr_flags & NDR_SCALARS) {
9296 NDR_CHECK(ndr_pull_align(ndr, 5));
9297 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_id));
9298 if (_ptr_id) {
9299 NDR_PULL_ALLOC(ndr, r->id);
9300 } else {
9301 r->id = NULL;
9303 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
9304 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfoX(ndr, NDR_SCALARS, &r->error));
9305 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
9306 if (r->count > 10000) {
9307 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
9309 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_objects));
9310 if (_ptr_objects) {
9311 NDR_PULL_ALLOC(ndr, r->objects);
9312 } else {
9313 r->objects = NULL;
9315 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
9317 if (ndr_flags & NDR_BUFFERS) {
9318 if (r->id) {
9319 _mem_save_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
9320 NDR_PULL_SET_MEM_CTX(ndr, r->id, 0);
9321 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->id));
9322 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_id_0, 0);
9324 if (r->objects) {
9325 _mem_save_objects_0 = NDR_PULL_GET_MEM_CTX(ndr);
9326 NDR_PULL_SET_MEM_CTX(ndr, r->objects, 0);
9327 NDR_CHECK(ndr_pull_array_size(ndr, &r->objects));
9328 size_objects_1 = ndr_get_array_size(ndr, &r->objects);
9329 NDR_PULL_ALLOC_N(ndr, r->objects, size_objects_1);
9330 _mem_save_objects_1 = NDR_PULL_GET_MEM_CTX(ndr);
9331 NDR_PULL_SET_MEM_CTX(ndr, r->objects, 0);
9332 for (cntr_objects_1 = 0; cntr_objects_1 < size_objects_1; cntr_objects_1++) {
9333 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier2(ndr, NDR_SCALARS, &r->objects[cntr_objects_1]));
9335 for (cntr_objects_1 = 0; cntr_objects_1 < size_objects_1; cntr_objects_1++) {
9336 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier2(ndr, NDR_BUFFERS, &r->objects[cntr_objects_1]));
9338 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_objects_1, 0);
9339 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_objects_0, 0);
9341 if (r->objects) {
9342 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->objects, r->count));
9345 return NDR_ERR_SUCCESS;
9348 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryCtr2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryCtr2 *r)
9350 uint32_t cntr_objects_1;
9351 ndr_print_struct(ndr, name, "drsuapi_DsAddEntryCtr2");
9352 ndr->depth++;
9353 ndr_print_ptr(ndr, "id", r->id);
9354 ndr->depth++;
9355 if (r->id) {
9356 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "id", r->id);
9358 ndr->depth--;
9359 ndr_print_uint32(ndr, "unknown1", r->unknown1);
9360 ndr_print_drsuapi_DsAddEntryErrorInfoX(ndr, "error", &r->error);
9361 ndr_print_uint32(ndr, "count", r->count);
9362 ndr_print_ptr(ndr, "objects", r->objects);
9363 ndr->depth++;
9364 if (r->objects) {
9365 ndr->print(ndr, "%s: ARRAY(%d)", "objects", (int)r->count);
9366 ndr->depth++;
9367 for (cntr_objects_1=0;cntr_objects_1<r->count;cntr_objects_1++) {
9368 char *idx_1=NULL;
9369 if (asprintf(&idx_1, "[%d]", cntr_objects_1) != -1) {
9370 ndr_print_drsuapi_DsReplicaObjectIdentifier2(ndr, "objects", &r->objects[cntr_objects_1]);
9371 free(idx_1);
9374 ndr->depth--;
9376 ndr->depth--;
9377 ndr->depth--;
9380 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryCtr3(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsAddEntryCtr3 *r)
9382 uint32_t cntr_objects_1;
9383 if (ndr_flags & NDR_SCALARS) {
9384 NDR_CHECK(ndr_push_align(ndr, 5));
9385 NDR_CHECK(ndr_push_unique_ptr(ndr, r->id));
9386 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
9387 NDR_CHECK(ndr_push_unique_ptr(ndr, r->error));
9388 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
9389 NDR_CHECK(ndr_push_unique_ptr(ndr, r->objects));
9390 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
9392 if (ndr_flags & NDR_BUFFERS) {
9393 if (r->id) {
9394 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->id));
9396 if (r->error) {
9397 NDR_CHECK(ndr_push_set_switch_value(ndr, r->error, r->level));
9398 NDR_CHECK(ndr_push_drsuapi_DsAddEntryError(ndr, NDR_SCALARS|NDR_BUFFERS, r->error));
9400 if (r->objects) {
9401 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
9402 for (cntr_objects_1 = 0; cntr_objects_1 < r->count; cntr_objects_1++) {
9403 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier2(ndr, NDR_SCALARS, &r->objects[cntr_objects_1]));
9405 for (cntr_objects_1 = 0; cntr_objects_1 < r->count; cntr_objects_1++) {
9406 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier2(ndr, NDR_BUFFERS, &r->objects[cntr_objects_1]));
9410 return NDR_ERR_SUCCESS;
9413 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryCtr3(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsAddEntryCtr3 *r)
9415 uint32_t _ptr_id;
9416 TALLOC_CTX *_mem_save_id_0;
9417 uint32_t _ptr_error;
9418 TALLOC_CTX *_mem_save_error_0;
9419 uint32_t _ptr_objects;
9420 uint32_t size_objects_1 = 0;
9421 uint32_t cntr_objects_1;
9422 TALLOC_CTX *_mem_save_objects_0;
9423 TALLOC_CTX *_mem_save_objects_1;
9424 if (ndr_flags & NDR_SCALARS) {
9425 NDR_CHECK(ndr_pull_align(ndr, 5));
9426 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_id));
9427 if (_ptr_id) {
9428 NDR_PULL_ALLOC(ndr, r->id);
9429 } else {
9430 r->id = NULL;
9432 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
9433 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_error));
9434 if (_ptr_error) {
9435 NDR_PULL_ALLOC(ndr, r->error);
9436 } else {
9437 r->error = NULL;
9439 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
9440 if (r->count > 10000) {
9441 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
9443 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_objects));
9444 if (_ptr_objects) {
9445 NDR_PULL_ALLOC(ndr, r->objects);
9446 } else {
9447 r->objects = NULL;
9449 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
9451 if (ndr_flags & NDR_BUFFERS) {
9452 if (r->id) {
9453 _mem_save_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
9454 NDR_PULL_SET_MEM_CTX(ndr, r->id, 0);
9455 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr, NDR_SCALARS|NDR_BUFFERS, r->id));
9456 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_id_0, 0);
9458 if (r->error) {
9459 _mem_save_error_0 = NDR_PULL_GET_MEM_CTX(ndr);
9460 NDR_PULL_SET_MEM_CTX(ndr, r->error, 0);
9461 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->error, r->level));
9462 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryError(ndr, NDR_SCALARS|NDR_BUFFERS, r->error));
9463 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_error_0, 0);
9465 if (r->objects) {
9466 _mem_save_objects_0 = NDR_PULL_GET_MEM_CTX(ndr);
9467 NDR_PULL_SET_MEM_CTX(ndr, r->objects, 0);
9468 NDR_CHECK(ndr_pull_array_size(ndr, &r->objects));
9469 size_objects_1 = ndr_get_array_size(ndr, &r->objects);
9470 NDR_PULL_ALLOC_N(ndr, r->objects, size_objects_1);
9471 _mem_save_objects_1 = NDR_PULL_GET_MEM_CTX(ndr);
9472 NDR_PULL_SET_MEM_CTX(ndr, r->objects, 0);
9473 for (cntr_objects_1 = 0; cntr_objects_1 < size_objects_1; cntr_objects_1++) {
9474 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier2(ndr, NDR_SCALARS, &r->objects[cntr_objects_1]));
9476 for (cntr_objects_1 = 0; cntr_objects_1 < size_objects_1; cntr_objects_1++) {
9477 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier2(ndr, NDR_BUFFERS, &r->objects[cntr_objects_1]));
9479 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_objects_1, 0);
9480 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_objects_0, 0);
9482 if (r->objects) {
9483 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->objects, r->count));
9486 return NDR_ERR_SUCCESS;
9489 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryCtr3(struct ndr_print *ndr, const char *name, const struct drsuapi_DsAddEntryCtr3 *r)
9491 uint32_t cntr_objects_1;
9492 ndr_print_struct(ndr, name, "drsuapi_DsAddEntryCtr3");
9493 ndr->depth++;
9494 ndr_print_ptr(ndr, "id", r->id);
9495 ndr->depth++;
9496 if (r->id) {
9497 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr, "id", r->id);
9499 ndr->depth--;
9500 ndr_print_uint32(ndr, "level", r->level);
9501 ndr_print_ptr(ndr, "error", r->error);
9502 ndr->depth++;
9503 if (r->error) {
9504 ndr_print_set_switch_value(ndr, r->error, r->level);
9505 ndr_print_drsuapi_DsAddEntryError(ndr, "error", r->error);
9507 ndr->depth--;
9508 ndr_print_uint32(ndr, "count", r->count);
9509 ndr_print_ptr(ndr, "objects", r->objects);
9510 ndr->depth++;
9511 if (r->objects) {
9512 ndr->print(ndr, "%s: ARRAY(%d)", "objects", (int)r->count);
9513 ndr->depth++;
9514 for (cntr_objects_1=0;cntr_objects_1<r->count;cntr_objects_1++) {
9515 char *idx_1=NULL;
9516 if (asprintf(&idx_1, "[%d]", cntr_objects_1) != -1) {
9517 ndr_print_drsuapi_DsReplicaObjectIdentifier2(ndr, "objects", &r->objects[cntr_objects_1]);
9518 free(idx_1);
9521 ndr->depth--;
9523 ndr->depth--;
9524 ndr->depth--;
9527 static enum ndr_err_code ndr_push_drsuapi_DsAddEntryCtr(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsAddEntryCtr *r)
9529 if (ndr_flags & NDR_SCALARS) {
9530 int level = ndr_push_get_switch_value(ndr, r);
9531 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
9532 NDR_CHECK(ndr_push_union_align(ndr, 5));
9533 switch (level) {
9534 case 2: {
9535 NDR_CHECK(ndr_push_drsuapi_DsAddEntryCtr2(ndr, NDR_SCALARS, &r->ctr2));
9536 break; }
9538 case 3: {
9539 NDR_CHECK(ndr_push_drsuapi_DsAddEntryCtr3(ndr, NDR_SCALARS, &r->ctr3));
9540 break; }
9542 default:
9543 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
9546 if (ndr_flags & NDR_BUFFERS) {
9547 int level = ndr_push_get_switch_value(ndr, r);
9548 switch (level) {
9549 case 2:
9550 NDR_CHECK(ndr_push_drsuapi_DsAddEntryCtr2(ndr, NDR_BUFFERS, &r->ctr2));
9551 break;
9553 case 3:
9554 NDR_CHECK(ndr_push_drsuapi_DsAddEntryCtr3(ndr, NDR_BUFFERS, &r->ctr3));
9555 break;
9557 default:
9558 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
9561 return NDR_ERR_SUCCESS;
9564 static enum ndr_err_code ndr_pull_drsuapi_DsAddEntryCtr(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsAddEntryCtr *r)
9566 int level;
9567 int32_t _level;
9568 level = ndr_pull_get_switch_value(ndr, r);
9569 if (ndr_flags & NDR_SCALARS) {
9570 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
9571 if (_level != level) {
9572 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
9574 NDR_CHECK(ndr_pull_union_align(ndr, 5));
9575 switch (level) {
9576 case 2: {
9577 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryCtr2(ndr, NDR_SCALARS, &r->ctr2));
9578 break; }
9580 case 3: {
9581 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryCtr3(ndr, NDR_SCALARS, &r->ctr3));
9582 break; }
9584 default:
9585 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
9588 if (ndr_flags & NDR_BUFFERS) {
9589 switch (level) {
9590 case 2:
9591 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryCtr2(ndr, NDR_BUFFERS, &r->ctr2));
9592 break;
9594 case 3:
9595 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryCtr3(ndr, NDR_BUFFERS, &r->ctr3));
9596 break;
9598 default:
9599 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
9602 return NDR_ERR_SUCCESS;
9605 _PUBLIC_ void ndr_print_drsuapi_DsAddEntryCtr(struct ndr_print *ndr, const char *name, const union drsuapi_DsAddEntryCtr *r)
9607 int level;
9608 level = ndr_print_get_switch_value(ndr, r);
9609 ndr_print_union(ndr, name, level, "drsuapi_DsAddEntryCtr");
9610 switch (level) {
9611 case 2:
9612 ndr_print_drsuapi_DsAddEntryCtr2(ndr, "ctr2", &r->ctr2);
9613 break;
9615 case 3:
9616 ndr_print_drsuapi_DsAddEntryCtr3(ndr, "ctr3", &r->ctr3);
9617 break;
9619 default:
9620 ndr_print_bad_level(ndr, name, level);
9624 static enum ndr_err_code ndr_push_drsuapi_DsExecuteKCCFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
9626 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
9627 return NDR_ERR_SUCCESS;
9630 static enum ndr_err_code ndr_pull_drsuapi_DsExecuteKCCFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
9632 uint32_t v;
9633 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
9634 *r = v;
9635 return NDR_ERR_SUCCESS;
9638 _PUBLIC_ void ndr_print_drsuapi_DsExecuteKCCFlags(struct ndr_print *ndr, const char *name, uint32_t r)
9640 ndr_print_uint32(ndr, name, r);
9641 ndr->depth++;
9642 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_EXECUTE_KCC_ASYNCHRONOUS_OPERATION", DRSUAPI_DS_EXECUTE_KCC_ASYNCHRONOUS_OPERATION, r);
9643 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DRSUAPI_DS_EXECUTE_KCC_DAMPED", DRSUAPI_DS_EXECUTE_KCC_DAMPED, r);
9644 ndr->depth--;
9647 static enum ndr_err_code ndr_push_drsuapi_DsExecuteKCC1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsExecuteKCC1 *r)
9649 if (ndr_flags & NDR_SCALARS) {
9650 NDR_CHECK(ndr_push_align(ndr, 4));
9651 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->taskID));
9652 NDR_CHECK(ndr_push_drsuapi_DsExecuteKCCFlags(ndr, NDR_SCALARS, r->flags));
9653 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
9655 if (ndr_flags & NDR_BUFFERS) {
9657 return NDR_ERR_SUCCESS;
9660 static enum ndr_err_code ndr_pull_drsuapi_DsExecuteKCC1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsExecuteKCC1 *r)
9662 if (ndr_flags & NDR_SCALARS) {
9663 NDR_CHECK(ndr_pull_align(ndr, 4));
9664 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->taskID));
9665 NDR_CHECK(ndr_pull_drsuapi_DsExecuteKCCFlags(ndr, NDR_SCALARS, &r->flags));
9666 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
9668 if (ndr_flags & NDR_BUFFERS) {
9670 return NDR_ERR_SUCCESS;
9673 _PUBLIC_ void ndr_print_drsuapi_DsExecuteKCC1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsExecuteKCC1 *r)
9675 ndr_print_struct(ndr, name, "drsuapi_DsExecuteKCC1");
9676 ndr->depth++;
9677 ndr_print_uint32(ndr, "taskID", r->taskID);
9678 ndr_print_drsuapi_DsExecuteKCCFlags(ndr, "flags", r->flags);
9679 ndr->depth--;
9682 static enum ndr_err_code ndr_push_drsuapi_DsExecuteKCCRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsExecuteKCCRequest *r)
9684 if (ndr_flags & NDR_SCALARS) {
9685 int level = ndr_push_get_switch_value(ndr, r);
9686 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
9687 NDR_CHECK(ndr_push_union_align(ndr, 4));
9688 switch (level) {
9689 case 1: {
9690 NDR_CHECK(ndr_push_drsuapi_DsExecuteKCC1(ndr, NDR_SCALARS, &r->ctr1));
9691 break; }
9693 default:
9694 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
9697 if (ndr_flags & NDR_BUFFERS) {
9698 int level = ndr_push_get_switch_value(ndr, r);
9699 switch (level) {
9700 case 1:
9701 break;
9703 default:
9704 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
9707 return NDR_ERR_SUCCESS;
9710 static enum ndr_err_code ndr_pull_drsuapi_DsExecuteKCCRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsExecuteKCCRequest *r)
9712 int level;
9713 uint32_t _level;
9714 level = ndr_pull_get_switch_value(ndr, r);
9715 if (ndr_flags & NDR_SCALARS) {
9716 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
9717 if (_level != level) {
9718 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
9720 NDR_CHECK(ndr_pull_union_align(ndr, 4));
9721 switch (level) {
9722 case 1: {
9723 NDR_CHECK(ndr_pull_drsuapi_DsExecuteKCC1(ndr, NDR_SCALARS, &r->ctr1));
9724 break; }
9726 default:
9727 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
9730 if (ndr_flags & NDR_BUFFERS) {
9731 switch (level) {
9732 case 1:
9733 break;
9735 default:
9736 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
9739 return NDR_ERR_SUCCESS;
9742 _PUBLIC_ void ndr_print_drsuapi_DsExecuteKCCRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsExecuteKCCRequest *r)
9744 int level;
9745 level = ndr_print_get_switch_value(ndr, r);
9746 ndr_print_union(ndr, name, level, "drsuapi_DsExecuteKCCRequest");
9747 switch (level) {
9748 case 1:
9749 ndr_print_drsuapi_DsExecuteKCC1(ndr, "ctr1", &r->ctr1);
9750 break;
9752 default:
9753 ndr_print_bad_level(ndr, name, level);
9757 static enum ndr_err_code ndr_push_drsuapi_DsReplicaGetInfoLevel(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsReplicaGetInfoLevel r)
9759 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
9760 return NDR_ERR_SUCCESS;
9763 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaGetInfoLevel(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsReplicaGetInfoLevel *r)
9765 uint32_t v;
9766 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
9767 *r = v;
9768 return NDR_ERR_SUCCESS;
9771 _PUBLIC_ void ndr_print_drsuapi_DsReplicaGetInfoLevel(struct ndr_print *ndr, const char *name, enum drsuapi_DsReplicaGetInfoLevel r)
9773 const char *val = NULL;
9775 switch (r) {
9776 case DRSUAPI_DS_REPLICA_GET_INFO: val = "DRSUAPI_DS_REPLICA_GET_INFO"; break;
9777 case DRSUAPI_DS_REPLICA_GET_INFO2: val = "DRSUAPI_DS_REPLICA_GET_INFO2"; break;
9779 ndr_print_enum(ndr, name, "ENUM", val, r);
9782 static enum ndr_err_code ndr_push_drsuapi_DsReplicaInfoType(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsReplicaInfoType r)
9784 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
9785 return NDR_ERR_SUCCESS;
9788 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaInfoType(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsReplicaInfoType *r)
9790 uint32_t v;
9791 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
9792 *r = v;
9793 return NDR_ERR_SUCCESS;
9796 _PUBLIC_ void ndr_print_drsuapi_DsReplicaInfoType(struct ndr_print *ndr, const char *name, enum drsuapi_DsReplicaInfoType r)
9798 const char *val = NULL;
9800 switch (r) {
9801 case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS: val = "DRSUAPI_DS_REPLICA_INFO_NEIGHBORS"; break;
9802 case DRSUAPI_DS_REPLICA_INFO_CURSORS: val = "DRSUAPI_DS_REPLICA_INFO_CURSORS"; break;
9803 case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA: val = "DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA"; break;
9804 case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES: val = "DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES"; break;
9805 case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES: val = "DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES"; break;
9806 case DRSUAPI_DS_REPLICA_INFO_PENDING_OPS: val = "DRSUAPI_DS_REPLICA_INFO_PENDING_OPS"; break;
9807 case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA: val = "DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA"; break;
9808 case DRSUAPI_DS_REPLICA_INFO_CURSORS2: val = "DRSUAPI_DS_REPLICA_INFO_CURSORS2"; break;
9809 case DRSUAPI_DS_REPLICA_INFO_CURSORS3: val = "DRSUAPI_DS_REPLICA_INFO_CURSORS3"; break;
9810 case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2: val = "DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2"; break;
9811 case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2: val = "DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2"; break;
9812 case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02: val = "DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02"; break;
9813 case DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04: val = "DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04"; break;
9814 case DRSUAPI_DS_REPLICA_INFO_CURSORS05: val = "DRSUAPI_DS_REPLICA_INFO_CURSORS05"; break;
9815 case DRSUAPI_DS_REPLICA_INFO_06: val = "DRSUAPI_DS_REPLICA_INFO_06"; break;
9817 ndr_print_enum(ndr, name, "ENUM", val, r);
9820 static enum ndr_err_code ndr_push_drsuapi_DsReplicaGetInfoRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaGetInfoRequest1 *r)
9822 if (ndr_flags & NDR_SCALARS) {
9823 NDR_CHECK(ndr_push_align(ndr, 5));
9824 NDR_CHECK(ndr_push_drsuapi_DsReplicaInfoType(ndr, NDR_SCALARS, r->info_type));
9825 NDR_CHECK(ndr_push_unique_ptr(ndr, r->object_dn));
9826 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid1));
9827 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
9829 if (ndr_flags & NDR_BUFFERS) {
9830 if (r->object_dn) {
9831 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
9832 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9833 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
9834 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->object_dn, ndr_charset_length(r->object_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9837 return NDR_ERR_SUCCESS;
9840 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaGetInfoRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaGetInfoRequest1 *r)
9842 uint32_t _ptr_object_dn;
9843 uint32_t size_object_dn_1 = 0;
9844 uint32_t length_object_dn_1 = 0;
9845 TALLOC_CTX *_mem_save_object_dn_0;
9846 if (ndr_flags & NDR_SCALARS) {
9847 NDR_CHECK(ndr_pull_align(ndr, 5));
9848 NDR_CHECK(ndr_pull_drsuapi_DsReplicaInfoType(ndr, NDR_SCALARS, &r->info_type));
9849 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_object_dn));
9850 if (_ptr_object_dn) {
9851 NDR_PULL_ALLOC(ndr, r->object_dn);
9852 } else {
9853 r->object_dn = NULL;
9855 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid1));
9856 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
9858 if (ndr_flags & NDR_BUFFERS) {
9859 if (r->object_dn) {
9860 _mem_save_object_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
9861 NDR_PULL_SET_MEM_CTX(ndr, r->object_dn, 0);
9862 NDR_CHECK(ndr_pull_array_size(ndr, &r->object_dn));
9863 NDR_CHECK(ndr_pull_array_length(ndr, &r->object_dn));
9864 size_object_dn_1 = ndr_get_array_size(ndr, &r->object_dn);
9865 length_object_dn_1 = ndr_get_array_length(ndr, &r->object_dn);
9866 if (length_object_dn_1 > size_object_dn_1) {
9867 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_object_dn_1, length_object_dn_1);
9869 NDR_CHECK(ndr_check_string_terminator(ndr, length_object_dn_1, sizeof(uint16_t)));
9870 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->object_dn, length_object_dn_1, sizeof(uint16_t), CH_UTF16));
9871 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_object_dn_0, 0);
9874 return NDR_ERR_SUCCESS;
9877 _PUBLIC_ void ndr_print_drsuapi_DsReplicaGetInfoRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaGetInfoRequest1 *r)
9879 ndr_print_struct(ndr, name, "drsuapi_DsReplicaGetInfoRequest1");
9880 ndr->depth++;
9881 ndr_print_drsuapi_DsReplicaInfoType(ndr, "info_type", r->info_type);
9882 ndr_print_ptr(ndr, "object_dn", r->object_dn);
9883 ndr->depth++;
9884 if (r->object_dn) {
9885 ndr_print_string(ndr, "object_dn", r->object_dn);
9887 ndr->depth--;
9888 ndr_print_GUID(ndr, "guid1", &r->guid1);
9889 ndr->depth--;
9892 static enum ndr_err_code ndr_push_drsuapi_DsReplicaGetInfoRequest2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaGetInfoRequest2 *r)
9894 if (ndr_flags & NDR_SCALARS) {
9895 NDR_CHECK(ndr_push_align(ndr, 5));
9896 NDR_CHECK(ndr_push_drsuapi_DsReplicaInfoType(ndr, NDR_SCALARS, r->info_type));
9897 NDR_CHECK(ndr_push_unique_ptr(ndr, r->object_dn));
9898 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid1));
9899 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
9900 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string1));
9901 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string2));
9902 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
9903 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
9905 if (ndr_flags & NDR_BUFFERS) {
9906 if (r->object_dn) {
9907 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
9908 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9909 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
9910 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->object_dn, ndr_charset_length(r->object_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9912 if (r->string1) {
9913 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->string1, CH_UTF16)));
9914 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9915 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->string1, CH_UTF16)));
9916 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string1, ndr_charset_length(r->string1, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9918 if (r->string2) {
9919 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->string2, CH_UTF16)));
9920 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9921 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->string2, CH_UTF16)));
9922 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string2, ndr_charset_length(r->string2, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9925 return NDR_ERR_SUCCESS;
9928 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaGetInfoRequest2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaGetInfoRequest2 *r)
9930 uint32_t _ptr_object_dn;
9931 uint32_t size_object_dn_1 = 0;
9932 uint32_t length_object_dn_1 = 0;
9933 TALLOC_CTX *_mem_save_object_dn_0;
9934 uint32_t _ptr_string1;
9935 uint32_t size_string1_1 = 0;
9936 uint32_t length_string1_1 = 0;
9937 TALLOC_CTX *_mem_save_string1_0;
9938 uint32_t _ptr_string2;
9939 uint32_t size_string2_1 = 0;
9940 uint32_t length_string2_1 = 0;
9941 TALLOC_CTX *_mem_save_string2_0;
9942 if (ndr_flags & NDR_SCALARS) {
9943 NDR_CHECK(ndr_pull_align(ndr, 5));
9944 NDR_CHECK(ndr_pull_drsuapi_DsReplicaInfoType(ndr, NDR_SCALARS, &r->info_type));
9945 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_object_dn));
9946 if (_ptr_object_dn) {
9947 NDR_PULL_ALLOC(ndr, r->object_dn);
9948 } else {
9949 r->object_dn = NULL;
9951 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid1));
9952 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
9953 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string1));
9954 if (_ptr_string1) {
9955 NDR_PULL_ALLOC(ndr, r->string1);
9956 } else {
9957 r->string1 = NULL;
9959 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string2));
9960 if (_ptr_string2) {
9961 NDR_PULL_ALLOC(ndr, r->string2);
9962 } else {
9963 r->string2 = NULL;
9965 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
9966 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
9968 if (ndr_flags & NDR_BUFFERS) {
9969 if (r->object_dn) {
9970 _mem_save_object_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
9971 NDR_PULL_SET_MEM_CTX(ndr, r->object_dn, 0);
9972 NDR_CHECK(ndr_pull_array_size(ndr, &r->object_dn));
9973 NDR_CHECK(ndr_pull_array_length(ndr, &r->object_dn));
9974 size_object_dn_1 = ndr_get_array_size(ndr, &r->object_dn);
9975 length_object_dn_1 = ndr_get_array_length(ndr, &r->object_dn);
9976 if (length_object_dn_1 > size_object_dn_1) {
9977 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_object_dn_1, length_object_dn_1);
9979 NDR_CHECK(ndr_check_string_terminator(ndr, length_object_dn_1, sizeof(uint16_t)));
9980 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->object_dn, length_object_dn_1, sizeof(uint16_t), CH_UTF16));
9981 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_object_dn_0, 0);
9983 if (r->string1) {
9984 _mem_save_string1_0 = NDR_PULL_GET_MEM_CTX(ndr);
9985 NDR_PULL_SET_MEM_CTX(ndr, r->string1, 0);
9986 NDR_CHECK(ndr_pull_array_size(ndr, &r->string1));
9987 NDR_CHECK(ndr_pull_array_length(ndr, &r->string1));
9988 size_string1_1 = ndr_get_array_size(ndr, &r->string1);
9989 length_string1_1 = ndr_get_array_length(ndr, &r->string1);
9990 if (length_string1_1 > size_string1_1) {
9991 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_string1_1, length_string1_1);
9993 NDR_CHECK(ndr_check_string_terminator(ndr, length_string1_1, sizeof(uint16_t)));
9994 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string1, length_string1_1, sizeof(uint16_t), CH_UTF16));
9995 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string1_0, 0);
9997 if (r->string2) {
9998 _mem_save_string2_0 = NDR_PULL_GET_MEM_CTX(ndr);
9999 NDR_PULL_SET_MEM_CTX(ndr, r->string2, 0);
10000 NDR_CHECK(ndr_pull_array_size(ndr, &r->string2));
10001 NDR_CHECK(ndr_pull_array_length(ndr, &r->string2));
10002 size_string2_1 = ndr_get_array_size(ndr, &r->string2);
10003 length_string2_1 = ndr_get_array_length(ndr, &r->string2);
10004 if (length_string2_1 > size_string2_1) {
10005 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_string2_1, length_string2_1);
10007 NDR_CHECK(ndr_check_string_terminator(ndr, length_string2_1, sizeof(uint16_t)));
10008 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string2, length_string2_1, sizeof(uint16_t), CH_UTF16));
10009 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string2_0, 0);
10012 return NDR_ERR_SUCCESS;
10015 _PUBLIC_ void ndr_print_drsuapi_DsReplicaGetInfoRequest2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaGetInfoRequest2 *r)
10017 ndr_print_struct(ndr, name, "drsuapi_DsReplicaGetInfoRequest2");
10018 ndr->depth++;
10019 ndr_print_drsuapi_DsReplicaInfoType(ndr, "info_type", r->info_type);
10020 ndr_print_ptr(ndr, "object_dn", r->object_dn);
10021 ndr->depth++;
10022 if (r->object_dn) {
10023 ndr_print_string(ndr, "object_dn", r->object_dn);
10025 ndr->depth--;
10026 ndr_print_GUID(ndr, "guid1", &r->guid1);
10027 ndr_print_uint32(ndr, "unknown1", r->unknown1);
10028 ndr_print_ptr(ndr, "string1", r->string1);
10029 ndr->depth++;
10030 if (r->string1) {
10031 ndr_print_string(ndr, "string1", r->string1);
10033 ndr->depth--;
10034 ndr_print_ptr(ndr, "string2", r->string2);
10035 ndr->depth++;
10036 if (r->string2) {
10037 ndr_print_string(ndr, "string2", r->string2);
10039 ndr->depth--;
10040 ndr_print_uint32(ndr, "unknown2", r->unknown2);
10041 ndr->depth--;
10044 static enum ndr_err_code ndr_push_drsuapi_DsReplicaGetInfoRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsReplicaGetInfoRequest *r)
10046 if (ndr_flags & NDR_SCALARS) {
10047 int level = ndr_push_get_switch_value(ndr, r);
10048 NDR_CHECK(ndr_push_drsuapi_DsReplicaGetInfoLevel(ndr, NDR_SCALARS, level));
10049 NDR_CHECK(ndr_push_union_align(ndr, 5));
10050 switch (level) {
10051 case DRSUAPI_DS_REPLICA_GET_INFO: {
10052 NDR_CHECK(ndr_push_drsuapi_DsReplicaGetInfoRequest1(ndr, NDR_SCALARS, &r->req1));
10053 break; }
10055 case DRSUAPI_DS_REPLICA_GET_INFO2: {
10056 NDR_CHECK(ndr_push_drsuapi_DsReplicaGetInfoRequest2(ndr, NDR_SCALARS, &r->req2));
10057 break; }
10059 default:
10060 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10063 if (ndr_flags & NDR_BUFFERS) {
10064 int level = ndr_push_get_switch_value(ndr, r);
10065 switch (level) {
10066 case DRSUAPI_DS_REPLICA_GET_INFO:
10067 NDR_CHECK(ndr_push_drsuapi_DsReplicaGetInfoRequest1(ndr, NDR_BUFFERS, &r->req1));
10068 break;
10070 case DRSUAPI_DS_REPLICA_GET_INFO2:
10071 NDR_CHECK(ndr_push_drsuapi_DsReplicaGetInfoRequest2(ndr, NDR_BUFFERS, &r->req2));
10072 break;
10074 default:
10075 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10078 return NDR_ERR_SUCCESS;
10081 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaGetInfoRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsReplicaGetInfoRequest *r)
10083 int level;
10084 uint32_t _level;
10085 level = ndr_pull_get_switch_value(ndr, r);
10086 if (ndr_flags & NDR_SCALARS) {
10087 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
10088 if (_level != level) {
10089 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
10091 NDR_CHECK(ndr_pull_union_align(ndr, 5));
10092 switch (level) {
10093 case DRSUAPI_DS_REPLICA_GET_INFO: {
10094 NDR_CHECK(ndr_pull_drsuapi_DsReplicaGetInfoRequest1(ndr, NDR_SCALARS, &r->req1));
10095 break; }
10097 case DRSUAPI_DS_REPLICA_GET_INFO2: {
10098 NDR_CHECK(ndr_pull_drsuapi_DsReplicaGetInfoRequest2(ndr, NDR_SCALARS, &r->req2));
10099 break; }
10101 default:
10102 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10105 if (ndr_flags & NDR_BUFFERS) {
10106 switch (level) {
10107 case DRSUAPI_DS_REPLICA_GET_INFO:
10108 NDR_CHECK(ndr_pull_drsuapi_DsReplicaGetInfoRequest1(ndr, NDR_BUFFERS, &r->req1));
10109 break;
10111 case DRSUAPI_DS_REPLICA_GET_INFO2:
10112 NDR_CHECK(ndr_pull_drsuapi_DsReplicaGetInfoRequest2(ndr, NDR_BUFFERS, &r->req2));
10113 break;
10115 default:
10116 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10119 return NDR_ERR_SUCCESS;
10122 _PUBLIC_ void ndr_print_drsuapi_DsReplicaGetInfoRequest(struct ndr_print *ndr, const char *name, const union drsuapi_DsReplicaGetInfoRequest *r)
10124 int level;
10125 level = ndr_print_get_switch_value(ndr, r);
10126 ndr_print_union(ndr, name, level, "drsuapi_DsReplicaGetInfoRequest");
10127 switch (level) {
10128 case DRSUAPI_DS_REPLICA_GET_INFO:
10129 ndr_print_drsuapi_DsReplicaGetInfoRequest1(ndr, "req1", &r->req1);
10130 break;
10132 case DRSUAPI_DS_REPLICA_GET_INFO2:
10133 ndr_print_drsuapi_DsReplicaGetInfoRequest2(ndr, "req2", &r->req2);
10134 break;
10136 default:
10137 ndr_print_bad_level(ndr, name, level);
10141 static enum ndr_err_code ndr_push_drsuapi_DsReplicaNeighbour(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaNeighbour *r)
10143 if (ndr_flags & NDR_SCALARS) {
10144 NDR_CHECK(ndr_push_align(ndr, 8));
10145 NDR_CHECK(ndr_push_unique_ptr(ndr, r->naming_context_dn));
10146 NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dsa_obj_dn));
10147 NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dsa_address));
10148 NDR_CHECK(ndr_push_unique_ptr(ndr, r->transport_obj_dn));
10149 NDR_CHECK(ndr_push_drsuapi_DsReplicaNeighbourFlags(ndr, NDR_SCALARS, r->replica_flags));
10150 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
10151 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->naming_context_obj_guid));
10152 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_obj_guid));
10153 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
10154 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->transport_obj_guid));
10155 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->tmp_highest_usn));
10156 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->highest_usn));
10157 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_success));
10158 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_attempt));
10159 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->result_last_attempt));
10160 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->consecutive_sync_failures));
10161 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
10163 if (ndr_flags & NDR_BUFFERS) {
10164 if (r->naming_context_dn) {
10165 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->naming_context_dn, CH_UTF16)));
10166 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10167 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->naming_context_dn, CH_UTF16)));
10168 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->naming_context_dn, ndr_charset_length(r->naming_context_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10170 if (r->source_dsa_obj_dn) {
10171 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_obj_dn, CH_UTF16)));
10172 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10173 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_obj_dn, CH_UTF16)));
10174 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->source_dsa_obj_dn, ndr_charset_length(r->source_dsa_obj_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10176 if (r->source_dsa_address) {
10177 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_address, CH_UTF16)));
10178 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10179 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_address, CH_UTF16)));
10180 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->source_dsa_address, ndr_charset_length(r->source_dsa_address, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10182 if (r->transport_obj_dn) {
10183 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->transport_obj_dn, CH_UTF16)));
10184 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10185 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->transport_obj_dn, CH_UTF16)));
10186 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->transport_obj_dn, ndr_charset_length(r->transport_obj_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10189 return NDR_ERR_SUCCESS;
10192 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaNeighbour(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaNeighbour *r)
10194 uint32_t _ptr_naming_context_dn;
10195 uint32_t size_naming_context_dn_1 = 0;
10196 uint32_t length_naming_context_dn_1 = 0;
10197 TALLOC_CTX *_mem_save_naming_context_dn_0;
10198 uint32_t _ptr_source_dsa_obj_dn;
10199 uint32_t size_source_dsa_obj_dn_1 = 0;
10200 uint32_t length_source_dsa_obj_dn_1 = 0;
10201 TALLOC_CTX *_mem_save_source_dsa_obj_dn_0;
10202 uint32_t _ptr_source_dsa_address;
10203 uint32_t size_source_dsa_address_1 = 0;
10204 uint32_t length_source_dsa_address_1 = 0;
10205 TALLOC_CTX *_mem_save_source_dsa_address_0;
10206 uint32_t _ptr_transport_obj_dn;
10207 uint32_t size_transport_obj_dn_1 = 0;
10208 uint32_t length_transport_obj_dn_1 = 0;
10209 TALLOC_CTX *_mem_save_transport_obj_dn_0;
10210 if (ndr_flags & NDR_SCALARS) {
10211 NDR_CHECK(ndr_pull_align(ndr, 8));
10212 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_naming_context_dn));
10213 if (_ptr_naming_context_dn) {
10214 NDR_PULL_ALLOC(ndr, r->naming_context_dn);
10215 } else {
10216 r->naming_context_dn = NULL;
10218 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_source_dsa_obj_dn));
10219 if (_ptr_source_dsa_obj_dn) {
10220 NDR_PULL_ALLOC(ndr, r->source_dsa_obj_dn);
10221 } else {
10222 r->source_dsa_obj_dn = NULL;
10224 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_source_dsa_address));
10225 if (_ptr_source_dsa_address) {
10226 NDR_PULL_ALLOC(ndr, r->source_dsa_address);
10227 } else {
10228 r->source_dsa_address = NULL;
10230 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_transport_obj_dn));
10231 if (_ptr_transport_obj_dn) {
10232 NDR_PULL_ALLOC(ndr, r->transport_obj_dn);
10233 } else {
10234 r->transport_obj_dn = NULL;
10236 NDR_CHECK(ndr_pull_drsuapi_DsReplicaNeighbourFlags(ndr, NDR_SCALARS, &r->replica_flags));
10237 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
10238 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->naming_context_obj_guid));
10239 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_obj_guid));
10240 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
10241 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->transport_obj_guid));
10242 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->tmp_highest_usn));
10243 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->highest_usn));
10244 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_success));
10245 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_attempt));
10246 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->result_last_attempt));
10247 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->consecutive_sync_failures));
10248 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
10250 if (ndr_flags & NDR_BUFFERS) {
10251 if (r->naming_context_dn) {
10252 _mem_save_naming_context_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
10253 NDR_PULL_SET_MEM_CTX(ndr, r->naming_context_dn, 0);
10254 NDR_CHECK(ndr_pull_array_size(ndr, &r->naming_context_dn));
10255 NDR_CHECK(ndr_pull_array_length(ndr, &r->naming_context_dn));
10256 size_naming_context_dn_1 = ndr_get_array_size(ndr, &r->naming_context_dn);
10257 length_naming_context_dn_1 = ndr_get_array_length(ndr, &r->naming_context_dn);
10258 if (length_naming_context_dn_1 > size_naming_context_dn_1) {
10259 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_naming_context_dn_1, length_naming_context_dn_1);
10261 NDR_CHECK(ndr_check_string_terminator(ndr, length_naming_context_dn_1, sizeof(uint16_t)));
10262 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->naming_context_dn, length_naming_context_dn_1, sizeof(uint16_t), CH_UTF16));
10263 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_naming_context_dn_0, 0);
10265 if (r->source_dsa_obj_dn) {
10266 _mem_save_source_dsa_obj_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
10267 NDR_PULL_SET_MEM_CTX(ndr, r->source_dsa_obj_dn, 0);
10268 NDR_CHECK(ndr_pull_array_size(ndr, &r->source_dsa_obj_dn));
10269 NDR_CHECK(ndr_pull_array_length(ndr, &r->source_dsa_obj_dn));
10270 size_source_dsa_obj_dn_1 = ndr_get_array_size(ndr, &r->source_dsa_obj_dn);
10271 length_source_dsa_obj_dn_1 = ndr_get_array_length(ndr, &r->source_dsa_obj_dn);
10272 if (length_source_dsa_obj_dn_1 > size_source_dsa_obj_dn_1) {
10273 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_source_dsa_obj_dn_1, length_source_dsa_obj_dn_1);
10275 NDR_CHECK(ndr_check_string_terminator(ndr, length_source_dsa_obj_dn_1, sizeof(uint16_t)));
10276 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->source_dsa_obj_dn, length_source_dsa_obj_dn_1, sizeof(uint16_t), CH_UTF16));
10277 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_source_dsa_obj_dn_0, 0);
10279 if (r->source_dsa_address) {
10280 _mem_save_source_dsa_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
10281 NDR_PULL_SET_MEM_CTX(ndr, r->source_dsa_address, 0);
10282 NDR_CHECK(ndr_pull_array_size(ndr, &r->source_dsa_address));
10283 NDR_CHECK(ndr_pull_array_length(ndr, &r->source_dsa_address));
10284 size_source_dsa_address_1 = ndr_get_array_size(ndr, &r->source_dsa_address);
10285 length_source_dsa_address_1 = ndr_get_array_length(ndr, &r->source_dsa_address);
10286 if (length_source_dsa_address_1 > size_source_dsa_address_1) {
10287 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_source_dsa_address_1, length_source_dsa_address_1);
10289 NDR_CHECK(ndr_check_string_terminator(ndr, length_source_dsa_address_1, sizeof(uint16_t)));
10290 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->source_dsa_address, length_source_dsa_address_1, sizeof(uint16_t), CH_UTF16));
10291 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_source_dsa_address_0, 0);
10293 if (r->transport_obj_dn) {
10294 _mem_save_transport_obj_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
10295 NDR_PULL_SET_MEM_CTX(ndr, r->transport_obj_dn, 0);
10296 NDR_CHECK(ndr_pull_array_size(ndr, &r->transport_obj_dn));
10297 NDR_CHECK(ndr_pull_array_length(ndr, &r->transport_obj_dn));
10298 size_transport_obj_dn_1 = ndr_get_array_size(ndr, &r->transport_obj_dn);
10299 length_transport_obj_dn_1 = ndr_get_array_length(ndr, &r->transport_obj_dn);
10300 if (length_transport_obj_dn_1 > size_transport_obj_dn_1) {
10301 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_transport_obj_dn_1, length_transport_obj_dn_1);
10303 NDR_CHECK(ndr_check_string_terminator(ndr, length_transport_obj_dn_1, sizeof(uint16_t)));
10304 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->transport_obj_dn, length_transport_obj_dn_1, sizeof(uint16_t), CH_UTF16));
10305 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_transport_obj_dn_0, 0);
10308 return NDR_ERR_SUCCESS;
10311 _PUBLIC_ void ndr_print_drsuapi_DsReplicaNeighbour(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaNeighbour *r)
10313 ndr_print_struct(ndr, name, "drsuapi_DsReplicaNeighbour");
10314 ndr->depth++;
10315 ndr_print_ptr(ndr, "naming_context_dn", r->naming_context_dn);
10316 ndr->depth++;
10317 if (r->naming_context_dn) {
10318 ndr_print_string(ndr, "naming_context_dn", r->naming_context_dn);
10320 ndr->depth--;
10321 ndr_print_ptr(ndr, "source_dsa_obj_dn", r->source_dsa_obj_dn);
10322 ndr->depth++;
10323 if (r->source_dsa_obj_dn) {
10324 ndr_print_string(ndr, "source_dsa_obj_dn", r->source_dsa_obj_dn);
10326 ndr->depth--;
10327 ndr_print_ptr(ndr, "source_dsa_address", r->source_dsa_address);
10328 ndr->depth++;
10329 if (r->source_dsa_address) {
10330 ndr_print_string(ndr, "source_dsa_address", r->source_dsa_address);
10332 ndr->depth--;
10333 ndr_print_ptr(ndr, "transport_obj_dn", r->transport_obj_dn);
10334 ndr->depth++;
10335 if (r->transport_obj_dn) {
10336 ndr_print_string(ndr, "transport_obj_dn", r->transport_obj_dn);
10338 ndr->depth--;
10339 ndr_print_drsuapi_DsReplicaNeighbourFlags(ndr, "replica_flags", r->replica_flags);
10340 ndr_print_uint32(ndr, "reserved", r->reserved);
10341 ndr_print_GUID(ndr, "naming_context_obj_guid", &r->naming_context_obj_guid);
10342 ndr_print_GUID(ndr, "source_dsa_obj_guid", &r->source_dsa_obj_guid);
10343 ndr_print_GUID(ndr, "source_dsa_invocation_id", &r->source_dsa_invocation_id);
10344 ndr_print_GUID(ndr, "transport_obj_guid", &r->transport_obj_guid);
10345 ndr_print_hyper(ndr, "tmp_highest_usn", r->tmp_highest_usn);
10346 ndr_print_hyper(ndr, "highest_usn", r->highest_usn);
10347 ndr_print_NTTIME(ndr, "last_success", r->last_success);
10348 ndr_print_NTTIME(ndr, "last_attempt", r->last_attempt);
10349 ndr_print_WERROR(ndr, "result_last_attempt", r->result_last_attempt);
10350 ndr_print_uint32(ndr, "consecutive_sync_failures", r->consecutive_sync_failures);
10351 ndr->depth--;
10354 static enum ndr_err_code ndr_push_drsuapi_DsReplicaNeighbourCtr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaNeighbourCtr *r)
10356 uint32_t cntr_array_0;
10357 if (ndr_flags & NDR_SCALARS) {
10358 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
10359 NDR_CHECK(ndr_push_align(ndr, 8));
10360 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
10361 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
10362 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
10363 NDR_CHECK(ndr_push_drsuapi_DsReplicaNeighbour(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
10365 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
10367 if (ndr_flags & NDR_BUFFERS) {
10368 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
10369 NDR_CHECK(ndr_push_drsuapi_DsReplicaNeighbour(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
10372 return NDR_ERR_SUCCESS;
10375 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaNeighbourCtr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaNeighbourCtr *r)
10377 uint32_t size_array_0 = 0;
10378 uint32_t cntr_array_0;
10379 TALLOC_CTX *_mem_save_array_0;
10380 if (ndr_flags & NDR_SCALARS) {
10381 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
10382 NDR_CHECK(ndr_pull_align(ndr, 8));
10383 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
10384 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
10385 size_array_0 = ndr_get_array_size(ndr, &r->array);
10386 NDR_PULL_ALLOC_N(ndr, r->array, size_array_0);
10387 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10388 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
10389 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
10390 NDR_CHECK(ndr_pull_drsuapi_DsReplicaNeighbour(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
10392 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
10393 if (r->array) {
10394 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
10396 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
10398 if (ndr_flags & NDR_BUFFERS) {
10399 size_array_0 = ndr_get_array_size(ndr, &r->array);
10400 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10401 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
10402 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
10403 NDR_CHECK(ndr_pull_drsuapi_DsReplicaNeighbour(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
10405 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
10407 return NDR_ERR_SUCCESS;
10410 _PUBLIC_ void ndr_print_drsuapi_DsReplicaNeighbourCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaNeighbourCtr *r)
10412 uint32_t cntr_array_0;
10413 ndr_print_struct(ndr, name, "drsuapi_DsReplicaNeighbourCtr");
10414 ndr->depth++;
10415 ndr_print_uint32(ndr, "count", r->count);
10416 ndr_print_uint32(ndr, "reserved", r->reserved);
10417 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
10418 ndr->depth++;
10419 for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
10420 char *idx_0=NULL;
10421 if (asprintf(&idx_0, "[%d]", cntr_array_0) != -1) {
10422 ndr_print_drsuapi_DsReplicaNeighbour(ndr, "array", &r->array[cntr_array_0]);
10423 free(idx_0);
10426 ndr->depth--;
10427 ndr->depth--;
10430 static enum ndr_err_code ndr_push_drsuapi_DsReplicaCursorCtr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaCursorCtr *r)
10432 uint32_t cntr_array_0;
10433 if (ndr_flags & NDR_SCALARS) {
10434 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
10435 NDR_CHECK(ndr_push_align(ndr, 8));
10436 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
10437 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
10438 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
10439 NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
10441 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
10443 if (ndr_flags & NDR_BUFFERS) {
10445 return NDR_ERR_SUCCESS;
10448 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaCursorCtr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaCursorCtr *r)
10450 uint32_t size_array_0 = 0;
10451 uint32_t cntr_array_0;
10452 TALLOC_CTX *_mem_save_array_0;
10453 if (ndr_flags & NDR_SCALARS) {
10454 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
10455 NDR_CHECK(ndr_pull_align(ndr, 8));
10456 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
10457 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
10458 size_array_0 = ndr_get_array_size(ndr, &r->array);
10459 NDR_PULL_ALLOC_N(ndr, r->array, size_array_0);
10460 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10461 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
10462 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
10463 NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
10465 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
10466 if (r->array) {
10467 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
10469 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
10471 if (ndr_flags & NDR_BUFFERS) {
10473 return NDR_ERR_SUCCESS;
10476 _PUBLIC_ void ndr_print_drsuapi_DsReplicaCursorCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaCursorCtr *r)
10478 uint32_t cntr_array_0;
10479 ndr_print_struct(ndr, name, "drsuapi_DsReplicaCursorCtr");
10480 ndr->depth++;
10481 ndr_print_uint32(ndr, "count", r->count);
10482 ndr_print_uint32(ndr, "reserved", r->reserved);
10483 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
10484 ndr->depth++;
10485 for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
10486 char *idx_0=NULL;
10487 if (asprintf(&idx_0, "[%d]", cntr_array_0) != -1) {
10488 ndr_print_drsuapi_DsReplicaCursor(ndr, "array", &r->array[cntr_array_0]);
10489 free(idx_0);
10492 ndr->depth--;
10493 ndr->depth--;
10496 static enum ndr_err_code ndr_push_drsuapi_DsReplicaObjMetaData(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObjMetaData *r)
10498 if (ndr_flags & NDR_SCALARS) {
10499 NDR_CHECK(ndr_push_align(ndr, 8));
10500 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attribute_name));
10501 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
10502 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->originating_change_time));
10503 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->originating_invocation_id));
10504 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->originating_usn));
10505 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->local_usn));
10506 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
10508 if (ndr_flags & NDR_BUFFERS) {
10509 if (r->attribute_name) {
10510 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->attribute_name, CH_UTF16)));
10511 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10512 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->attribute_name, CH_UTF16)));
10513 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->attribute_name, ndr_charset_length(r->attribute_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10516 return NDR_ERR_SUCCESS;
10519 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjMetaData(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObjMetaData *r)
10521 uint32_t _ptr_attribute_name;
10522 uint32_t size_attribute_name_1 = 0;
10523 uint32_t length_attribute_name_1 = 0;
10524 TALLOC_CTX *_mem_save_attribute_name_0;
10525 if (ndr_flags & NDR_SCALARS) {
10526 NDR_CHECK(ndr_pull_align(ndr, 8));
10527 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attribute_name));
10528 if (_ptr_attribute_name) {
10529 NDR_PULL_ALLOC(ndr, r->attribute_name);
10530 } else {
10531 r->attribute_name = NULL;
10533 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
10534 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->originating_change_time));
10535 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->originating_invocation_id));
10536 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->originating_usn));
10537 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->local_usn));
10538 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
10540 if (ndr_flags & NDR_BUFFERS) {
10541 if (r->attribute_name) {
10542 _mem_save_attribute_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10543 NDR_PULL_SET_MEM_CTX(ndr, r->attribute_name, 0);
10544 NDR_CHECK(ndr_pull_array_size(ndr, &r->attribute_name));
10545 NDR_CHECK(ndr_pull_array_length(ndr, &r->attribute_name));
10546 size_attribute_name_1 = ndr_get_array_size(ndr, &r->attribute_name);
10547 length_attribute_name_1 = ndr_get_array_length(ndr, &r->attribute_name);
10548 if (length_attribute_name_1 > size_attribute_name_1) {
10549 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_attribute_name_1, length_attribute_name_1);
10551 NDR_CHECK(ndr_check_string_terminator(ndr, length_attribute_name_1, sizeof(uint16_t)));
10552 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->attribute_name, length_attribute_name_1, sizeof(uint16_t), CH_UTF16));
10553 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribute_name_0, 0);
10556 return NDR_ERR_SUCCESS;
10559 _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjMetaData(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaObjMetaData *r)
10561 ndr_print_struct(ndr, name, "drsuapi_DsReplicaObjMetaData");
10562 ndr->depth++;
10563 ndr_print_ptr(ndr, "attribute_name", r->attribute_name);
10564 ndr->depth++;
10565 if (r->attribute_name) {
10566 ndr_print_string(ndr, "attribute_name", r->attribute_name);
10568 ndr->depth--;
10569 ndr_print_uint32(ndr, "version", r->version);
10570 ndr_print_NTTIME(ndr, "originating_change_time", r->originating_change_time);
10571 ndr_print_GUID(ndr, "originating_invocation_id", &r->originating_invocation_id);
10572 ndr_print_hyper(ndr, "originating_usn", r->originating_usn);
10573 ndr_print_hyper(ndr, "local_usn", r->local_usn);
10574 ndr->depth--;
10577 static enum ndr_err_code ndr_push_drsuapi_DsReplicaObjMetaDataCtr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObjMetaDataCtr *r)
10579 uint32_t cntr_array_0;
10580 if (ndr_flags & NDR_SCALARS) {
10581 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
10582 NDR_CHECK(ndr_push_align(ndr, 8));
10583 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
10584 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
10585 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
10586 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjMetaData(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
10588 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
10590 if (ndr_flags & NDR_BUFFERS) {
10591 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
10592 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjMetaData(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
10595 return NDR_ERR_SUCCESS;
10598 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjMetaDataCtr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObjMetaDataCtr *r)
10600 uint32_t size_array_0 = 0;
10601 uint32_t cntr_array_0;
10602 TALLOC_CTX *_mem_save_array_0;
10603 if (ndr_flags & NDR_SCALARS) {
10604 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
10605 NDR_CHECK(ndr_pull_align(ndr, 8));
10606 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
10607 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
10608 size_array_0 = ndr_get_array_size(ndr, &r->array);
10609 NDR_PULL_ALLOC_N(ndr, r->array, size_array_0);
10610 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10611 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
10612 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
10613 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjMetaData(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
10615 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
10616 if (r->array) {
10617 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
10619 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
10621 if (ndr_flags & NDR_BUFFERS) {
10622 size_array_0 = ndr_get_array_size(ndr, &r->array);
10623 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10624 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
10625 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
10626 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjMetaData(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
10628 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
10630 return NDR_ERR_SUCCESS;
10633 _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjMetaDataCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaObjMetaDataCtr *r)
10635 uint32_t cntr_array_0;
10636 ndr_print_struct(ndr, name, "drsuapi_DsReplicaObjMetaDataCtr");
10637 ndr->depth++;
10638 ndr_print_uint32(ndr, "count", r->count);
10639 ndr_print_uint32(ndr, "reserved", r->reserved);
10640 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
10641 ndr->depth++;
10642 for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
10643 char *idx_0=NULL;
10644 if (asprintf(&idx_0, "[%d]", cntr_array_0) != -1) {
10645 ndr_print_drsuapi_DsReplicaObjMetaData(ndr, "array", &r->array[cntr_array_0]);
10646 free(idx_0);
10649 ndr->depth--;
10650 ndr->depth--;
10653 static enum ndr_err_code ndr_push_drsuapi_DsReplicaKccDsaFailure(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaKccDsaFailure *r)
10655 if (ndr_flags & NDR_SCALARS) {
10656 NDR_CHECK(ndr_push_align(ndr, 5));
10657 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dsa_obj_dn));
10658 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->dsa_obj_guid));
10659 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->first_failure));
10660 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_failures));
10661 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_result));
10662 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10664 if (ndr_flags & NDR_BUFFERS) {
10665 if (r->dsa_obj_dn) {
10666 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dsa_obj_dn, CH_UTF16)));
10667 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10668 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->dsa_obj_dn, CH_UTF16)));
10669 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dsa_obj_dn, ndr_charset_length(r->dsa_obj_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10672 return NDR_ERR_SUCCESS;
10675 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaKccDsaFailure(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaKccDsaFailure *r)
10677 uint32_t _ptr_dsa_obj_dn;
10678 uint32_t size_dsa_obj_dn_1 = 0;
10679 uint32_t length_dsa_obj_dn_1 = 0;
10680 TALLOC_CTX *_mem_save_dsa_obj_dn_0;
10681 if (ndr_flags & NDR_SCALARS) {
10682 NDR_CHECK(ndr_pull_align(ndr, 5));
10683 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dsa_obj_dn));
10684 if (_ptr_dsa_obj_dn) {
10685 NDR_PULL_ALLOC(ndr, r->dsa_obj_dn);
10686 } else {
10687 r->dsa_obj_dn = NULL;
10689 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->dsa_obj_guid));
10690 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->first_failure));
10691 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_failures));
10692 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_result));
10693 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10695 if (ndr_flags & NDR_BUFFERS) {
10696 if (r->dsa_obj_dn) {
10697 _mem_save_dsa_obj_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
10698 NDR_PULL_SET_MEM_CTX(ndr, r->dsa_obj_dn, 0);
10699 NDR_CHECK(ndr_pull_array_size(ndr, &r->dsa_obj_dn));
10700 NDR_CHECK(ndr_pull_array_length(ndr, &r->dsa_obj_dn));
10701 size_dsa_obj_dn_1 = ndr_get_array_size(ndr, &r->dsa_obj_dn);
10702 length_dsa_obj_dn_1 = ndr_get_array_length(ndr, &r->dsa_obj_dn);
10703 if (length_dsa_obj_dn_1 > size_dsa_obj_dn_1) {
10704 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_dsa_obj_dn_1, length_dsa_obj_dn_1);
10706 NDR_CHECK(ndr_check_string_terminator(ndr, length_dsa_obj_dn_1, sizeof(uint16_t)));
10707 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dsa_obj_dn, length_dsa_obj_dn_1, sizeof(uint16_t), CH_UTF16));
10708 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dsa_obj_dn_0, 0);
10711 return NDR_ERR_SUCCESS;
10714 _PUBLIC_ void ndr_print_drsuapi_DsReplicaKccDsaFailure(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaKccDsaFailure *r)
10716 ndr_print_struct(ndr, name, "drsuapi_DsReplicaKccDsaFailure");
10717 ndr->depth++;
10718 ndr_print_ptr(ndr, "dsa_obj_dn", r->dsa_obj_dn);
10719 ndr->depth++;
10720 if (r->dsa_obj_dn) {
10721 ndr_print_string(ndr, "dsa_obj_dn", r->dsa_obj_dn);
10723 ndr->depth--;
10724 ndr_print_GUID(ndr, "dsa_obj_guid", &r->dsa_obj_guid);
10725 ndr_print_NTTIME(ndr, "first_failure", r->first_failure);
10726 ndr_print_uint32(ndr, "num_failures", r->num_failures);
10727 ndr_print_WERROR(ndr, "last_result", r->last_result);
10728 ndr->depth--;
10731 static enum ndr_err_code ndr_push_drsuapi_DsReplicaKccDsaFailuresCtr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaKccDsaFailuresCtr *r)
10733 uint32_t cntr_array_0;
10734 if (ndr_flags & NDR_SCALARS) {
10735 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
10736 NDR_CHECK(ndr_push_align(ndr, 5));
10737 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
10738 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
10739 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
10740 NDR_CHECK(ndr_push_drsuapi_DsReplicaKccDsaFailure(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
10742 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10744 if (ndr_flags & NDR_BUFFERS) {
10745 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
10746 NDR_CHECK(ndr_push_drsuapi_DsReplicaKccDsaFailure(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
10749 return NDR_ERR_SUCCESS;
10752 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaKccDsaFailuresCtr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaKccDsaFailuresCtr *r)
10754 uint32_t size_array_0 = 0;
10755 uint32_t cntr_array_0;
10756 TALLOC_CTX *_mem_save_array_0;
10757 if (ndr_flags & NDR_SCALARS) {
10758 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
10759 NDR_CHECK(ndr_pull_align(ndr, 5));
10760 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
10761 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
10762 size_array_0 = ndr_get_array_size(ndr, &r->array);
10763 NDR_PULL_ALLOC_N(ndr, r->array, size_array_0);
10764 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10765 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
10766 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
10767 NDR_CHECK(ndr_pull_drsuapi_DsReplicaKccDsaFailure(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
10769 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
10770 if (r->array) {
10771 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
10773 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10775 if (ndr_flags & NDR_BUFFERS) {
10776 size_array_0 = ndr_get_array_size(ndr, &r->array);
10777 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10778 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
10779 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
10780 NDR_CHECK(ndr_pull_drsuapi_DsReplicaKccDsaFailure(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
10782 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
10784 return NDR_ERR_SUCCESS;
10787 _PUBLIC_ void ndr_print_drsuapi_DsReplicaKccDsaFailuresCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaKccDsaFailuresCtr *r)
10789 uint32_t cntr_array_0;
10790 ndr_print_struct(ndr, name, "drsuapi_DsReplicaKccDsaFailuresCtr");
10791 ndr->depth++;
10792 ndr_print_uint32(ndr, "count", r->count);
10793 ndr_print_uint32(ndr, "reserved", r->reserved);
10794 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
10795 ndr->depth++;
10796 for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
10797 char *idx_0=NULL;
10798 if (asprintf(&idx_0, "[%d]", cntr_array_0) != -1) {
10799 ndr_print_drsuapi_DsReplicaKccDsaFailure(ndr, "array", &r->array[cntr_array_0]);
10800 free(idx_0);
10803 ndr->depth--;
10804 ndr->depth--;
10807 static enum ndr_err_code ndr_push_drsuapi_DsReplicaOpType(struct ndr_push *ndr, int ndr_flags, enum drsuapi_DsReplicaOpType r)
10809 NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r));
10810 return NDR_ERR_SUCCESS;
10813 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaOpType(struct ndr_pull *ndr, int ndr_flags, enum drsuapi_DsReplicaOpType *r)
10815 uint16_t v;
10816 NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v));
10817 *r = v;
10818 return NDR_ERR_SUCCESS;
10821 _PUBLIC_ void ndr_print_drsuapi_DsReplicaOpType(struct ndr_print *ndr, const char *name, enum drsuapi_DsReplicaOpType r)
10823 const char *val = NULL;
10825 switch (r) {
10826 case DRSUAPI_DS_REPLICA_OP_TYPE_SYNC: val = "DRSUAPI_DS_REPLICA_OP_TYPE_SYNC"; break;
10827 case DRSUAPI_DS_REPLICA_OP_TYPE_ADD: val = "DRSUAPI_DS_REPLICA_OP_TYPE_ADD"; break;
10828 case DRSUAPI_DS_REPLICA_OP_TYPE_DELETE: val = "DRSUAPI_DS_REPLICA_OP_TYPE_DELETE"; break;
10829 case DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY: val = "DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY"; break;
10830 case DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS: val = "DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS"; break;
10832 ndr_print_enum(ndr, name, "ENUM", val, r);
10835 static enum ndr_err_code ndr_push_drsuapi_DsRplicaOpOptions(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsRplicaOpOptions *r)
10837 if (ndr_flags & NDR_SCALARS) {
10838 int level = ndr_push_get_switch_value(ndr, r);
10839 NDR_CHECK(ndr_push_drsuapi_DsReplicaOpType(ndr, NDR_SCALARS, level));
10840 NDR_CHECK(ndr_push_union_align(ndr, 4));
10841 switch (level) {
10842 case DRSUAPI_DS_REPLICA_OP_TYPE_SYNC: {
10843 NDR_CHECK(ndr_push_drsuapi_DsReplicaSyncOptions(ndr, NDR_SCALARS, r->sync));
10844 break; }
10846 case DRSUAPI_DS_REPLICA_OP_TYPE_ADD: {
10847 NDR_CHECK(ndr_push_drsuapi_DsReplicaAddOptions(ndr, NDR_SCALARS, r->add));
10848 break; }
10850 case DRSUAPI_DS_REPLICA_OP_TYPE_DELETE: {
10851 NDR_CHECK(ndr_push_drsuapi_DsReplicaDeleteOptions(ndr, NDR_SCALARS, r->op_delete));
10852 break; }
10854 case DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY: {
10855 NDR_CHECK(ndr_push_drsuapi_DsReplicaModifyOptions(ndr, NDR_SCALARS, r->modify));
10856 break; }
10858 case DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS: {
10859 NDR_CHECK(ndr_push_drsuapi_DsReplicaUpdateRefsOptions(ndr, NDR_SCALARS, r->update_refs));
10860 break; }
10862 default: {
10863 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown));
10864 break; }
10868 if (ndr_flags & NDR_BUFFERS) {
10869 int level = ndr_push_get_switch_value(ndr, r);
10870 switch (level) {
10871 case DRSUAPI_DS_REPLICA_OP_TYPE_SYNC:
10872 break;
10874 case DRSUAPI_DS_REPLICA_OP_TYPE_ADD:
10875 break;
10877 case DRSUAPI_DS_REPLICA_OP_TYPE_DELETE:
10878 break;
10880 case DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY:
10881 break;
10883 case DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS:
10884 break;
10886 default:
10887 break;
10891 return NDR_ERR_SUCCESS;
10894 static enum ndr_err_code ndr_pull_drsuapi_DsRplicaOpOptions(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsRplicaOpOptions *r)
10896 int level;
10897 uint16_t _level;
10898 level = ndr_pull_get_switch_value(ndr, r);
10899 if (ndr_flags & NDR_SCALARS) {
10900 NDR_CHECK(ndr_pull_uint1632(ndr, NDR_SCALARS, &_level));
10901 if (_level != level) {
10902 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
10904 NDR_CHECK(ndr_pull_union_align(ndr, 4));
10905 switch (level) {
10906 case DRSUAPI_DS_REPLICA_OP_TYPE_SYNC: {
10907 NDR_CHECK(ndr_pull_drsuapi_DsReplicaSyncOptions(ndr, NDR_SCALARS, &r->sync));
10908 break; }
10910 case DRSUAPI_DS_REPLICA_OP_TYPE_ADD: {
10911 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAddOptions(ndr, NDR_SCALARS, &r->add));
10912 break; }
10914 case DRSUAPI_DS_REPLICA_OP_TYPE_DELETE: {
10915 NDR_CHECK(ndr_pull_drsuapi_DsReplicaDeleteOptions(ndr, NDR_SCALARS, &r->op_delete));
10916 break; }
10918 case DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY: {
10919 NDR_CHECK(ndr_pull_drsuapi_DsReplicaModifyOptions(ndr, NDR_SCALARS, &r->modify));
10920 break; }
10922 case DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS: {
10923 NDR_CHECK(ndr_pull_drsuapi_DsReplicaUpdateRefsOptions(ndr, NDR_SCALARS, &r->update_refs));
10924 break; }
10926 default: {
10927 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
10928 break; }
10932 if (ndr_flags & NDR_BUFFERS) {
10933 switch (level) {
10934 case DRSUAPI_DS_REPLICA_OP_TYPE_SYNC:
10935 break;
10937 case DRSUAPI_DS_REPLICA_OP_TYPE_ADD:
10938 break;
10940 case DRSUAPI_DS_REPLICA_OP_TYPE_DELETE:
10941 break;
10943 case DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY:
10944 break;
10946 case DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS:
10947 break;
10949 default:
10950 break;
10954 return NDR_ERR_SUCCESS;
10957 _PUBLIC_ void ndr_print_drsuapi_DsRplicaOpOptions(struct ndr_print *ndr, const char *name, const union drsuapi_DsRplicaOpOptions *r)
10959 int level;
10960 level = ndr_print_get_switch_value(ndr, r);
10961 ndr_print_union(ndr, name, level, "drsuapi_DsRplicaOpOptions");
10962 switch (level) {
10963 case DRSUAPI_DS_REPLICA_OP_TYPE_SYNC:
10964 ndr_print_drsuapi_DsReplicaSyncOptions(ndr, "sync", r->sync);
10965 break;
10967 case DRSUAPI_DS_REPLICA_OP_TYPE_ADD:
10968 ndr_print_drsuapi_DsReplicaAddOptions(ndr, "add", r->add);
10969 break;
10971 case DRSUAPI_DS_REPLICA_OP_TYPE_DELETE:
10972 ndr_print_drsuapi_DsReplicaDeleteOptions(ndr, "op_delete", r->op_delete);
10973 break;
10975 case DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY:
10976 ndr_print_drsuapi_DsReplicaModifyOptions(ndr, "modify", r->modify);
10977 break;
10979 case DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS:
10980 ndr_print_drsuapi_DsReplicaUpdateRefsOptions(ndr, "update_refs", r->update_refs);
10981 break;
10983 default:
10984 ndr_print_uint32(ndr, "unknown", r->unknown);
10985 break;
10990 static enum ndr_err_code ndr_push_drsuapi_DsReplicaOp(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaOp *r)
10992 if (ndr_flags & NDR_SCALARS) {
10993 NDR_CHECK(ndr_push_align(ndr, 5));
10994 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->operation_start));
10995 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_num));
10996 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
10997 NDR_CHECK(ndr_push_drsuapi_DsReplicaOpType(ndr, NDR_SCALARS, r->operation_type));
10998 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->options, r->operation_type));
10999 NDR_CHECK(ndr_push_drsuapi_DsRplicaOpOptions(ndr, NDR_SCALARS, &r->options));
11000 NDR_CHECK(ndr_push_unique_ptr(ndr, r->nc_dn));
11001 NDR_CHECK(ndr_push_unique_ptr(ndr, r->remote_dsa_obj_dn));
11002 NDR_CHECK(ndr_push_unique_ptr(ndr, r->remote_dsa_address));
11003 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->nc_obj_guid));
11004 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->remote_dsa_obj_guid));
11005 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
11007 if (ndr_flags & NDR_BUFFERS) {
11008 if (r->nc_dn) {
11009 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->nc_dn, CH_UTF16)));
11010 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11011 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->nc_dn, CH_UTF16)));
11012 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->nc_dn, ndr_charset_length(r->nc_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11014 if (r->remote_dsa_obj_dn) {
11015 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->remote_dsa_obj_dn, CH_UTF16)));
11016 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11017 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->remote_dsa_obj_dn, CH_UTF16)));
11018 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->remote_dsa_obj_dn, ndr_charset_length(r->remote_dsa_obj_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11020 if (r->remote_dsa_address) {
11021 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->remote_dsa_address, CH_UTF16)));
11022 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11023 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->remote_dsa_address, CH_UTF16)));
11024 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->remote_dsa_address, ndr_charset_length(r->remote_dsa_address, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11027 return NDR_ERR_SUCCESS;
11030 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaOp(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaOp *r)
11032 uint32_t _ptr_nc_dn;
11033 uint32_t size_nc_dn_1 = 0;
11034 uint32_t length_nc_dn_1 = 0;
11035 TALLOC_CTX *_mem_save_nc_dn_0;
11036 uint32_t _ptr_remote_dsa_obj_dn;
11037 uint32_t size_remote_dsa_obj_dn_1 = 0;
11038 uint32_t length_remote_dsa_obj_dn_1 = 0;
11039 TALLOC_CTX *_mem_save_remote_dsa_obj_dn_0;
11040 uint32_t _ptr_remote_dsa_address;
11041 uint32_t size_remote_dsa_address_1 = 0;
11042 uint32_t length_remote_dsa_address_1 = 0;
11043 TALLOC_CTX *_mem_save_remote_dsa_address_0;
11044 if (ndr_flags & NDR_SCALARS) {
11045 NDR_CHECK(ndr_pull_align(ndr, 5));
11046 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->operation_start));
11047 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_num));
11048 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
11049 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOpType(ndr, NDR_SCALARS, &r->operation_type));
11050 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->options, r->operation_type));
11051 NDR_CHECK(ndr_pull_drsuapi_DsRplicaOpOptions(ndr, NDR_SCALARS, &r->options));
11052 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_nc_dn));
11053 if (_ptr_nc_dn) {
11054 NDR_PULL_ALLOC(ndr, r->nc_dn);
11055 } else {
11056 r->nc_dn = NULL;
11058 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_remote_dsa_obj_dn));
11059 if (_ptr_remote_dsa_obj_dn) {
11060 NDR_PULL_ALLOC(ndr, r->remote_dsa_obj_dn);
11061 } else {
11062 r->remote_dsa_obj_dn = NULL;
11064 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_remote_dsa_address));
11065 if (_ptr_remote_dsa_address) {
11066 NDR_PULL_ALLOC(ndr, r->remote_dsa_address);
11067 } else {
11068 r->remote_dsa_address = NULL;
11070 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->nc_obj_guid));
11071 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->remote_dsa_obj_guid));
11072 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
11074 if (ndr_flags & NDR_BUFFERS) {
11075 if (r->nc_dn) {
11076 _mem_save_nc_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
11077 NDR_PULL_SET_MEM_CTX(ndr, r->nc_dn, 0);
11078 NDR_CHECK(ndr_pull_array_size(ndr, &r->nc_dn));
11079 NDR_CHECK(ndr_pull_array_length(ndr, &r->nc_dn));
11080 size_nc_dn_1 = ndr_get_array_size(ndr, &r->nc_dn);
11081 length_nc_dn_1 = ndr_get_array_length(ndr, &r->nc_dn);
11082 if (length_nc_dn_1 > size_nc_dn_1) {
11083 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_nc_dn_1, length_nc_dn_1);
11085 NDR_CHECK(ndr_check_string_terminator(ndr, length_nc_dn_1, sizeof(uint16_t)));
11086 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->nc_dn, length_nc_dn_1, sizeof(uint16_t), CH_UTF16));
11087 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_nc_dn_0, 0);
11089 if (r->remote_dsa_obj_dn) {
11090 _mem_save_remote_dsa_obj_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
11091 NDR_PULL_SET_MEM_CTX(ndr, r->remote_dsa_obj_dn, 0);
11092 NDR_CHECK(ndr_pull_array_size(ndr, &r->remote_dsa_obj_dn));
11093 NDR_CHECK(ndr_pull_array_length(ndr, &r->remote_dsa_obj_dn));
11094 size_remote_dsa_obj_dn_1 = ndr_get_array_size(ndr, &r->remote_dsa_obj_dn);
11095 length_remote_dsa_obj_dn_1 = ndr_get_array_length(ndr, &r->remote_dsa_obj_dn);
11096 if (length_remote_dsa_obj_dn_1 > size_remote_dsa_obj_dn_1) {
11097 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_remote_dsa_obj_dn_1, length_remote_dsa_obj_dn_1);
11099 NDR_CHECK(ndr_check_string_terminator(ndr, length_remote_dsa_obj_dn_1, sizeof(uint16_t)));
11100 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->remote_dsa_obj_dn, length_remote_dsa_obj_dn_1, sizeof(uint16_t), CH_UTF16));
11101 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_remote_dsa_obj_dn_0, 0);
11103 if (r->remote_dsa_address) {
11104 _mem_save_remote_dsa_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
11105 NDR_PULL_SET_MEM_CTX(ndr, r->remote_dsa_address, 0);
11106 NDR_CHECK(ndr_pull_array_size(ndr, &r->remote_dsa_address));
11107 NDR_CHECK(ndr_pull_array_length(ndr, &r->remote_dsa_address));
11108 size_remote_dsa_address_1 = ndr_get_array_size(ndr, &r->remote_dsa_address);
11109 length_remote_dsa_address_1 = ndr_get_array_length(ndr, &r->remote_dsa_address);
11110 if (length_remote_dsa_address_1 > size_remote_dsa_address_1) {
11111 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_remote_dsa_address_1, length_remote_dsa_address_1);
11113 NDR_CHECK(ndr_check_string_terminator(ndr, length_remote_dsa_address_1, sizeof(uint16_t)));
11114 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->remote_dsa_address, length_remote_dsa_address_1, sizeof(uint16_t), CH_UTF16));
11115 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_remote_dsa_address_0, 0);
11118 return NDR_ERR_SUCCESS;
11121 _PUBLIC_ void ndr_print_drsuapi_DsReplicaOp(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaOp *r)
11123 ndr_print_struct(ndr, name, "drsuapi_DsReplicaOp");
11124 ndr->depth++;
11125 ndr_print_NTTIME(ndr, "operation_start", r->operation_start);
11126 ndr_print_uint32(ndr, "serial_num", r->serial_num);
11127 ndr_print_uint32(ndr, "priority", r->priority);
11128 ndr_print_drsuapi_DsReplicaOpType(ndr, "operation_type", r->operation_type);
11129 ndr_print_set_switch_value(ndr, &r->options, r->operation_type);
11130 ndr_print_drsuapi_DsRplicaOpOptions(ndr, "options", &r->options);
11131 ndr_print_ptr(ndr, "nc_dn", r->nc_dn);
11132 ndr->depth++;
11133 if (r->nc_dn) {
11134 ndr_print_string(ndr, "nc_dn", r->nc_dn);
11136 ndr->depth--;
11137 ndr_print_ptr(ndr, "remote_dsa_obj_dn", r->remote_dsa_obj_dn);
11138 ndr->depth++;
11139 if (r->remote_dsa_obj_dn) {
11140 ndr_print_string(ndr, "remote_dsa_obj_dn", r->remote_dsa_obj_dn);
11142 ndr->depth--;
11143 ndr_print_ptr(ndr, "remote_dsa_address", r->remote_dsa_address);
11144 ndr->depth++;
11145 if (r->remote_dsa_address) {
11146 ndr_print_string(ndr, "remote_dsa_address", r->remote_dsa_address);
11148 ndr->depth--;
11149 ndr_print_GUID(ndr, "nc_obj_guid", &r->nc_obj_guid);
11150 ndr_print_GUID(ndr, "remote_dsa_obj_guid", &r->remote_dsa_obj_guid);
11151 ndr->depth--;
11154 static enum ndr_err_code ndr_push_drsuapi_DsReplicaOpCtr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaOpCtr *r)
11156 uint32_t cntr_array_0;
11157 if (ndr_flags & NDR_SCALARS) {
11158 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
11159 NDR_CHECK(ndr_push_align(ndr, 5));
11160 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->time));
11161 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
11162 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
11163 NDR_CHECK(ndr_push_drsuapi_DsReplicaOp(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
11165 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
11167 if (ndr_flags & NDR_BUFFERS) {
11168 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
11169 NDR_CHECK(ndr_push_drsuapi_DsReplicaOp(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
11172 return NDR_ERR_SUCCESS;
11175 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaOpCtr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaOpCtr *r)
11177 uint32_t size_array_0 = 0;
11178 uint32_t cntr_array_0;
11179 TALLOC_CTX *_mem_save_array_0;
11180 if (ndr_flags & NDR_SCALARS) {
11181 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
11182 NDR_CHECK(ndr_pull_align(ndr, 5));
11183 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->time));
11184 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
11185 size_array_0 = ndr_get_array_size(ndr, &r->array);
11186 NDR_PULL_ALLOC_N(ndr, r->array, size_array_0);
11187 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
11188 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
11189 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
11190 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOp(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
11192 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
11193 if (r->array) {
11194 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
11196 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
11198 if (ndr_flags & NDR_BUFFERS) {
11199 size_array_0 = ndr_get_array_size(ndr, &r->array);
11200 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
11201 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
11202 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
11203 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOp(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
11205 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
11207 return NDR_ERR_SUCCESS;
11210 _PUBLIC_ void ndr_print_drsuapi_DsReplicaOpCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaOpCtr *r)
11212 uint32_t cntr_array_0;
11213 ndr_print_struct(ndr, name, "drsuapi_DsReplicaOpCtr");
11214 ndr->depth++;
11215 ndr_print_NTTIME(ndr, "time", r->time);
11216 ndr_print_uint32(ndr, "count", r->count);
11217 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
11218 ndr->depth++;
11219 for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
11220 char *idx_0=NULL;
11221 if (asprintf(&idx_0, "[%d]", cntr_array_0) != -1) {
11222 ndr_print_drsuapi_DsReplicaOp(ndr, "array", &r->array[cntr_array_0]);
11223 free(idx_0);
11226 ndr->depth--;
11227 ndr->depth--;
11230 static enum ndr_err_code ndr_push_drsuapi_DsReplicaAttrValMetaData(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaAttrValMetaData *r)
11232 if (ndr_flags & NDR_SCALARS) {
11233 NDR_CHECK(ndr_push_align(ndr, 8));
11234 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attribute_name));
11235 NDR_CHECK(ndr_push_unique_ptr(ndr, r->object_dn));
11236 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_DATA_BLOB(0, r->binary, 0)));
11237 NDR_CHECK(ndr_push_unique_ptr(ndr, r->binary));
11238 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->deleted));
11239 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->created));
11240 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
11241 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->originating_change_time));
11242 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->originating_invocation_id));
11243 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->originating_usn));
11244 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->local_usn));
11245 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
11247 if (ndr_flags & NDR_BUFFERS) {
11248 if (r->attribute_name) {
11249 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->attribute_name, CH_UTF16)));
11250 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11251 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->attribute_name, CH_UTF16)));
11252 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->attribute_name, ndr_charset_length(r->attribute_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11254 if (r->object_dn) {
11255 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
11256 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11257 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
11258 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->object_dn, ndr_charset_length(r->object_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11260 if (r->binary) {
11261 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->binary));
11264 return NDR_ERR_SUCCESS;
11267 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAttrValMetaData(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaAttrValMetaData *r)
11269 uint32_t _ptr_attribute_name;
11270 uint32_t size_attribute_name_1 = 0;
11271 uint32_t length_attribute_name_1 = 0;
11272 TALLOC_CTX *_mem_save_attribute_name_0;
11273 uint32_t _ptr_object_dn;
11274 uint32_t size_object_dn_1 = 0;
11275 uint32_t length_object_dn_1 = 0;
11276 TALLOC_CTX *_mem_save_object_dn_0;
11277 uint32_t _ptr_binary;
11278 TALLOC_CTX *_mem_save_binary_0;
11279 if (ndr_flags & NDR_SCALARS) {
11280 NDR_CHECK(ndr_pull_align(ndr, 8));
11281 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attribute_name));
11282 if (_ptr_attribute_name) {
11283 NDR_PULL_ALLOC(ndr, r->attribute_name);
11284 } else {
11285 r->attribute_name = NULL;
11287 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_object_dn));
11288 if (_ptr_object_dn) {
11289 NDR_PULL_ALLOC(ndr, r->object_dn);
11290 } else {
11291 r->object_dn = NULL;
11293 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size_binary));
11294 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_binary));
11295 if (_ptr_binary) {
11296 NDR_PULL_ALLOC(ndr, r->binary);
11297 } else {
11298 r->binary = NULL;
11300 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->deleted));
11301 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->created));
11302 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
11303 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->originating_change_time));
11304 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->originating_invocation_id));
11305 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->originating_usn));
11306 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->local_usn));
11307 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
11309 if (ndr_flags & NDR_BUFFERS) {
11310 if (r->attribute_name) {
11311 _mem_save_attribute_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11312 NDR_PULL_SET_MEM_CTX(ndr, r->attribute_name, 0);
11313 NDR_CHECK(ndr_pull_array_size(ndr, &r->attribute_name));
11314 NDR_CHECK(ndr_pull_array_length(ndr, &r->attribute_name));
11315 size_attribute_name_1 = ndr_get_array_size(ndr, &r->attribute_name);
11316 length_attribute_name_1 = ndr_get_array_length(ndr, &r->attribute_name);
11317 if (length_attribute_name_1 > size_attribute_name_1) {
11318 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_attribute_name_1, length_attribute_name_1);
11320 NDR_CHECK(ndr_check_string_terminator(ndr, length_attribute_name_1, sizeof(uint16_t)));
11321 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->attribute_name, length_attribute_name_1, sizeof(uint16_t), CH_UTF16));
11322 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribute_name_0, 0);
11324 if (r->object_dn) {
11325 _mem_save_object_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
11326 NDR_PULL_SET_MEM_CTX(ndr, r->object_dn, 0);
11327 NDR_CHECK(ndr_pull_array_size(ndr, &r->object_dn));
11328 NDR_CHECK(ndr_pull_array_length(ndr, &r->object_dn));
11329 size_object_dn_1 = ndr_get_array_size(ndr, &r->object_dn);
11330 length_object_dn_1 = ndr_get_array_length(ndr, &r->object_dn);
11331 if (length_object_dn_1 > size_object_dn_1) {
11332 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_object_dn_1, length_object_dn_1);
11334 NDR_CHECK(ndr_check_string_terminator(ndr, length_object_dn_1, sizeof(uint16_t)));
11335 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->object_dn, length_object_dn_1, sizeof(uint16_t), CH_UTF16));
11336 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_object_dn_0, 0);
11338 if (r->binary) {
11339 _mem_save_binary_0 = NDR_PULL_GET_MEM_CTX(ndr);
11340 NDR_PULL_SET_MEM_CTX(ndr, r->binary, 0);
11341 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
11342 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_binary_0, 0);
11345 return NDR_ERR_SUCCESS;
11348 _PUBLIC_ void ndr_print_drsuapi_DsReplicaAttrValMetaData(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaAttrValMetaData *r)
11350 ndr_print_struct(ndr, name, "drsuapi_DsReplicaAttrValMetaData");
11351 ndr->depth++;
11352 ndr_print_ptr(ndr, "attribute_name", r->attribute_name);
11353 ndr->depth++;
11354 if (r->attribute_name) {
11355 ndr_print_string(ndr, "attribute_name", r->attribute_name);
11357 ndr->depth--;
11358 ndr_print_ptr(ndr, "object_dn", r->object_dn);
11359 ndr->depth++;
11360 if (r->object_dn) {
11361 ndr_print_string(ndr, "object_dn", r->object_dn);
11363 ndr->depth--;
11364 ndr_print_uint32(ndr, "__ndr_size_binary", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_DATA_BLOB(0, r->binary, 0):r->__ndr_size_binary);
11365 ndr_print_ptr(ndr, "binary", r->binary);
11366 ndr->depth++;
11367 if (r->binary) {
11368 ndr_print_DATA_BLOB(ndr, "binary", *r->binary);
11370 ndr->depth--;
11371 ndr_print_NTTIME(ndr, "deleted", r->deleted);
11372 ndr_print_NTTIME(ndr, "created", r->created);
11373 ndr_print_uint32(ndr, "version", r->version);
11374 ndr_print_NTTIME(ndr, "originating_change_time", r->originating_change_time);
11375 ndr_print_GUID(ndr, "originating_invocation_id", &r->originating_invocation_id);
11376 ndr_print_hyper(ndr, "originating_usn", r->originating_usn);
11377 ndr_print_hyper(ndr, "local_usn", r->local_usn);
11378 ndr->depth--;
11381 static enum ndr_err_code ndr_push_drsuapi_DsReplicaAttrValMetaDataCtr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaAttrValMetaDataCtr *r)
11383 uint32_t cntr_array_0;
11384 if (ndr_flags & NDR_SCALARS) {
11385 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
11386 NDR_CHECK(ndr_push_align(ndr, 8));
11387 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
11388 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->enumeration_context));
11389 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
11390 NDR_CHECK(ndr_push_drsuapi_DsReplicaAttrValMetaData(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
11392 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
11394 if (ndr_flags & NDR_BUFFERS) {
11395 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
11396 NDR_CHECK(ndr_push_drsuapi_DsReplicaAttrValMetaData(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
11399 return NDR_ERR_SUCCESS;
11402 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAttrValMetaDataCtr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaAttrValMetaDataCtr *r)
11404 uint32_t size_array_0 = 0;
11405 uint32_t cntr_array_0;
11406 TALLOC_CTX *_mem_save_array_0;
11407 if (ndr_flags & NDR_SCALARS) {
11408 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
11409 NDR_CHECK(ndr_pull_align(ndr, 8));
11410 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
11411 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->enumeration_context));
11412 size_array_0 = ndr_get_array_size(ndr, &r->array);
11413 NDR_PULL_ALLOC_N(ndr, r->array, size_array_0);
11414 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
11415 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
11416 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
11417 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttrValMetaData(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
11419 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
11420 if (r->array) {
11421 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
11423 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
11425 if (ndr_flags & NDR_BUFFERS) {
11426 size_array_0 = ndr_get_array_size(ndr, &r->array);
11427 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
11428 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
11429 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
11430 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttrValMetaData(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
11432 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
11434 return NDR_ERR_SUCCESS;
11437 _PUBLIC_ void ndr_print_drsuapi_DsReplicaAttrValMetaDataCtr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaAttrValMetaDataCtr *r)
11439 uint32_t cntr_array_0;
11440 ndr_print_struct(ndr, name, "drsuapi_DsReplicaAttrValMetaDataCtr");
11441 ndr->depth++;
11442 ndr_print_uint32(ndr, "count", r->count);
11443 ndr_print_int32(ndr, "enumeration_context", r->enumeration_context);
11444 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
11445 ndr->depth++;
11446 for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
11447 char *idx_0=NULL;
11448 if (asprintf(&idx_0, "[%d]", cntr_array_0) != -1) {
11449 ndr_print_drsuapi_DsReplicaAttrValMetaData(ndr, "array", &r->array[cntr_array_0]);
11450 free(idx_0);
11453 ndr->depth--;
11454 ndr->depth--;
11457 static enum ndr_err_code ndr_push_drsuapi_DsReplicaCursor2Ctr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaCursor2Ctr *r)
11459 uint32_t cntr_array_0;
11460 if (ndr_flags & NDR_SCALARS) {
11461 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
11462 NDR_CHECK(ndr_push_align(ndr, 8));
11463 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
11464 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->enumeration_context));
11465 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
11466 NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor2(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
11468 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
11470 if (ndr_flags & NDR_BUFFERS) {
11472 return NDR_ERR_SUCCESS;
11475 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaCursor2Ctr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaCursor2Ctr *r)
11477 uint32_t size_array_0 = 0;
11478 uint32_t cntr_array_0;
11479 TALLOC_CTX *_mem_save_array_0;
11480 if (ndr_flags & NDR_SCALARS) {
11481 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
11482 NDR_CHECK(ndr_pull_align(ndr, 8));
11483 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
11484 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->enumeration_context));
11485 size_array_0 = ndr_get_array_size(ndr, &r->array);
11486 NDR_PULL_ALLOC_N(ndr, r->array, size_array_0);
11487 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
11488 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
11489 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
11490 NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor2(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
11492 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
11493 if (r->array) {
11494 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
11496 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
11498 if (ndr_flags & NDR_BUFFERS) {
11500 return NDR_ERR_SUCCESS;
11503 _PUBLIC_ void ndr_print_drsuapi_DsReplicaCursor2Ctr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaCursor2Ctr *r)
11505 uint32_t cntr_array_0;
11506 ndr_print_struct(ndr, name, "drsuapi_DsReplicaCursor2Ctr");
11507 ndr->depth++;
11508 ndr_print_uint32(ndr, "count", r->count);
11509 ndr_print_int32(ndr, "enumeration_context", r->enumeration_context);
11510 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
11511 ndr->depth++;
11512 for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
11513 char *idx_0=NULL;
11514 if (asprintf(&idx_0, "[%d]", cntr_array_0) != -1) {
11515 ndr_print_drsuapi_DsReplicaCursor2(ndr, "array", &r->array[cntr_array_0]);
11516 free(idx_0);
11519 ndr->depth--;
11520 ndr->depth--;
11523 static enum ndr_err_code ndr_push_drsuapi_DsReplicaCursor3(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaCursor3 *r)
11525 if (ndr_flags & NDR_SCALARS) {
11526 NDR_CHECK(ndr_push_align(ndr, 8));
11527 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
11528 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->highest_usn));
11529 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_sync_success));
11530 NDR_CHECK(ndr_push_unique_ptr(ndr, r->source_dsa_obj_dn));
11531 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
11533 if (ndr_flags & NDR_BUFFERS) {
11534 if (r->source_dsa_obj_dn) {
11535 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_obj_dn, CH_UTF16)));
11536 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11537 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->source_dsa_obj_dn, CH_UTF16)));
11538 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->source_dsa_obj_dn, ndr_charset_length(r->source_dsa_obj_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11541 return NDR_ERR_SUCCESS;
11544 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaCursor3(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaCursor3 *r)
11546 uint32_t _ptr_source_dsa_obj_dn;
11547 uint32_t size_source_dsa_obj_dn_1 = 0;
11548 uint32_t length_source_dsa_obj_dn_1 = 0;
11549 TALLOC_CTX *_mem_save_source_dsa_obj_dn_0;
11550 if (ndr_flags & NDR_SCALARS) {
11551 NDR_CHECK(ndr_pull_align(ndr, 8));
11552 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->source_dsa_invocation_id));
11553 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->highest_usn));
11554 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_sync_success));
11555 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_source_dsa_obj_dn));
11556 if (_ptr_source_dsa_obj_dn) {
11557 NDR_PULL_ALLOC(ndr, r->source_dsa_obj_dn);
11558 } else {
11559 r->source_dsa_obj_dn = NULL;
11561 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
11563 if (ndr_flags & NDR_BUFFERS) {
11564 if (r->source_dsa_obj_dn) {
11565 _mem_save_source_dsa_obj_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
11566 NDR_PULL_SET_MEM_CTX(ndr, r->source_dsa_obj_dn, 0);
11567 NDR_CHECK(ndr_pull_array_size(ndr, &r->source_dsa_obj_dn));
11568 NDR_CHECK(ndr_pull_array_length(ndr, &r->source_dsa_obj_dn));
11569 size_source_dsa_obj_dn_1 = ndr_get_array_size(ndr, &r->source_dsa_obj_dn);
11570 length_source_dsa_obj_dn_1 = ndr_get_array_length(ndr, &r->source_dsa_obj_dn);
11571 if (length_source_dsa_obj_dn_1 > size_source_dsa_obj_dn_1) {
11572 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_source_dsa_obj_dn_1, length_source_dsa_obj_dn_1);
11574 NDR_CHECK(ndr_check_string_terminator(ndr, length_source_dsa_obj_dn_1, sizeof(uint16_t)));
11575 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->source_dsa_obj_dn, length_source_dsa_obj_dn_1, sizeof(uint16_t), CH_UTF16));
11576 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_source_dsa_obj_dn_0, 0);
11579 return NDR_ERR_SUCCESS;
11582 _PUBLIC_ void ndr_print_drsuapi_DsReplicaCursor3(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaCursor3 *r)
11584 ndr_print_struct(ndr, name, "drsuapi_DsReplicaCursor3");
11585 ndr->depth++;
11586 ndr_print_GUID(ndr, "source_dsa_invocation_id", &r->source_dsa_invocation_id);
11587 ndr_print_hyper(ndr, "highest_usn", r->highest_usn);
11588 ndr_print_NTTIME(ndr, "last_sync_success", r->last_sync_success);
11589 ndr_print_ptr(ndr, "source_dsa_obj_dn", r->source_dsa_obj_dn);
11590 ndr->depth++;
11591 if (r->source_dsa_obj_dn) {
11592 ndr_print_string(ndr, "source_dsa_obj_dn", r->source_dsa_obj_dn);
11594 ndr->depth--;
11595 ndr->depth--;
11598 static enum ndr_err_code ndr_push_drsuapi_DsReplicaCursor3Ctr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaCursor3Ctr *r)
11600 uint32_t cntr_array_0;
11601 if (ndr_flags & NDR_SCALARS) {
11602 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
11603 NDR_CHECK(ndr_push_align(ndr, 8));
11604 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
11605 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->enumeration_context));
11606 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
11607 NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor3(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
11609 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
11611 if (ndr_flags & NDR_BUFFERS) {
11612 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
11613 NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor3(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
11616 return NDR_ERR_SUCCESS;
11619 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaCursor3Ctr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaCursor3Ctr *r)
11621 uint32_t size_array_0 = 0;
11622 uint32_t cntr_array_0;
11623 TALLOC_CTX *_mem_save_array_0;
11624 if (ndr_flags & NDR_SCALARS) {
11625 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
11626 NDR_CHECK(ndr_pull_align(ndr, 8));
11627 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
11628 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->enumeration_context));
11629 size_array_0 = ndr_get_array_size(ndr, &r->array);
11630 NDR_PULL_ALLOC_N(ndr, r->array, size_array_0);
11631 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
11632 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
11633 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
11634 NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor3(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
11636 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
11637 if (r->array) {
11638 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
11640 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
11642 if (ndr_flags & NDR_BUFFERS) {
11643 size_array_0 = ndr_get_array_size(ndr, &r->array);
11644 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
11645 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
11646 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
11647 NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor3(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
11649 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
11651 return NDR_ERR_SUCCESS;
11654 _PUBLIC_ void ndr_print_drsuapi_DsReplicaCursor3Ctr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaCursor3Ctr *r)
11656 uint32_t cntr_array_0;
11657 ndr_print_struct(ndr, name, "drsuapi_DsReplicaCursor3Ctr");
11658 ndr->depth++;
11659 ndr_print_uint32(ndr, "count", r->count);
11660 ndr_print_int32(ndr, "enumeration_context", r->enumeration_context);
11661 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
11662 ndr->depth++;
11663 for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
11664 char *idx_0=NULL;
11665 if (asprintf(&idx_0, "[%d]", cntr_array_0) != -1) {
11666 ndr_print_drsuapi_DsReplicaCursor3(ndr, "array", &r->array[cntr_array_0]);
11667 free(idx_0);
11670 ndr->depth--;
11671 ndr->depth--;
11674 static enum ndr_err_code ndr_push_drsuapi_DsReplicaObjMetaData2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObjMetaData2 *r)
11676 if (ndr_flags & NDR_SCALARS) {
11677 NDR_CHECK(ndr_push_align(ndr, 8));
11678 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attribute_name));
11679 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
11680 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->originating_change_time));
11681 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->originating_invocation_id));
11682 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->originating_usn));
11683 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->local_usn));
11684 NDR_CHECK(ndr_push_unique_ptr(ndr, r->originating_dsa_dn));
11685 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
11687 if (ndr_flags & NDR_BUFFERS) {
11688 if (r->attribute_name) {
11689 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->attribute_name, CH_UTF16)));
11690 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11691 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->attribute_name, CH_UTF16)));
11692 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->attribute_name, ndr_charset_length(r->attribute_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11694 if (r->originating_dsa_dn) {
11695 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->originating_dsa_dn, CH_UTF16)));
11696 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11697 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->originating_dsa_dn, CH_UTF16)));
11698 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->originating_dsa_dn, ndr_charset_length(r->originating_dsa_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11701 return NDR_ERR_SUCCESS;
11704 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjMetaData2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObjMetaData2 *r)
11706 uint32_t _ptr_attribute_name;
11707 uint32_t size_attribute_name_1 = 0;
11708 uint32_t length_attribute_name_1 = 0;
11709 TALLOC_CTX *_mem_save_attribute_name_0;
11710 uint32_t _ptr_originating_dsa_dn;
11711 uint32_t size_originating_dsa_dn_1 = 0;
11712 uint32_t length_originating_dsa_dn_1 = 0;
11713 TALLOC_CTX *_mem_save_originating_dsa_dn_0;
11714 if (ndr_flags & NDR_SCALARS) {
11715 NDR_CHECK(ndr_pull_align(ndr, 8));
11716 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attribute_name));
11717 if (_ptr_attribute_name) {
11718 NDR_PULL_ALLOC(ndr, r->attribute_name);
11719 } else {
11720 r->attribute_name = NULL;
11722 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
11723 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->originating_change_time));
11724 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->originating_invocation_id));
11725 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->originating_usn));
11726 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->local_usn));
11727 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_originating_dsa_dn));
11728 if (_ptr_originating_dsa_dn) {
11729 NDR_PULL_ALLOC(ndr, r->originating_dsa_dn);
11730 } else {
11731 r->originating_dsa_dn = NULL;
11733 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
11735 if (ndr_flags & NDR_BUFFERS) {
11736 if (r->attribute_name) {
11737 _mem_save_attribute_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11738 NDR_PULL_SET_MEM_CTX(ndr, r->attribute_name, 0);
11739 NDR_CHECK(ndr_pull_array_size(ndr, &r->attribute_name));
11740 NDR_CHECK(ndr_pull_array_length(ndr, &r->attribute_name));
11741 size_attribute_name_1 = ndr_get_array_size(ndr, &r->attribute_name);
11742 length_attribute_name_1 = ndr_get_array_length(ndr, &r->attribute_name);
11743 if (length_attribute_name_1 > size_attribute_name_1) {
11744 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_attribute_name_1, length_attribute_name_1);
11746 NDR_CHECK(ndr_check_string_terminator(ndr, length_attribute_name_1, sizeof(uint16_t)));
11747 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->attribute_name, length_attribute_name_1, sizeof(uint16_t), CH_UTF16));
11748 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribute_name_0, 0);
11750 if (r->originating_dsa_dn) {
11751 _mem_save_originating_dsa_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
11752 NDR_PULL_SET_MEM_CTX(ndr, r->originating_dsa_dn, 0);
11753 NDR_CHECK(ndr_pull_array_size(ndr, &r->originating_dsa_dn));
11754 NDR_CHECK(ndr_pull_array_length(ndr, &r->originating_dsa_dn));
11755 size_originating_dsa_dn_1 = ndr_get_array_size(ndr, &r->originating_dsa_dn);
11756 length_originating_dsa_dn_1 = ndr_get_array_length(ndr, &r->originating_dsa_dn);
11757 if (length_originating_dsa_dn_1 > size_originating_dsa_dn_1) {
11758 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_originating_dsa_dn_1, length_originating_dsa_dn_1);
11760 NDR_CHECK(ndr_check_string_terminator(ndr, length_originating_dsa_dn_1, sizeof(uint16_t)));
11761 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->originating_dsa_dn, length_originating_dsa_dn_1, sizeof(uint16_t), CH_UTF16));
11762 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_originating_dsa_dn_0, 0);
11765 return NDR_ERR_SUCCESS;
11768 _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjMetaData2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaObjMetaData2 *r)
11770 ndr_print_struct(ndr, name, "drsuapi_DsReplicaObjMetaData2");
11771 ndr->depth++;
11772 ndr_print_ptr(ndr, "attribute_name", r->attribute_name);
11773 ndr->depth++;
11774 if (r->attribute_name) {
11775 ndr_print_string(ndr, "attribute_name", r->attribute_name);
11777 ndr->depth--;
11778 ndr_print_uint32(ndr, "version", r->version);
11779 ndr_print_NTTIME(ndr, "originating_change_time", r->originating_change_time);
11780 ndr_print_GUID(ndr, "originating_invocation_id", &r->originating_invocation_id);
11781 ndr_print_hyper(ndr, "originating_usn", r->originating_usn);
11782 ndr_print_hyper(ndr, "local_usn", r->local_usn);
11783 ndr_print_ptr(ndr, "originating_dsa_dn", r->originating_dsa_dn);
11784 ndr->depth++;
11785 if (r->originating_dsa_dn) {
11786 ndr_print_string(ndr, "originating_dsa_dn", r->originating_dsa_dn);
11788 ndr->depth--;
11789 ndr->depth--;
11792 static enum ndr_err_code ndr_push_drsuapi_DsReplicaObjMetaData2Ctr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaObjMetaData2Ctr *r)
11794 uint32_t cntr_array_0;
11795 if (ndr_flags & NDR_SCALARS) {
11796 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
11797 NDR_CHECK(ndr_push_align(ndr, 8));
11798 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
11799 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->enumeration_context));
11800 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
11801 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjMetaData2(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
11803 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
11805 if (ndr_flags & NDR_BUFFERS) {
11806 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
11807 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjMetaData2(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
11810 return NDR_ERR_SUCCESS;
11813 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaObjMetaData2Ctr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaObjMetaData2Ctr *r)
11815 uint32_t size_array_0 = 0;
11816 uint32_t cntr_array_0;
11817 TALLOC_CTX *_mem_save_array_0;
11818 if (ndr_flags & NDR_SCALARS) {
11819 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
11820 NDR_CHECK(ndr_pull_align(ndr, 8));
11821 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
11822 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->enumeration_context));
11823 size_array_0 = ndr_get_array_size(ndr, &r->array);
11824 NDR_PULL_ALLOC_N(ndr, r->array, size_array_0);
11825 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
11826 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
11827 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
11828 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjMetaData2(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
11830 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
11831 if (r->array) {
11832 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
11834 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
11836 if (ndr_flags & NDR_BUFFERS) {
11837 size_array_0 = ndr_get_array_size(ndr, &r->array);
11838 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
11839 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
11840 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
11841 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjMetaData2(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
11843 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
11845 return NDR_ERR_SUCCESS;
11848 _PUBLIC_ void ndr_print_drsuapi_DsReplicaObjMetaData2Ctr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaObjMetaData2Ctr *r)
11850 uint32_t cntr_array_0;
11851 ndr_print_struct(ndr, name, "drsuapi_DsReplicaObjMetaData2Ctr");
11852 ndr->depth++;
11853 ndr_print_uint32(ndr, "count", r->count);
11854 ndr_print_int32(ndr, "enumeration_context", r->enumeration_context);
11855 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
11856 ndr->depth++;
11857 for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
11858 char *idx_0=NULL;
11859 if (asprintf(&idx_0, "[%d]", cntr_array_0) != -1) {
11860 ndr_print_drsuapi_DsReplicaObjMetaData2(ndr, "array", &r->array[cntr_array_0]);
11861 free(idx_0);
11864 ndr->depth--;
11865 ndr->depth--;
11868 static enum ndr_err_code ndr_push_drsuapi_DsReplicaAttrValMetaData2(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaAttrValMetaData2 *r)
11870 if (ndr_flags & NDR_SCALARS) {
11871 NDR_CHECK(ndr_push_align(ndr, 8));
11872 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attribute_name));
11873 NDR_CHECK(ndr_push_unique_ptr(ndr, r->object_dn));
11874 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_DATA_BLOB(0, r->binary, 0)));
11875 NDR_CHECK(ndr_push_unique_ptr(ndr, r->binary));
11876 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->deleted));
11877 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->created));
11878 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
11879 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->originating_change_time));
11880 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->originating_invocation_id));
11881 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->originating_usn));
11882 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->local_usn));
11883 NDR_CHECK(ndr_push_unique_ptr(ndr, r->originating_dsa_dn));
11884 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
11886 if (ndr_flags & NDR_BUFFERS) {
11887 if (r->attribute_name) {
11888 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->attribute_name, CH_UTF16)));
11889 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11890 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->attribute_name, CH_UTF16)));
11891 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->attribute_name, ndr_charset_length(r->attribute_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11893 if (r->object_dn) {
11894 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
11895 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11896 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->object_dn, CH_UTF16)));
11897 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->object_dn, ndr_charset_length(r->object_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11899 if (r->binary) {
11900 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->binary));
11902 if (r->originating_dsa_dn) {
11903 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->originating_dsa_dn, CH_UTF16)));
11904 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11905 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->originating_dsa_dn, CH_UTF16)));
11906 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->originating_dsa_dn, ndr_charset_length(r->originating_dsa_dn, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11909 return NDR_ERR_SUCCESS;
11912 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAttrValMetaData2(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaAttrValMetaData2 *r)
11914 uint32_t _ptr_attribute_name;
11915 uint32_t size_attribute_name_1 = 0;
11916 uint32_t length_attribute_name_1 = 0;
11917 TALLOC_CTX *_mem_save_attribute_name_0;
11918 uint32_t _ptr_object_dn;
11919 uint32_t size_object_dn_1 = 0;
11920 uint32_t length_object_dn_1 = 0;
11921 TALLOC_CTX *_mem_save_object_dn_0;
11922 uint32_t _ptr_binary;
11923 TALLOC_CTX *_mem_save_binary_0;
11924 uint32_t _ptr_originating_dsa_dn;
11925 uint32_t size_originating_dsa_dn_1 = 0;
11926 uint32_t length_originating_dsa_dn_1 = 0;
11927 TALLOC_CTX *_mem_save_originating_dsa_dn_0;
11928 if (ndr_flags & NDR_SCALARS) {
11929 NDR_CHECK(ndr_pull_align(ndr, 8));
11930 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attribute_name));
11931 if (_ptr_attribute_name) {
11932 NDR_PULL_ALLOC(ndr, r->attribute_name);
11933 } else {
11934 r->attribute_name = NULL;
11936 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_object_dn));
11937 if (_ptr_object_dn) {
11938 NDR_PULL_ALLOC(ndr, r->object_dn);
11939 } else {
11940 r->object_dn = NULL;
11942 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->__ndr_size_binary));
11943 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_binary));
11944 if (_ptr_binary) {
11945 NDR_PULL_ALLOC(ndr, r->binary);
11946 } else {
11947 r->binary = NULL;
11949 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->deleted));
11950 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->created));
11951 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
11952 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->originating_change_time));
11953 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->originating_invocation_id));
11954 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->originating_usn));
11955 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->local_usn));
11956 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_originating_dsa_dn));
11957 if (_ptr_originating_dsa_dn) {
11958 NDR_PULL_ALLOC(ndr, r->originating_dsa_dn);
11959 } else {
11960 r->originating_dsa_dn = NULL;
11962 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
11964 if (ndr_flags & NDR_BUFFERS) {
11965 if (r->attribute_name) {
11966 _mem_save_attribute_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11967 NDR_PULL_SET_MEM_CTX(ndr, r->attribute_name, 0);
11968 NDR_CHECK(ndr_pull_array_size(ndr, &r->attribute_name));
11969 NDR_CHECK(ndr_pull_array_length(ndr, &r->attribute_name));
11970 size_attribute_name_1 = ndr_get_array_size(ndr, &r->attribute_name);
11971 length_attribute_name_1 = ndr_get_array_length(ndr, &r->attribute_name);
11972 if (length_attribute_name_1 > size_attribute_name_1) {
11973 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_attribute_name_1, length_attribute_name_1);
11975 NDR_CHECK(ndr_check_string_terminator(ndr, length_attribute_name_1, sizeof(uint16_t)));
11976 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->attribute_name, length_attribute_name_1, sizeof(uint16_t), CH_UTF16));
11977 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribute_name_0, 0);
11979 if (r->object_dn) {
11980 _mem_save_object_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
11981 NDR_PULL_SET_MEM_CTX(ndr, r->object_dn, 0);
11982 NDR_CHECK(ndr_pull_array_size(ndr, &r->object_dn));
11983 NDR_CHECK(ndr_pull_array_length(ndr, &r->object_dn));
11984 size_object_dn_1 = ndr_get_array_size(ndr, &r->object_dn);
11985 length_object_dn_1 = ndr_get_array_length(ndr, &r->object_dn);
11986 if (length_object_dn_1 > size_object_dn_1) {
11987 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_object_dn_1, length_object_dn_1);
11989 NDR_CHECK(ndr_check_string_terminator(ndr, length_object_dn_1, sizeof(uint16_t)));
11990 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->object_dn, length_object_dn_1, sizeof(uint16_t), CH_UTF16));
11991 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_object_dn_0, 0);
11993 if (r->binary) {
11994 _mem_save_binary_0 = NDR_PULL_GET_MEM_CTX(ndr);
11995 NDR_PULL_SET_MEM_CTX(ndr, r->binary, 0);
11996 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
11997 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_binary_0, 0);
11999 if (r->originating_dsa_dn) {
12000 _mem_save_originating_dsa_dn_0 = NDR_PULL_GET_MEM_CTX(ndr);
12001 NDR_PULL_SET_MEM_CTX(ndr, r->originating_dsa_dn, 0);
12002 NDR_CHECK(ndr_pull_array_size(ndr, &r->originating_dsa_dn));
12003 NDR_CHECK(ndr_pull_array_length(ndr, &r->originating_dsa_dn));
12004 size_originating_dsa_dn_1 = ndr_get_array_size(ndr, &r->originating_dsa_dn);
12005 length_originating_dsa_dn_1 = ndr_get_array_length(ndr, &r->originating_dsa_dn);
12006 if (length_originating_dsa_dn_1 > size_originating_dsa_dn_1) {
12007 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_originating_dsa_dn_1, length_originating_dsa_dn_1);
12009 NDR_CHECK(ndr_check_string_terminator(ndr, length_originating_dsa_dn_1, sizeof(uint16_t)));
12010 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->originating_dsa_dn, length_originating_dsa_dn_1, sizeof(uint16_t), CH_UTF16));
12011 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_originating_dsa_dn_0, 0);
12014 return NDR_ERR_SUCCESS;
12017 _PUBLIC_ void ndr_print_drsuapi_DsReplicaAttrValMetaData2(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaAttrValMetaData2 *r)
12019 ndr_print_struct(ndr, name, "drsuapi_DsReplicaAttrValMetaData2");
12020 ndr->depth++;
12021 ndr_print_ptr(ndr, "attribute_name", r->attribute_name);
12022 ndr->depth++;
12023 if (r->attribute_name) {
12024 ndr_print_string(ndr, "attribute_name", r->attribute_name);
12026 ndr->depth--;
12027 ndr_print_ptr(ndr, "object_dn", r->object_dn);
12028 ndr->depth++;
12029 if (r->object_dn) {
12030 ndr_print_string(ndr, "object_dn", r->object_dn);
12032 ndr->depth--;
12033 ndr_print_uint32(ndr, "__ndr_size_binary", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_DATA_BLOB(0, r->binary, 0):r->__ndr_size_binary);
12034 ndr_print_ptr(ndr, "binary", r->binary);
12035 ndr->depth++;
12036 if (r->binary) {
12037 ndr_print_DATA_BLOB(ndr, "binary", *r->binary);
12039 ndr->depth--;
12040 ndr_print_NTTIME(ndr, "deleted", r->deleted);
12041 ndr_print_NTTIME(ndr, "created", r->created);
12042 ndr_print_uint32(ndr, "version", r->version);
12043 ndr_print_NTTIME(ndr, "originating_change_time", r->originating_change_time);
12044 ndr_print_GUID(ndr, "originating_invocation_id", &r->originating_invocation_id);
12045 ndr_print_hyper(ndr, "originating_usn", r->originating_usn);
12046 ndr_print_hyper(ndr, "local_usn", r->local_usn);
12047 ndr_print_ptr(ndr, "originating_dsa_dn", r->originating_dsa_dn);
12048 ndr->depth++;
12049 if (r->originating_dsa_dn) {
12050 ndr_print_string(ndr, "originating_dsa_dn", r->originating_dsa_dn);
12052 ndr->depth--;
12053 ndr->depth--;
12056 static enum ndr_err_code ndr_push_drsuapi_DsReplicaAttrValMetaData2Ctr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaAttrValMetaData2Ctr *r)
12058 uint32_t cntr_array_0;
12059 if (ndr_flags & NDR_SCALARS) {
12060 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
12061 NDR_CHECK(ndr_push_align(ndr, 8));
12062 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
12063 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->enumeration_context));
12064 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
12065 NDR_CHECK(ndr_push_drsuapi_DsReplicaAttrValMetaData2(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
12067 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
12069 if (ndr_flags & NDR_BUFFERS) {
12070 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
12071 NDR_CHECK(ndr_push_drsuapi_DsReplicaAttrValMetaData2(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
12074 return NDR_ERR_SUCCESS;
12077 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAttrValMetaData2Ctr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaAttrValMetaData2Ctr *r)
12079 uint32_t size_array_0 = 0;
12080 uint32_t cntr_array_0;
12081 TALLOC_CTX *_mem_save_array_0;
12082 if (ndr_flags & NDR_SCALARS) {
12083 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
12084 NDR_CHECK(ndr_pull_align(ndr, 8));
12085 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
12086 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->enumeration_context));
12087 size_array_0 = ndr_get_array_size(ndr, &r->array);
12088 NDR_PULL_ALLOC_N(ndr, r->array, size_array_0);
12089 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
12090 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
12091 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
12092 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttrValMetaData2(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
12094 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
12095 if (r->array) {
12096 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
12098 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
12100 if (ndr_flags & NDR_BUFFERS) {
12101 size_array_0 = ndr_get_array_size(ndr, &r->array);
12102 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
12103 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
12104 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
12105 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttrValMetaData2(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
12107 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
12109 return NDR_ERR_SUCCESS;
12112 _PUBLIC_ void ndr_print_drsuapi_DsReplicaAttrValMetaData2Ctr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaAttrValMetaData2Ctr *r)
12114 uint32_t cntr_array_0;
12115 ndr_print_struct(ndr, name, "drsuapi_DsReplicaAttrValMetaData2Ctr");
12116 ndr->depth++;
12117 ndr_print_uint32(ndr, "count", r->count);
12118 ndr_print_int32(ndr, "enumeration_context", r->enumeration_context);
12119 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
12120 ndr->depth++;
12121 for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
12122 char *idx_0=NULL;
12123 if (asprintf(&idx_0, "[%d]", cntr_array_0) != -1) {
12124 ndr_print_drsuapi_DsReplicaAttrValMetaData2(ndr, "array", &r->array[cntr_array_0]);
12125 free(idx_0);
12128 ndr->depth--;
12129 ndr->depth--;
12132 static enum ndr_err_code ndr_push_drsuapi_DsReplicaConnection04(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaConnection04 *r)
12134 if (ndr_flags & NDR_SCALARS) {
12135 NDR_CHECK(ndr_push_align(ndr, 8));
12136 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->u1));
12137 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
12138 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
12139 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->bind_guid));
12140 NDR_CHECK(ndr_push_NTTIME_1sec(ndr, NDR_SCALARS, r->bind_time));
12142 uint32_t _flags_save_ipv4address = ndr->flags;
12143 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
12144 NDR_CHECK(ndr_push_ipv4address(ndr, NDR_SCALARS, r->client_ip_address));
12145 ndr->flags = _flags_save_ipv4address;
12147 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u5));
12148 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
12150 if (ndr_flags & NDR_BUFFERS) {
12152 return NDR_ERR_SUCCESS;
12155 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaConnection04(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaConnection04 *r)
12157 if (ndr_flags & NDR_SCALARS) {
12158 NDR_CHECK(ndr_pull_align(ndr, 8));
12159 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->u1));
12160 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
12161 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
12162 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->bind_guid));
12163 NDR_CHECK(ndr_pull_NTTIME_1sec(ndr, NDR_SCALARS, &r->bind_time));
12165 uint32_t _flags_save_ipv4address = ndr->flags;
12166 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
12167 NDR_CHECK(ndr_pull_ipv4address(ndr, NDR_SCALARS, &r->client_ip_address));
12168 ndr->flags = _flags_save_ipv4address;
12170 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u5));
12171 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
12173 if (ndr_flags & NDR_BUFFERS) {
12175 return NDR_ERR_SUCCESS;
12178 _PUBLIC_ void ndr_print_drsuapi_DsReplicaConnection04(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaConnection04 *r)
12180 ndr_print_struct(ndr, name, "drsuapi_DsReplicaConnection04");
12181 ndr->depth++;
12182 ndr_print_hyper(ndr, "u1", r->u1);
12183 ndr_print_uint32(ndr, "u2", r->u2);
12184 ndr_print_uint32(ndr, "u3", r->u3);
12185 ndr_print_GUID(ndr, "bind_guid", &r->bind_guid);
12186 ndr_print_NTTIME_1sec(ndr, "bind_time", r->bind_time);
12187 ndr_print_ipv4address(ndr, "client_ip_address", r->client_ip_address);
12188 ndr_print_uint32(ndr, "u5", r->u5);
12189 ndr->depth--;
12192 static enum ndr_err_code ndr_push_drsuapi_DsReplicaConnection04Ctr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplicaConnection04Ctr *r)
12194 uint32_t cntr_array_0;
12195 if (ndr_flags & NDR_SCALARS) {
12196 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
12197 NDR_CHECK(ndr_push_align(ndr, 8));
12198 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
12199 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
12200 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
12201 NDR_CHECK(ndr_push_drsuapi_DsReplicaConnection04(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
12203 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
12205 if (ndr_flags & NDR_BUFFERS) {
12207 return NDR_ERR_SUCCESS;
12210 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaConnection04Ctr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplicaConnection04Ctr *r)
12212 uint32_t size_array_0 = 0;
12213 uint32_t cntr_array_0;
12214 TALLOC_CTX *_mem_save_array_0;
12215 if (ndr_flags & NDR_SCALARS) {
12216 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
12217 NDR_CHECK(ndr_pull_align(ndr, 8));
12218 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
12219 if (r->count > 10000) {
12220 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
12222 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
12223 size_array_0 = ndr_get_array_size(ndr, &r->array);
12224 NDR_PULL_ALLOC_N(ndr, r->array, size_array_0);
12225 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
12226 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
12227 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
12228 NDR_CHECK(ndr_pull_drsuapi_DsReplicaConnection04(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
12230 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
12231 if (r->array) {
12232 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
12234 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
12236 if (ndr_flags & NDR_BUFFERS) {
12238 return NDR_ERR_SUCCESS;
12241 _PUBLIC_ void ndr_print_drsuapi_DsReplicaConnection04Ctr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplicaConnection04Ctr *r)
12243 uint32_t cntr_array_0;
12244 ndr_print_struct(ndr, name, "drsuapi_DsReplicaConnection04Ctr");
12245 ndr->depth++;
12246 ndr_print_uint32(ndr, "count", r->count);
12247 ndr_print_uint32(ndr, "reserved", r->reserved);
12248 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
12249 ndr->depth++;
12250 for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
12251 char *idx_0=NULL;
12252 if (asprintf(&idx_0, "[%d]", cntr_array_0) != -1) {
12253 ndr_print_drsuapi_DsReplicaConnection04(ndr, "array", &r->array[cntr_array_0]);
12254 free(idx_0);
12257 ndr->depth--;
12258 ndr->depth--;
12261 static enum ndr_err_code ndr_push_drsuapi_DsReplica06(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplica06 *r)
12263 if (ndr_flags & NDR_SCALARS) {
12264 NDR_CHECK(ndr_push_align(ndr, 8));
12265 NDR_CHECK(ndr_push_unique_ptr(ndr, r->str1));
12266 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u1));
12267 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
12268 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
12269 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u4));
12270 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u5));
12271 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->u6));
12272 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u7));
12273 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
12275 if (ndr_flags & NDR_BUFFERS) {
12276 if (r->str1) {
12277 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->str1, CH_UTF16)));
12278 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
12279 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->str1, CH_UTF16)));
12280 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->str1, ndr_charset_length(r->str1, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12283 return NDR_ERR_SUCCESS;
12286 static enum ndr_err_code ndr_pull_drsuapi_DsReplica06(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplica06 *r)
12288 uint32_t _ptr_str1;
12289 uint32_t size_str1_1 = 0;
12290 uint32_t length_str1_1 = 0;
12291 TALLOC_CTX *_mem_save_str1_0;
12292 if (ndr_flags & NDR_SCALARS) {
12293 NDR_CHECK(ndr_pull_align(ndr, 8));
12294 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_str1));
12295 if (_ptr_str1) {
12296 NDR_PULL_ALLOC(ndr, r->str1);
12297 } else {
12298 r->str1 = NULL;
12300 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u1));
12301 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
12302 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
12303 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u4));
12304 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u5));
12305 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->u6));
12306 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u7));
12307 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
12309 if (ndr_flags & NDR_BUFFERS) {
12310 if (r->str1) {
12311 _mem_save_str1_0 = NDR_PULL_GET_MEM_CTX(ndr);
12312 NDR_PULL_SET_MEM_CTX(ndr, r->str1, 0);
12313 NDR_CHECK(ndr_pull_array_size(ndr, &r->str1));
12314 NDR_CHECK(ndr_pull_array_length(ndr, &r->str1));
12315 size_str1_1 = ndr_get_array_size(ndr, &r->str1);
12316 length_str1_1 = ndr_get_array_length(ndr, &r->str1);
12317 if (length_str1_1 > size_str1_1) {
12318 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_str1_1, length_str1_1);
12320 NDR_CHECK(ndr_check_string_terminator(ndr, length_str1_1, sizeof(uint16_t)));
12321 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->str1, length_str1_1, sizeof(uint16_t), CH_UTF16));
12322 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_str1_0, 0);
12325 return NDR_ERR_SUCCESS;
12328 _PUBLIC_ void ndr_print_drsuapi_DsReplica06(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplica06 *r)
12330 ndr_print_struct(ndr, name, "drsuapi_DsReplica06");
12331 ndr->depth++;
12332 ndr_print_ptr(ndr, "str1", r->str1);
12333 ndr->depth++;
12334 if (r->str1) {
12335 ndr_print_string(ndr, "str1", r->str1);
12337 ndr->depth--;
12338 ndr_print_uint32(ndr, "u1", r->u1);
12339 ndr_print_uint32(ndr, "u2", r->u2);
12340 ndr_print_uint32(ndr, "u3", r->u3);
12341 ndr_print_uint32(ndr, "u4", r->u4);
12342 ndr_print_uint32(ndr, "u5", r->u5);
12343 ndr_print_hyper(ndr, "u6", r->u6);
12344 ndr_print_uint32(ndr, "u7", r->u7);
12345 ndr->depth--;
12348 static enum ndr_err_code ndr_push_drsuapi_DsReplica06Ctr(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsReplica06Ctr *r)
12350 uint32_t cntr_array_0;
12351 if (ndr_flags & NDR_SCALARS) {
12352 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
12353 NDR_CHECK(ndr_push_align(ndr, 8));
12354 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
12355 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
12356 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
12357 NDR_CHECK(ndr_push_drsuapi_DsReplica06(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
12359 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
12361 if (ndr_flags & NDR_BUFFERS) {
12362 for (cntr_array_0 = 0; cntr_array_0 < r->count; cntr_array_0++) {
12363 NDR_CHECK(ndr_push_drsuapi_DsReplica06(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
12366 return NDR_ERR_SUCCESS;
12369 static enum ndr_err_code ndr_pull_drsuapi_DsReplica06Ctr(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsReplica06Ctr *r)
12371 uint32_t size_array_0 = 0;
12372 uint32_t cntr_array_0;
12373 TALLOC_CTX *_mem_save_array_0;
12374 if (ndr_flags & NDR_SCALARS) {
12375 NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
12376 NDR_CHECK(ndr_pull_align(ndr, 8));
12377 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
12378 if (r->count > 256) {
12379 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
12381 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
12382 size_array_0 = ndr_get_array_size(ndr, &r->array);
12383 NDR_PULL_ALLOC_N(ndr, r->array, size_array_0);
12384 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
12385 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
12386 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
12387 NDR_CHECK(ndr_pull_drsuapi_DsReplica06(ndr, NDR_SCALARS, &r->array[cntr_array_0]));
12389 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
12390 if (r->array) {
12391 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
12393 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
12395 if (ndr_flags & NDR_BUFFERS) {
12396 size_array_0 = ndr_get_array_size(ndr, &r->array);
12397 _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
12398 NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
12399 for (cntr_array_0 = 0; cntr_array_0 < size_array_0; cntr_array_0++) {
12400 NDR_CHECK(ndr_pull_drsuapi_DsReplica06(ndr, NDR_BUFFERS, &r->array[cntr_array_0]));
12402 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
12404 return NDR_ERR_SUCCESS;
12407 _PUBLIC_ void ndr_print_drsuapi_DsReplica06Ctr(struct ndr_print *ndr, const char *name, const struct drsuapi_DsReplica06Ctr *r)
12409 uint32_t cntr_array_0;
12410 ndr_print_struct(ndr, name, "drsuapi_DsReplica06Ctr");
12411 ndr->depth++;
12412 ndr_print_uint32(ndr, "count", r->count);
12413 ndr_print_uint32(ndr, "reserved", r->reserved);
12414 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
12415 ndr->depth++;
12416 for (cntr_array_0=0;cntr_array_0<r->count;cntr_array_0++) {
12417 char *idx_0=NULL;
12418 if (asprintf(&idx_0, "[%d]", cntr_array_0) != -1) {
12419 ndr_print_drsuapi_DsReplica06(ndr, "array", &r->array[cntr_array_0]);
12420 free(idx_0);
12423 ndr->depth--;
12424 ndr->depth--;
12427 static enum ndr_err_code ndr_push_drsuapi_DsReplicaInfo(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsReplicaInfo *r)
12429 if (ndr_flags & NDR_SCALARS) {
12430 int level = ndr_push_get_switch_value(ndr, r);
12431 NDR_CHECK(ndr_push_drsuapi_DsReplicaInfoType(ndr, NDR_SCALARS, level));
12432 NDR_CHECK(ndr_push_union_align(ndr, 5));
12433 switch (level) {
12434 case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS: {
12435 NDR_CHECK(ndr_push_unique_ptr(ndr, r->neighbours));
12436 break; }
12438 case DRSUAPI_DS_REPLICA_INFO_CURSORS: {
12439 NDR_CHECK(ndr_push_unique_ptr(ndr, r->cursors));
12440 break; }
12442 case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA: {
12443 NDR_CHECK(ndr_push_unique_ptr(ndr, r->objmetadata));
12444 break; }
12446 case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES: {
12447 NDR_CHECK(ndr_push_unique_ptr(ndr, r->connectfailures));
12448 break; }
12450 case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES: {
12451 NDR_CHECK(ndr_push_unique_ptr(ndr, r->linkfailures));
12452 break; }
12454 case DRSUAPI_DS_REPLICA_INFO_PENDING_OPS: {
12455 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pendingops));
12456 break; }
12458 case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA: {
12459 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attrvalmetadata));
12460 break; }
12462 case DRSUAPI_DS_REPLICA_INFO_CURSORS2: {
12463 NDR_CHECK(ndr_push_unique_ptr(ndr, r->cursors2));
12464 break; }
12466 case DRSUAPI_DS_REPLICA_INFO_CURSORS3: {
12467 NDR_CHECK(ndr_push_unique_ptr(ndr, r->cursors3));
12468 break; }
12470 case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2: {
12471 NDR_CHECK(ndr_push_unique_ptr(ndr, r->objmetadata2));
12472 break; }
12474 case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2: {
12475 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attrvalmetadata2));
12476 break; }
12478 case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02: {
12479 NDR_CHECK(ndr_push_unique_ptr(ndr, r->neighbours02));
12480 break; }
12482 case DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04: {
12483 NDR_CHECK(ndr_push_unique_ptr(ndr, r->connections04));
12484 break; }
12486 case DRSUAPI_DS_REPLICA_INFO_CURSORS05: {
12487 NDR_CHECK(ndr_push_unique_ptr(ndr, r->cursors05));
12488 break; }
12490 case DRSUAPI_DS_REPLICA_INFO_06: {
12491 NDR_CHECK(ndr_push_unique_ptr(ndr, r->i06));
12492 break; }
12494 default:
12495 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
12498 if (ndr_flags & NDR_BUFFERS) {
12499 int level = ndr_push_get_switch_value(ndr, r);
12500 switch (level) {
12501 case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS:
12502 if (r->neighbours) {
12503 NDR_CHECK(ndr_push_drsuapi_DsReplicaNeighbourCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->neighbours));
12505 break;
12507 case DRSUAPI_DS_REPLICA_INFO_CURSORS:
12508 if (r->cursors) {
12509 NDR_CHECK(ndr_push_drsuapi_DsReplicaCursorCtr(ndr, NDR_SCALARS, r->cursors));
12511 break;
12513 case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA:
12514 if (r->objmetadata) {
12515 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjMetaDataCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->objmetadata));
12517 break;
12519 case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES:
12520 if (r->connectfailures) {
12521 NDR_CHECK(ndr_push_drsuapi_DsReplicaKccDsaFailuresCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->connectfailures));
12523 break;
12525 case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES:
12526 if (r->linkfailures) {
12527 NDR_CHECK(ndr_push_drsuapi_DsReplicaKccDsaFailuresCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->linkfailures));
12529 break;
12531 case DRSUAPI_DS_REPLICA_INFO_PENDING_OPS:
12532 if (r->pendingops) {
12533 NDR_CHECK(ndr_push_drsuapi_DsReplicaOpCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->pendingops));
12535 break;
12537 case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA:
12538 if (r->attrvalmetadata) {
12539 NDR_CHECK(ndr_push_drsuapi_DsReplicaAttrValMetaDataCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->attrvalmetadata));
12541 break;
12543 case DRSUAPI_DS_REPLICA_INFO_CURSORS2:
12544 if (r->cursors2) {
12545 NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor2Ctr(ndr, NDR_SCALARS, r->cursors2));
12547 break;
12549 case DRSUAPI_DS_REPLICA_INFO_CURSORS3:
12550 if (r->cursors3) {
12551 NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor3Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->cursors3));
12553 break;
12555 case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2:
12556 if (r->objmetadata2) {
12557 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjMetaData2Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->objmetadata2));
12559 break;
12561 case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2:
12562 if (r->attrvalmetadata2) {
12563 NDR_CHECK(ndr_push_drsuapi_DsReplicaAttrValMetaData2Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->attrvalmetadata2));
12565 break;
12567 case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02:
12568 if (r->neighbours02) {
12569 NDR_CHECK(ndr_push_drsuapi_DsReplicaNeighbourCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->neighbours02));
12571 break;
12573 case DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04:
12574 if (r->connections04) {
12575 NDR_CHECK(ndr_push_drsuapi_DsReplicaConnection04Ctr(ndr, NDR_SCALARS, r->connections04));
12577 break;
12579 case DRSUAPI_DS_REPLICA_INFO_CURSORS05:
12580 if (r->cursors05) {
12581 NDR_CHECK(ndr_push_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->cursors05));
12583 break;
12585 case DRSUAPI_DS_REPLICA_INFO_06:
12586 if (r->i06) {
12587 NDR_CHECK(ndr_push_drsuapi_DsReplica06Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->i06));
12589 break;
12591 default:
12592 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
12595 return NDR_ERR_SUCCESS;
12598 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaInfo(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsReplicaInfo *r)
12600 int level;
12601 uint32_t _level;
12602 TALLOC_CTX *_mem_save_neighbours_0;
12603 uint32_t _ptr_neighbours;
12604 TALLOC_CTX *_mem_save_cursors_0;
12605 uint32_t _ptr_cursors;
12606 TALLOC_CTX *_mem_save_objmetadata_0;
12607 uint32_t _ptr_objmetadata;
12608 TALLOC_CTX *_mem_save_connectfailures_0;
12609 uint32_t _ptr_connectfailures;
12610 TALLOC_CTX *_mem_save_linkfailures_0;
12611 uint32_t _ptr_linkfailures;
12612 TALLOC_CTX *_mem_save_pendingops_0;
12613 uint32_t _ptr_pendingops;
12614 TALLOC_CTX *_mem_save_attrvalmetadata_0;
12615 uint32_t _ptr_attrvalmetadata;
12616 TALLOC_CTX *_mem_save_cursors2_0;
12617 uint32_t _ptr_cursors2;
12618 TALLOC_CTX *_mem_save_cursors3_0;
12619 uint32_t _ptr_cursors3;
12620 TALLOC_CTX *_mem_save_objmetadata2_0;
12621 uint32_t _ptr_objmetadata2;
12622 TALLOC_CTX *_mem_save_attrvalmetadata2_0;
12623 uint32_t _ptr_attrvalmetadata2;
12624 TALLOC_CTX *_mem_save_neighbours02_0;
12625 uint32_t _ptr_neighbours02;
12626 TALLOC_CTX *_mem_save_connections04_0;
12627 uint32_t _ptr_connections04;
12628 TALLOC_CTX *_mem_save_cursors05_0;
12629 uint32_t _ptr_cursors05;
12630 TALLOC_CTX *_mem_save_i06_0;
12631 uint32_t _ptr_i06;
12632 level = ndr_pull_get_switch_value(ndr, r);
12633 if (ndr_flags & NDR_SCALARS) {
12634 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
12635 if (_level != level) {
12636 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
12638 NDR_CHECK(ndr_pull_union_align(ndr, 5));
12639 switch (level) {
12640 case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS: {
12641 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_neighbours));
12642 if (_ptr_neighbours) {
12643 NDR_PULL_ALLOC(ndr, r->neighbours);
12644 } else {
12645 r->neighbours = NULL;
12647 break; }
12649 case DRSUAPI_DS_REPLICA_INFO_CURSORS: {
12650 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_cursors));
12651 if (_ptr_cursors) {
12652 NDR_PULL_ALLOC(ndr, r->cursors);
12653 } else {
12654 r->cursors = NULL;
12656 break; }
12658 case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA: {
12659 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_objmetadata));
12660 if (_ptr_objmetadata) {
12661 NDR_PULL_ALLOC(ndr, r->objmetadata);
12662 } else {
12663 r->objmetadata = NULL;
12665 break; }
12667 case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES: {
12668 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_connectfailures));
12669 if (_ptr_connectfailures) {
12670 NDR_PULL_ALLOC(ndr, r->connectfailures);
12671 } else {
12672 r->connectfailures = NULL;
12674 break; }
12676 case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES: {
12677 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_linkfailures));
12678 if (_ptr_linkfailures) {
12679 NDR_PULL_ALLOC(ndr, r->linkfailures);
12680 } else {
12681 r->linkfailures = NULL;
12683 break; }
12685 case DRSUAPI_DS_REPLICA_INFO_PENDING_OPS: {
12686 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pendingops));
12687 if (_ptr_pendingops) {
12688 NDR_PULL_ALLOC(ndr, r->pendingops);
12689 } else {
12690 r->pendingops = NULL;
12692 break; }
12694 case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA: {
12695 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attrvalmetadata));
12696 if (_ptr_attrvalmetadata) {
12697 NDR_PULL_ALLOC(ndr, r->attrvalmetadata);
12698 } else {
12699 r->attrvalmetadata = NULL;
12701 break; }
12703 case DRSUAPI_DS_REPLICA_INFO_CURSORS2: {
12704 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_cursors2));
12705 if (_ptr_cursors2) {
12706 NDR_PULL_ALLOC(ndr, r->cursors2);
12707 } else {
12708 r->cursors2 = NULL;
12710 break; }
12712 case DRSUAPI_DS_REPLICA_INFO_CURSORS3: {
12713 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_cursors3));
12714 if (_ptr_cursors3) {
12715 NDR_PULL_ALLOC(ndr, r->cursors3);
12716 } else {
12717 r->cursors3 = NULL;
12719 break; }
12721 case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2: {
12722 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_objmetadata2));
12723 if (_ptr_objmetadata2) {
12724 NDR_PULL_ALLOC(ndr, r->objmetadata2);
12725 } else {
12726 r->objmetadata2 = NULL;
12728 break; }
12730 case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2: {
12731 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attrvalmetadata2));
12732 if (_ptr_attrvalmetadata2) {
12733 NDR_PULL_ALLOC(ndr, r->attrvalmetadata2);
12734 } else {
12735 r->attrvalmetadata2 = NULL;
12737 break; }
12739 case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02: {
12740 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_neighbours02));
12741 if (_ptr_neighbours02) {
12742 NDR_PULL_ALLOC(ndr, r->neighbours02);
12743 } else {
12744 r->neighbours02 = NULL;
12746 break; }
12748 case DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04: {
12749 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_connections04));
12750 if (_ptr_connections04) {
12751 NDR_PULL_ALLOC(ndr, r->connections04);
12752 } else {
12753 r->connections04 = NULL;
12755 break; }
12757 case DRSUAPI_DS_REPLICA_INFO_CURSORS05: {
12758 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_cursors05));
12759 if (_ptr_cursors05) {
12760 NDR_PULL_ALLOC(ndr, r->cursors05);
12761 } else {
12762 r->cursors05 = NULL;
12764 break; }
12766 case DRSUAPI_DS_REPLICA_INFO_06: {
12767 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_i06));
12768 if (_ptr_i06) {
12769 NDR_PULL_ALLOC(ndr, r->i06);
12770 } else {
12771 r->i06 = NULL;
12773 break; }
12775 default:
12776 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
12779 if (ndr_flags & NDR_BUFFERS) {
12780 switch (level) {
12781 case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS:
12782 if (r->neighbours) {
12783 _mem_save_neighbours_0 = NDR_PULL_GET_MEM_CTX(ndr);
12784 NDR_PULL_SET_MEM_CTX(ndr, r->neighbours, 0);
12785 NDR_CHECK(ndr_pull_drsuapi_DsReplicaNeighbourCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->neighbours));
12786 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_neighbours_0, 0);
12788 break;
12790 case DRSUAPI_DS_REPLICA_INFO_CURSORS:
12791 if (r->cursors) {
12792 _mem_save_cursors_0 = NDR_PULL_GET_MEM_CTX(ndr);
12793 NDR_PULL_SET_MEM_CTX(ndr, r->cursors, 0);
12794 NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursorCtr(ndr, NDR_SCALARS, r->cursors));
12795 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_cursors_0, 0);
12797 break;
12799 case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA:
12800 if (r->objmetadata) {
12801 _mem_save_objmetadata_0 = NDR_PULL_GET_MEM_CTX(ndr);
12802 NDR_PULL_SET_MEM_CTX(ndr, r->objmetadata, 0);
12803 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjMetaDataCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->objmetadata));
12804 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_objmetadata_0, 0);
12806 break;
12808 case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES:
12809 if (r->connectfailures) {
12810 _mem_save_connectfailures_0 = NDR_PULL_GET_MEM_CTX(ndr);
12811 NDR_PULL_SET_MEM_CTX(ndr, r->connectfailures, 0);
12812 NDR_CHECK(ndr_pull_drsuapi_DsReplicaKccDsaFailuresCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->connectfailures));
12813 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_connectfailures_0, 0);
12815 break;
12817 case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES:
12818 if (r->linkfailures) {
12819 _mem_save_linkfailures_0 = NDR_PULL_GET_MEM_CTX(ndr);
12820 NDR_PULL_SET_MEM_CTX(ndr, r->linkfailures, 0);
12821 NDR_CHECK(ndr_pull_drsuapi_DsReplicaKccDsaFailuresCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->linkfailures));
12822 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_linkfailures_0, 0);
12824 break;
12826 case DRSUAPI_DS_REPLICA_INFO_PENDING_OPS:
12827 if (r->pendingops) {
12828 _mem_save_pendingops_0 = NDR_PULL_GET_MEM_CTX(ndr);
12829 NDR_PULL_SET_MEM_CTX(ndr, r->pendingops, 0);
12830 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOpCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->pendingops));
12831 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pendingops_0, 0);
12833 break;
12835 case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA:
12836 if (r->attrvalmetadata) {
12837 _mem_save_attrvalmetadata_0 = NDR_PULL_GET_MEM_CTX(ndr);
12838 NDR_PULL_SET_MEM_CTX(ndr, r->attrvalmetadata, 0);
12839 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttrValMetaDataCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->attrvalmetadata));
12840 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attrvalmetadata_0, 0);
12842 break;
12844 case DRSUAPI_DS_REPLICA_INFO_CURSORS2:
12845 if (r->cursors2) {
12846 _mem_save_cursors2_0 = NDR_PULL_GET_MEM_CTX(ndr);
12847 NDR_PULL_SET_MEM_CTX(ndr, r->cursors2, 0);
12848 NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor2Ctr(ndr, NDR_SCALARS, r->cursors2));
12849 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_cursors2_0, 0);
12851 break;
12853 case DRSUAPI_DS_REPLICA_INFO_CURSORS3:
12854 if (r->cursors3) {
12855 _mem_save_cursors3_0 = NDR_PULL_GET_MEM_CTX(ndr);
12856 NDR_PULL_SET_MEM_CTX(ndr, r->cursors3, 0);
12857 NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor3Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->cursors3));
12858 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_cursors3_0, 0);
12860 break;
12862 case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2:
12863 if (r->objmetadata2) {
12864 _mem_save_objmetadata2_0 = NDR_PULL_GET_MEM_CTX(ndr);
12865 NDR_PULL_SET_MEM_CTX(ndr, r->objmetadata2, 0);
12866 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjMetaData2Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->objmetadata2));
12867 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_objmetadata2_0, 0);
12869 break;
12871 case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2:
12872 if (r->attrvalmetadata2) {
12873 _mem_save_attrvalmetadata2_0 = NDR_PULL_GET_MEM_CTX(ndr);
12874 NDR_PULL_SET_MEM_CTX(ndr, r->attrvalmetadata2, 0);
12875 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttrValMetaData2Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->attrvalmetadata2));
12876 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attrvalmetadata2_0, 0);
12878 break;
12880 case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02:
12881 if (r->neighbours02) {
12882 _mem_save_neighbours02_0 = NDR_PULL_GET_MEM_CTX(ndr);
12883 NDR_PULL_SET_MEM_CTX(ndr, r->neighbours02, 0);
12884 NDR_CHECK(ndr_pull_drsuapi_DsReplicaNeighbourCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->neighbours02));
12885 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_neighbours02_0, 0);
12887 break;
12889 case DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04:
12890 if (r->connections04) {
12891 _mem_save_connections04_0 = NDR_PULL_GET_MEM_CTX(ndr);
12892 NDR_PULL_SET_MEM_CTX(ndr, r->connections04, 0);
12893 NDR_CHECK(ndr_pull_drsuapi_DsReplicaConnection04Ctr(ndr, NDR_SCALARS, r->connections04));
12894 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_connections04_0, 0);
12896 break;
12898 case DRSUAPI_DS_REPLICA_INFO_CURSORS05:
12899 if (r->cursors05) {
12900 _mem_save_cursors05_0 = NDR_PULL_GET_MEM_CTX(ndr);
12901 NDR_PULL_SET_MEM_CTX(ndr, r->cursors05, 0);
12902 NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursorCtrEx(ndr, NDR_SCALARS, r->cursors05));
12903 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_cursors05_0, 0);
12905 break;
12907 case DRSUAPI_DS_REPLICA_INFO_06:
12908 if (r->i06) {
12909 _mem_save_i06_0 = NDR_PULL_GET_MEM_CTX(ndr);
12910 NDR_PULL_SET_MEM_CTX(ndr, r->i06, 0);
12911 NDR_CHECK(ndr_pull_drsuapi_DsReplica06Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->i06));
12912 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_i06_0, 0);
12914 break;
12916 default:
12917 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
12920 return NDR_ERR_SUCCESS;
12923 _PUBLIC_ void ndr_print_drsuapi_DsReplicaInfo(struct ndr_print *ndr, const char *name, const union drsuapi_DsReplicaInfo *r)
12925 int level;
12926 level = ndr_print_get_switch_value(ndr, r);
12927 ndr_print_union(ndr, name, level, "drsuapi_DsReplicaInfo");
12928 switch (level) {
12929 case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS:
12930 ndr_print_ptr(ndr, "neighbours", r->neighbours);
12931 ndr->depth++;
12932 if (r->neighbours) {
12933 ndr_print_drsuapi_DsReplicaNeighbourCtr(ndr, "neighbours", r->neighbours);
12935 ndr->depth--;
12936 break;
12938 case DRSUAPI_DS_REPLICA_INFO_CURSORS:
12939 ndr_print_ptr(ndr, "cursors", r->cursors);
12940 ndr->depth++;
12941 if (r->cursors) {
12942 ndr_print_drsuapi_DsReplicaCursorCtr(ndr, "cursors", r->cursors);
12944 ndr->depth--;
12945 break;
12947 case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA:
12948 ndr_print_ptr(ndr, "objmetadata", r->objmetadata);
12949 ndr->depth++;
12950 if (r->objmetadata) {
12951 ndr_print_drsuapi_DsReplicaObjMetaDataCtr(ndr, "objmetadata", r->objmetadata);
12953 ndr->depth--;
12954 break;
12956 case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES:
12957 ndr_print_ptr(ndr, "connectfailures", r->connectfailures);
12958 ndr->depth++;
12959 if (r->connectfailures) {
12960 ndr_print_drsuapi_DsReplicaKccDsaFailuresCtr(ndr, "connectfailures", r->connectfailures);
12962 ndr->depth--;
12963 break;
12965 case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES:
12966 ndr_print_ptr(ndr, "linkfailures", r->linkfailures);
12967 ndr->depth++;
12968 if (r->linkfailures) {
12969 ndr_print_drsuapi_DsReplicaKccDsaFailuresCtr(ndr, "linkfailures", r->linkfailures);
12971 ndr->depth--;
12972 break;
12974 case DRSUAPI_DS_REPLICA_INFO_PENDING_OPS:
12975 ndr_print_ptr(ndr, "pendingops", r->pendingops);
12976 ndr->depth++;
12977 if (r->pendingops) {
12978 ndr_print_drsuapi_DsReplicaOpCtr(ndr, "pendingops", r->pendingops);
12980 ndr->depth--;
12981 break;
12983 case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA:
12984 ndr_print_ptr(ndr, "attrvalmetadata", r->attrvalmetadata);
12985 ndr->depth++;
12986 if (r->attrvalmetadata) {
12987 ndr_print_drsuapi_DsReplicaAttrValMetaDataCtr(ndr, "attrvalmetadata", r->attrvalmetadata);
12989 ndr->depth--;
12990 break;
12992 case DRSUAPI_DS_REPLICA_INFO_CURSORS2:
12993 ndr_print_ptr(ndr, "cursors2", r->cursors2);
12994 ndr->depth++;
12995 if (r->cursors2) {
12996 ndr_print_drsuapi_DsReplicaCursor2Ctr(ndr, "cursors2", r->cursors2);
12998 ndr->depth--;
12999 break;
13001 case DRSUAPI_DS_REPLICA_INFO_CURSORS3:
13002 ndr_print_ptr(ndr, "cursors3", r->cursors3);
13003 ndr->depth++;
13004 if (r->cursors3) {
13005 ndr_print_drsuapi_DsReplicaCursor3Ctr(ndr, "cursors3", r->cursors3);
13007 ndr->depth--;
13008 break;
13010 case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2:
13011 ndr_print_ptr(ndr, "objmetadata2", r->objmetadata2);
13012 ndr->depth++;
13013 if (r->objmetadata2) {
13014 ndr_print_drsuapi_DsReplicaObjMetaData2Ctr(ndr, "objmetadata2", r->objmetadata2);
13016 ndr->depth--;
13017 break;
13019 case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2:
13020 ndr_print_ptr(ndr, "attrvalmetadata2", r->attrvalmetadata2);
13021 ndr->depth++;
13022 if (r->attrvalmetadata2) {
13023 ndr_print_drsuapi_DsReplicaAttrValMetaData2Ctr(ndr, "attrvalmetadata2", r->attrvalmetadata2);
13025 ndr->depth--;
13026 break;
13028 case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02:
13029 ndr_print_ptr(ndr, "neighbours02", r->neighbours02);
13030 ndr->depth++;
13031 if (r->neighbours02) {
13032 ndr_print_drsuapi_DsReplicaNeighbourCtr(ndr, "neighbours02", r->neighbours02);
13034 ndr->depth--;
13035 break;
13037 case DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04:
13038 ndr_print_ptr(ndr, "connections04", r->connections04);
13039 ndr->depth++;
13040 if (r->connections04) {
13041 ndr_print_drsuapi_DsReplicaConnection04Ctr(ndr, "connections04", r->connections04);
13043 ndr->depth--;
13044 break;
13046 case DRSUAPI_DS_REPLICA_INFO_CURSORS05:
13047 ndr_print_ptr(ndr, "cursors05", r->cursors05);
13048 ndr->depth++;
13049 if (r->cursors05) {
13050 ndr_print_drsuapi_DsReplicaCursorCtrEx(ndr, "cursors05", r->cursors05);
13052 ndr->depth--;
13053 break;
13055 case DRSUAPI_DS_REPLICA_INFO_06:
13056 ndr_print_ptr(ndr, "i06", r->i06);
13057 ndr->depth++;
13058 if (r->i06) {
13059 ndr_print_drsuapi_DsReplica06Ctr(ndr, "i06", r->i06);
13061 ndr->depth--;
13062 break;
13064 default:
13065 ndr_print_bad_level(ndr, name, level);
13069 static enum ndr_err_code ndr_push_drsuapi_DsGetMemberships2Ctr(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetMemberships2Ctr *r)
13071 if (ndr_flags & NDR_SCALARS) {
13072 int level = ndr_push_get_switch_value(ndr, r);
13073 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
13074 NDR_CHECK(ndr_push_union_align(ndr, 5));
13075 switch (level) {
13076 case 1: {
13077 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsCtr1(ndr, NDR_SCALARS, &r->ctr1));
13078 break; }
13080 default:
13081 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
13084 if (ndr_flags & NDR_BUFFERS) {
13085 int level = ndr_push_get_switch_value(ndr, r);
13086 switch (level) {
13087 case 1:
13088 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsCtr1(ndr, NDR_BUFFERS, &r->ctr1));
13089 break;
13091 default:
13092 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
13095 return NDR_ERR_SUCCESS;
13098 static enum ndr_err_code ndr_pull_drsuapi_DsGetMemberships2Ctr(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetMemberships2Ctr *r)
13100 int level;
13101 int32_t _level;
13102 level = ndr_pull_get_switch_value(ndr, r);
13103 if (ndr_flags & NDR_SCALARS) {
13104 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
13105 if (_level != level) {
13106 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
13108 NDR_CHECK(ndr_pull_union_align(ndr, 5));
13109 switch (level) {
13110 case 1: {
13111 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsCtr1(ndr, NDR_SCALARS, &r->ctr1));
13112 break; }
13114 default:
13115 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
13118 if (ndr_flags & NDR_BUFFERS) {
13119 switch (level) {
13120 case 1:
13121 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsCtr1(ndr, NDR_BUFFERS, &r->ctr1));
13122 break;
13124 default:
13125 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
13128 return NDR_ERR_SUCCESS;
13131 _PUBLIC_ void ndr_print_drsuapi_DsGetMemberships2Ctr(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetMemberships2Ctr *r)
13133 int level;
13134 level = ndr_print_get_switch_value(ndr, r);
13135 ndr_print_union(ndr, name, level, "drsuapi_DsGetMemberships2Ctr");
13136 switch (level) {
13137 case 1:
13138 ndr_print_drsuapi_DsGetMembershipsCtr1(ndr, "ctr1", &r->ctr1);
13139 break;
13141 default:
13142 ndr_print_bad_level(ndr, name, level);
13146 static enum ndr_err_code ndr_push_drsuapi_DsGetMemberships2Request1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsGetMemberships2Request1 *r)
13148 uint32_t cntr_req_array_1;
13149 if (ndr_flags & NDR_SCALARS) {
13150 NDR_CHECK(ndr_push_align(ndr, 5));
13151 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_req));
13152 NDR_CHECK(ndr_push_unique_ptr(ndr, r->req_array));
13153 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
13155 if (ndr_flags & NDR_BUFFERS) {
13156 if (r->req_array) {
13157 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_req));
13158 for (cntr_req_array_1 = 0; cntr_req_array_1 < r->num_req; cntr_req_array_1++) {
13159 NDR_CHECK(ndr_push_unique_ptr(ndr, r->req_array[cntr_req_array_1]));
13161 for (cntr_req_array_1 = 0; cntr_req_array_1 < r->num_req; cntr_req_array_1++) {
13162 if (r->req_array[cntr_req_array_1]) {
13163 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsRequest1(ndr, NDR_SCALARS|NDR_BUFFERS, r->req_array[cntr_req_array_1]));
13168 return NDR_ERR_SUCCESS;
13171 static enum ndr_err_code ndr_pull_drsuapi_DsGetMemberships2Request1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsGetMemberships2Request1 *r)
13173 uint32_t _ptr_req_array;
13174 uint32_t size_req_array_1 = 0;
13175 uint32_t cntr_req_array_1;
13176 TALLOC_CTX *_mem_save_req_array_0;
13177 TALLOC_CTX *_mem_save_req_array_1;
13178 TALLOC_CTX *_mem_save_req_array_2;
13179 if (ndr_flags & NDR_SCALARS) {
13180 NDR_CHECK(ndr_pull_align(ndr, 5));
13181 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_req));
13182 if (r->num_req < 1 || r->num_req > 10000) {
13183 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
13185 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_req_array));
13186 if (_ptr_req_array) {
13187 NDR_PULL_ALLOC(ndr, r->req_array);
13188 } else {
13189 r->req_array = NULL;
13191 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
13193 if (ndr_flags & NDR_BUFFERS) {
13194 if (r->req_array) {
13195 _mem_save_req_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
13196 NDR_PULL_SET_MEM_CTX(ndr, r->req_array, 0);
13197 NDR_CHECK(ndr_pull_array_size(ndr, &r->req_array));
13198 size_req_array_1 = ndr_get_array_size(ndr, &r->req_array);
13199 NDR_PULL_ALLOC_N(ndr, r->req_array, size_req_array_1);
13200 _mem_save_req_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
13201 NDR_PULL_SET_MEM_CTX(ndr, r->req_array, 0);
13202 for (cntr_req_array_1 = 0; cntr_req_array_1 < size_req_array_1; cntr_req_array_1++) {
13203 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_req_array));
13204 if (_ptr_req_array) {
13205 NDR_PULL_ALLOC(ndr, r->req_array[cntr_req_array_1]);
13206 } else {
13207 r->req_array[cntr_req_array_1] = NULL;
13210 for (cntr_req_array_1 = 0; cntr_req_array_1 < size_req_array_1; cntr_req_array_1++) {
13211 if (r->req_array[cntr_req_array_1]) {
13212 _mem_save_req_array_2 = NDR_PULL_GET_MEM_CTX(ndr);
13213 NDR_PULL_SET_MEM_CTX(ndr, r->req_array[cntr_req_array_1], 0);
13214 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsRequest1(ndr, NDR_SCALARS|NDR_BUFFERS, r->req_array[cntr_req_array_1]));
13215 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_array_2, 0);
13218 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_array_1, 0);
13219 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_array_0, 0);
13221 if (r->req_array) {
13222 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->req_array, r->num_req));
13225 return NDR_ERR_SUCCESS;
13228 _PUBLIC_ void ndr_print_drsuapi_DsGetMemberships2Request1(struct ndr_print *ndr, const char *name, const struct drsuapi_DsGetMemberships2Request1 *r)
13230 uint32_t cntr_req_array_1;
13231 ndr_print_struct(ndr, name, "drsuapi_DsGetMemberships2Request1");
13232 ndr->depth++;
13233 ndr_print_uint32(ndr, "num_req", r->num_req);
13234 ndr_print_ptr(ndr, "req_array", r->req_array);
13235 ndr->depth++;
13236 if (r->req_array) {
13237 ndr->print(ndr, "%s: ARRAY(%d)", "req_array", (int)r->num_req);
13238 ndr->depth++;
13239 for (cntr_req_array_1=0;cntr_req_array_1<r->num_req;cntr_req_array_1++) {
13240 char *idx_1=NULL;
13241 if (asprintf(&idx_1, "[%d]", cntr_req_array_1) != -1) {
13242 ndr_print_ptr(ndr, "req_array", r->req_array[cntr_req_array_1]);
13243 ndr->depth++;
13244 if (r->req_array[cntr_req_array_1]) {
13245 ndr_print_drsuapi_DsGetMembershipsRequest1(ndr, "req_array", r->req_array[cntr_req_array_1]);
13247 ndr->depth--;
13248 free(idx_1);
13251 ndr->depth--;
13253 ndr->depth--;
13254 ndr->depth--;
13257 static enum ndr_err_code ndr_push_drsuapi_DsGetMemberships2Request(struct ndr_push *ndr, int ndr_flags, const union drsuapi_DsGetMemberships2Request *r)
13259 if (ndr_flags & NDR_SCALARS) {
13260 int level = ndr_push_get_switch_value(ndr, r);
13261 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
13262 NDR_CHECK(ndr_push_union_align(ndr, 5));
13263 switch (level) {
13264 case 1: {
13265 NDR_CHECK(ndr_push_drsuapi_DsGetMemberships2Request1(ndr, NDR_SCALARS, &r->req1));
13266 break; }
13268 default:
13269 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
13272 if (ndr_flags & NDR_BUFFERS) {
13273 int level = ndr_push_get_switch_value(ndr, r);
13274 switch (level) {
13275 case 1:
13276 NDR_CHECK(ndr_push_drsuapi_DsGetMemberships2Request1(ndr, NDR_BUFFERS, &r->req1));
13277 break;
13279 default:
13280 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
13283 return NDR_ERR_SUCCESS;
13286 static enum ndr_err_code ndr_pull_drsuapi_DsGetMemberships2Request(struct ndr_pull *ndr, int ndr_flags, union drsuapi_DsGetMemberships2Request *r)
13288 int level;
13289 int32_t _level;
13290 level = ndr_pull_get_switch_value(ndr, r);
13291 if (ndr_flags & NDR_SCALARS) {
13292 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
13293 if (_level != level) {
13294 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
13296 NDR_CHECK(ndr_pull_union_align(ndr, 5));
13297 switch (level) {
13298 case 1: {
13299 NDR_CHECK(ndr_pull_drsuapi_DsGetMemberships2Request1(ndr, NDR_SCALARS, &r->req1));
13300 break; }
13302 default:
13303 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
13306 if (ndr_flags & NDR_BUFFERS) {
13307 switch (level) {
13308 case 1:
13309 NDR_CHECK(ndr_pull_drsuapi_DsGetMemberships2Request1(ndr, NDR_BUFFERS, &r->req1));
13310 break;
13312 default:
13313 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
13316 return NDR_ERR_SUCCESS;
13319 _PUBLIC_ void ndr_print_drsuapi_DsGetMemberships2Request(struct ndr_print *ndr, const char *name, const union drsuapi_DsGetMemberships2Request *r)
13321 int level;
13322 level = ndr_print_get_switch_value(ndr, r);
13323 ndr_print_union(ndr, name, level, "drsuapi_DsGetMemberships2Request");
13324 switch (level) {
13325 case 1:
13326 ndr_print_drsuapi_DsGetMemberships2Request1(ndr, "req1", &r->req1);
13327 break;
13329 default:
13330 ndr_print_bad_level(ndr, name, level);
13334 static enum ndr_err_code ndr_push_drsuapi_DsSiteCostInfo(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_DsSiteCostInfo *r)
13336 if (ndr_flags & NDR_SCALARS) {
13337 NDR_CHECK(ndr_push_align(ndr, 4));
13338 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->error_code));
13339 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->site_cost));
13340 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
13342 if (ndr_flags & NDR_BUFFERS) {
13344 return NDR_ERR_SUCCESS;
13347 static enum ndr_err_code ndr_pull_drsuapi_DsSiteCostInfo(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_DsSiteCostInfo *r)
13349 if (ndr_flags & NDR_SCALARS) {
13350 NDR_CHECK(ndr_pull_align(ndr, 4));
13351 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->error_code));
13352 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->site_cost));
13353 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
13355 if (ndr_flags & NDR_BUFFERS) {
13357 return NDR_ERR_SUCCESS;
13360 _PUBLIC_ void ndr_print_drsuapi_DsSiteCostInfo(struct ndr_print *ndr, const char *name, const struct drsuapi_DsSiteCostInfo *r)
13362 ndr_print_struct(ndr, name, "drsuapi_DsSiteCostInfo");
13363 ndr->depth++;
13364 ndr_print_WERROR(ndr, "error_code", r->error_code);
13365 ndr_print_uint32(ndr, "site_cost", r->site_cost);
13366 ndr->depth--;
13369 static enum ndr_err_code ndr_push_drsuapi_QuerySitesByCostCtr1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_QuerySitesByCostCtr1 *r)
13371 uint32_t cntr_info_1;
13372 if (ndr_flags & NDR_SCALARS) {
13373 NDR_CHECK(ndr_push_align(ndr, 5));
13374 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_info));
13375 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info));
13376 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown));
13377 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
13379 if (ndr_flags & NDR_BUFFERS) {
13380 if (r->info) {
13381 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_info));
13382 for (cntr_info_1 = 0; cntr_info_1 < r->num_info; cntr_info_1++) {
13383 NDR_CHECK(ndr_push_drsuapi_DsSiteCostInfo(ndr, NDR_SCALARS, &r->info[cntr_info_1]));
13387 return NDR_ERR_SUCCESS;
13390 static enum ndr_err_code ndr_pull_drsuapi_QuerySitesByCostCtr1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_QuerySitesByCostCtr1 *r)
13392 uint32_t _ptr_info;
13393 uint32_t size_info_1 = 0;
13394 uint32_t cntr_info_1;
13395 TALLOC_CTX *_mem_save_info_0;
13396 TALLOC_CTX *_mem_save_info_1;
13397 if (ndr_flags & NDR_SCALARS) {
13398 NDR_CHECK(ndr_pull_align(ndr, 5));
13399 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_info));
13400 if (r->num_info > 10000) {
13401 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
13403 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
13404 if (_ptr_info) {
13405 NDR_PULL_ALLOC(ndr, r->info);
13406 } else {
13407 r->info = NULL;
13409 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
13410 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
13412 if (ndr_flags & NDR_BUFFERS) {
13413 if (r->info) {
13414 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
13415 NDR_PULL_SET_MEM_CTX(ndr, r->info, 0);
13416 NDR_CHECK(ndr_pull_array_size(ndr, &r->info));
13417 size_info_1 = ndr_get_array_size(ndr, &r->info);
13418 NDR_PULL_ALLOC_N(ndr, r->info, size_info_1);
13419 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
13420 NDR_PULL_SET_MEM_CTX(ndr, r->info, 0);
13421 for (cntr_info_1 = 0; cntr_info_1 < size_info_1; cntr_info_1++) {
13422 NDR_CHECK(ndr_pull_drsuapi_DsSiteCostInfo(ndr, NDR_SCALARS, &r->info[cntr_info_1]));
13424 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
13425 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
13427 if (r->info) {
13428 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->info, r->num_info));
13431 return NDR_ERR_SUCCESS;
13434 _PUBLIC_ void ndr_print_drsuapi_QuerySitesByCostCtr1(struct ndr_print *ndr, const char *name, const struct drsuapi_QuerySitesByCostCtr1 *r)
13436 uint32_t cntr_info_1;
13437 ndr_print_struct(ndr, name, "drsuapi_QuerySitesByCostCtr1");
13438 ndr->depth++;
13439 ndr_print_uint32(ndr, "num_info", r->num_info);
13440 ndr_print_ptr(ndr, "info", r->info);
13441 ndr->depth++;
13442 if (r->info) {
13443 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)r->num_info);
13444 ndr->depth++;
13445 for (cntr_info_1=0;cntr_info_1<r->num_info;cntr_info_1++) {
13446 char *idx_1=NULL;
13447 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
13448 ndr_print_drsuapi_DsSiteCostInfo(ndr, "info", &r->info[cntr_info_1]);
13449 free(idx_1);
13452 ndr->depth--;
13454 ndr->depth--;
13455 ndr_print_uint32(ndr, "unknown", r->unknown);
13456 ndr->depth--;
13459 static enum ndr_err_code ndr_push_drsuapi_QuerySitesByCostCtr(struct ndr_push *ndr, int ndr_flags, const union drsuapi_QuerySitesByCostCtr *r)
13461 if (ndr_flags & NDR_SCALARS) {
13462 int level = ndr_push_get_switch_value(ndr, r);
13463 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
13464 NDR_CHECK(ndr_push_union_align(ndr, 5));
13465 switch (level) {
13466 case 1: {
13467 NDR_CHECK(ndr_push_drsuapi_QuerySitesByCostCtr1(ndr, NDR_SCALARS, &r->ctr1));
13468 break; }
13470 default:
13471 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
13474 if (ndr_flags & NDR_BUFFERS) {
13475 int level = ndr_push_get_switch_value(ndr, r);
13476 switch (level) {
13477 case 1:
13478 NDR_CHECK(ndr_push_drsuapi_QuerySitesByCostCtr1(ndr, NDR_BUFFERS, &r->ctr1));
13479 break;
13481 default:
13482 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
13485 return NDR_ERR_SUCCESS;
13488 static enum ndr_err_code ndr_pull_drsuapi_QuerySitesByCostCtr(struct ndr_pull *ndr, int ndr_flags, union drsuapi_QuerySitesByCostCtr *r)
13490 int level;
13491 int32_t _level;
13492 level = ndr_pull_get_switch_value(ndr, r);
13493 if (ndr_flags & NDR_SCALARS) {
13494 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
13495 if (_level != level) {
13496 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
13498 NDR_CHECK(ndr_pull_union_align(ndr, 5));
13499 switch (level) {
13500 case 1: {
13501 NDR_CHECK(ndr_pull_drsuapi_QuerySitesByCostCtr1(ndr, NDR_SCALARS, &r->ctr1));
13502 break; }
13504 default:
13505 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
13508 if (ndr_flags & NDR_BUFFERS) {
13509 switch (level) {
13510 case 1:
13511 NDR_CHECK(ndr_pull_drsuapi_QuerySitesByCostCtr1(ndr, NDR_BUFFERS, &r->ctr1));
13512 break;
13514 default:
13515 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
13518 return NDR_ERR_SUCCESS;
13521 _PUBLIC_ void ndr_print_drsuapi_QuerySitesByCostCtr(struct ndr_print *ndr, const char *name, const union drsuapi_QuerySitesByCostCtr *r)
13523 int level;
13524 level = ndr_print_get_switch_value(ndr, r);
13525 ndr_print_union(ndr, name, level, "drsuapi_QuerySitesByCostCtr");
13526 switch (level) {
13527 case 1:
13528 ndr_print_drsuapi_QuerySitesByCostCtr1(ndr, "ctr1", &r->ctr1);
13529 break;
13531 default:
13532 ndr_print_bad_level(ndr, name, level);
13536 static enum ndr_err_code ndr_push_drsuapi_QuerySitesByCostRequest1(struct ndr_push *ndr, int ndr_flags, const struct drsuapi_QuerySitesByCostRequest1 *r)
13538 uint32_t cntr_site_to_1;
13539 if (ndr_flags & NDR_SCALARS) {
13540 NDR_CHECK(ndr_push_align(ndr, 5));
13541 NDR_CHECK(ndr_push_unique_ptr(ndr, r->site_from));
13542 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_req));
13543 NDR_CHECK(ndr_push_unique_ptr(ndr, r->site_to));
13544 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
13545 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
13547 if (ndr_flags & NDR_BUFFERS) {
13548 if (r->site_from) {
13549 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_from, CH_UTF16)));
13550 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
13551 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_from, CH_UTF16)));
13552 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->site_from, ndr_charset_length(r->site_from, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13554 if (r->site_to) {
13555 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_req));
13556 for (cntr_site_to_1 = 0; cntr_site_to_1 < r->num_req; cntr_site_to_1++) {
13557 NDR_CHECK(ndr_push_unique_ptr(ndr, r->site_to[cntr_site_to_1]));
13559 for (cntr_site_to_1 = 0; cntr_site_to_1 < r->num_req; cntr_site_to_1++) {
13560 if (r->site_to[cntr_site_to_1]) {
13561 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_to[cntr_site_to_1], CH_UTF16)));
13562 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
13563 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->site_to[cntr_site_to_1], CH_UTF16)));
13564 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->site_to[cntr_site_to_1], ndr_charset_length(r->site_to[cntr_site_to_1], CH_UTF16), sizeof(uint16_t), CH_UTF16));
13569 return NDR_ERR_SUCCESS;
13572 static enum ndr_err_code ndr_pull_drsuapi_QuerySitesByCostRequest1(struct ndr_pull *ndr, int ndr_flags, struct drsuapi_QuerySitesByCostRequest1 *r)
13574 uint32_t _ptr_site_from;
13575 uint32_t size_site_from_1 = 0;
13576 uint32_t length_site_from_1 = 0;
13577 TALLOC_CTX *_mem_save_site_from_0;
13578 uint32_t _ptr_site_to;
13579 uint32_t size_site_to_1 = 0;
13580 uint32_t cntr_site_to_1;
13581 uint32_t size_site_to_3 = 0;
13582 uint32_t length_site_to_3 = 0;
13583 TALLOC_CTX *_mem_save_site_to_0;
13584 TALLOC_CTX *_mem_save_site_to_1;
13585 TALLOC_CTX *_mem_save_site_to_2;
13586 if (ndr_flags & NDR_SCALARS) {
13587 NDR_CHECK(ndr_pull_align(ndr, 5));
13588 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_from));
13589 if (_ptr_site_from) {
13590 NDR_PULL_ALLOC(ndr, r->site_from);
13591 } else {
13592 r->site_from = NULL;
13594 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_req));
13595 if (r->num_req < 1 || r->num_req > 10000) {
13596 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
13598 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_to));
13599 if (_ptr_site_to) {
13600 NDR_PULL_ALLOC(ndr, r->site_to);
13601 } else {
13602 r->site_to = NULL;
13604 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
13605 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
13607 if (ndr_flags & NDR_BUFFERS) {
13608 if (r->site_from) {
13609 _mem_save_site_from_0 = NDR_PULL_GET_MEM_CTX(ndr);
13610 NDR_PULL_SET_MEM_CTX(ndr, r->site_from, 0);
13611 NDR_CHECK(ndr_pull_array_size(ndr, &r->site_from));
13612 NDR_CHECK(ndr_pull_array_length(ndr, &r->site_from));
13613 size_site_from_1 = ndr_get_array_size(ndr, &r->site_from);
13614 length_site_from_1 = ndr_get_array_length(ndr, &r->site_from);
13615 if (length_site_from_1 > size_site_from_1) {
13616 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_site_from_1, length_site_from_1);
13618 NDR_CHECK(ndr_check_string_terminator(ndr, length_site_from_1, sizeof(uint16_t)));
13619 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->site_from, length_site_from_1, sizeof(uint16_t), CH_UTF16));
13620 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_from_0, 0);
13622 if (r->site_to) {
13623 _mem_save_site_to_0 = NDR_PULL_GET_MEM_CTX(ndr);
13624 NDR_PULL_SET_MEM_CTX(ndr, r->site_to, 0);
13625 NDR_CHECK(ndr_pull_array_size(ndr, &r->site_to));
13626 size_site_to_1 = ndr_get_array_size(ndr, &r->site_to);
13627 NDR_PULL_ALLOC_N(ndr, r->site_to, size_site_to_1);
13628 _mem_save_site_to_1 = NDR_PULL_GET_MEM_CTX(ndr);
13629 NDR_PULL_SET_MEM_CTX(ndr, r->site_to, 0);
13630 for (cntr_site_to_1 = 0; cntr_site_to_1 < size_site_to_1; cntr_site_to_1++) {
13631 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_to));
13632 if (_ptr_site_to) {
13633 NDR_PULL_ALLOC(ndr, r->site_to[cntr_site_to_1]);
13634 } else {
13635 r->site_to[cntr_site_to_1] = NULL;
13638 for (cntr_site_to_1 = 0; cntr_site_to_1 < size_site_to_1; cntr_site_to_1++) {
13639 if (r->site_to[cntr_site_to_1]) {
13640 _mem_save_site_to_2 = NDR_PULL_GET_MEM_CTX(ndr);
13641 NDR_PULL_SET_MEM_CTX(ndr, r->site_to[cntr_site_to_1], 0);
13642 NDR_CHECK(ndr_pull_array_size(ndr, &r->site_to[cntr_site_to_1]));
13643 NDR_CHECK(ndr_pull_array_length(ndr, &r->site_to[cntr_site_to_1]));
13644 size_site_to_3 = ndr_get_array_size(ndr, &r->site_to[cntr_site_to_1]);
13645 length_site_to_3 = ndr_get_array_length(ndr, &r->site_to[cntr_site_to_1]);
13646 if (length_site_to_3 > size_site_to_3) {
13647 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_site_to_3, length_site_to_3);
13649 NDR_CHECK(ndr_check_string_terminator(ndr, length_site_to_3, sizeof(uint16_t)));
13650 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->site_to[cntr_site_to_1], length_site_to_3, sizeof(uint16_t), CH_UTF16));
13651 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_to_2, 0);
13654 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_to_1, 0);
13655 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_to_0, 0);
13657 if (r->site_to) {
13658 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->site_to, r->num_req));
13661 return NDR_ERR_SUCCESS;
13664 _PUBLIC_ void ndr_print_drsuapi_QuerySitesByCostRequest1(struct ndr_print *ndr, const char *name, const struct drsuapi_QuerySitesByCostRequest1 *r)
13666 uint32_t cntr_site_to_1;
13667 ndr_print_struct(ndr, name, "drsuapi_QuerySitesByCostRequest1");
13668 ndr->depth++;
13669 ndr_print_ptr(ndr, "site_from", r->site_from);
13670 ndr->depth++;
13671 if (r->site_from) {
13672 ndr_print_string(ndr, "site_from", r->site_from);
13674 ndr->depth--;
13675 ndr_print_uint32(ndr, "num_req", r->num_req);
13676 ndr_print_ptr(ndr, "site_to", r->site_to);
13677 ndr->depth++;
13678 if (r->site_to) {
13679 ndr->print(ndr, "%s: ARRAY(%d)", "site_to", (int)r->num_req);
13680 ndr->depth++;
13681 for (cntr_site_to_1=0;cntr_site_to_1<r->num_req;cntr_site_to_1++) {
13682 char *idx_1=NULL;
13683 if (asprintf(&idx_1, "[%d]", cntr_site_to_1) != -1) {
13684 ndr_print_ptr(ndr, "site_to", r->site_to[cntr_site_to_1]);
13685 ndr->depth++;
13686 if (r->site_to[cntr_site_to_1]) {
13687 ndr_print_string(ndr, "site_to", r->site_to[cntr_site_to_1]);
13689 ndr->depth--;
13690 free(idx_1);
13693 ndr->depth--;
13695 ndr->depth--;
13696 ndr_print_uint32(ndr, "flags", r->flags);
13697 ndr->depth--;
13700 static enum ndr_err_code ndr_push_drsuapi_QuerySitesByCostRequest(struct ndr_push *ndr, int ndr_flags, const union drsuapi_QuerySitesByCostRequest *r)
13702 if (ndr_flags & NDR_SCALARS) {
13703 int level = ndr_push_get_switch_value(ndr, r);
13704 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, level));
13705 NDR_CHECK(ndr_push_union_align(ndr, 5));
13706 switch (level) {
13707 case 1: {
13708 NDR_CHECK(ndr_push_drsuapi_QuerySitesByCostRequest1(ndr, NDR_SCALARS, &r->req1));
13709 break; }
13711 default:
13712 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
13715 if (ndr_flags & NDR_BUFFERS) {
13716 int level = ndr_push_get_switch_value(ndr, r);
13717 switch (level) {
13718 case 1:
13719 NDR_CHECK(ndr_push_drsuapi_QuerySitesByCostRequest1(ndr, NDR_BUFFERS, &r->req1));
13720 break;
13722 default:
13723 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
13726 return NDR_ERR_SUCCESS;
13729 static enum ndr_err_code ndr_pull_drsuapi_QuerySitesByCostRequest(struct ndr_pull *ndr, int ndr_flags, union drsuapi_QuerySitesByCostRequest *r)
13731 int level;
13732 int32_t _level;
13733 level = ndr_pull_get_switch_value(ndr, r);
13734 if (ndr_flags & NDR_SCALARS) {
13735 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &_level));
13736 if (_level != level) {
13737 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
13739 NDR_CHECK(ndr_pull_union_align(ndr, 5));
13740 switch (level) {
13741 case 1: {
13742 NDR_CHECK(ndr_pull_drsuapi_QuerySitesByCostRequest1(ndr, NDR_SCALARS, &r->req1));
13743 break; }
13745 default:
13746 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
13749 if (ndr_flags & NDR_BUFFERS) {
13750 switch (level) {
13751 case 1:
13752 NDR_CHECK(ndr_pull_drsuapi_QuerySitesByCostRequest1(ndr, NDR_BUFFERS, &r->req1));
13753 break;
13755 default:
13756 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
13759 return NDR_ERR_SUCCESS;
13762 _PUBLIC_ void ndr_print_drsuapi_QuerySitesByCostRequest(struct ndr_print *ndr, const char *name, const union drsuapi_QuerySitesByCostRequest *r)
13764 int level;
13765 level = ndr_print_get_switch_value(ndr, r);
13766 ndr_print_union(ndr, name, level, "drsuapi_QuerySitesByCostRequest");
13767 switch (level) {
13768 case 1:
13769 ndr_print_drsuapi_QuerySitesByCostRequest1(ndr, "req1", &r->req1);
13770 break;
13772 default:
13773 ndr_print_bad_level(ndr, name, level);
13777 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsBind(struct ndr_push *ndr, int flags, const struct drsuapi_DsBind *r)
13779 if (flags & NDR_IN) {
13780 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.bind_guid));
13781 if (r->in.bind_guid) {
13782 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.bind_guid));
13784 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.bind_info));
13785 if (r->in.bind_info) {
13786 NDR_CHECK(ndr_push_drsuapi_DsBindInfoCtr(ndr, NDR_SCALARS, r->in.bind_info));
13789 if (flags & NDR_OUT) {
13790 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.bind_info));
13791 if (r->out.bind_info) {
13792 NDR_CHECK(ndr_push_drsuapi_DsBindInfoCtr(ndr, NDR_SCALARS, r->out.bind_info));
13794 if (r->out.bind_handle == NULL) {
13795 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13797 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.bind_handle));
13798 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13800 return NDR_ERR_SUCCESS;
13803 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsBind(struct ndr_pull *ndr, int flags, struct drsuapi_DsBind *r)
13805 uint32_t _ptr_bind_guid;
13806 uint32_t _ptr_bind_info;
13807 TALLOC_CTX *_mem_save_bind_guid_0;
13808 TALLOC_CTX *_mem_save_bind_info_0;
13809 TALLOC_CTX *_mem_save_bind_handle_0;
13810 if (flags & NDR_IN) {
13811 ZERO_STRUCT(r->out);
13813 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_bind_guid));
13814 if (_ptr_bind_guid) {
13815 NDR_PULL_ALLOC(ndr, r->in.bind_guid);
13816 } else {
13817 r->in.bind_guid = NULL;
13819 if (r->in.bind_guid) {
13820 _mem_save_bind_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
13821 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_guid, 0);
13822 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.bind_guid));
13823 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_guid_0, 0);
13825 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_bind_info));
13826 if (_ptr_bind_info) {
13827 NDR_PULL_ALLOC(ndr, r->in.bind_info);
13828 } else {
13829 r->in.bind_info = NULL;
13831 if (r->in.bind_info) {
13832 _mem_save_bind_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
13833 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_info, 0);
13834 NDR_CHECK(ndr_pull_drsuapi_DsBindInfoCtr(ndr, NDR_SCALARS, r->in.bind_info));
13835 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_info_0, 0);
13837 NDR_PULL_ALLOC(ndr, r->out.bind_handle);
13838 ZERO_STRUCTP(r->out.bind_handle);
13840 if (flags & NDR_OUT) {
13841 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_bind_info));
13842 if (_ptr_bind_info) {
13843 NDR_PULL_ALLOC(ndr, r->out.bind_info);
13844 } else {
13845 r->out.bind_info = NULL;
13847 if (r->out.bind_info) {
13848 _mem_save_bind_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
13849 NDR_PULL_SET_MEM_CTX(ndr, r->out.bind_info, 0);
13850 NDR_CHECK(ndr_pull_drsuapi_DsBindInfoCtr(ndr, NDR_SCALARS, r->out.bind_info));
13851 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_info_0, 0);
13853 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13854 NDR_PULL_ALLOC(ndr, r->out.bind_handle);
13856 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
13857 NDR_PULL_SET_MEM_CTX(ndr, r->out.bind_handle, LIBNDR_FLAG_REF_ALLOC);
13858 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.bind_handle));
13859 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
13860 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13862 return NDR_ERR_SUCCESS;
13865 _PUBLIC_ void ndr_print_drsuapi_DsBind(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsBind *r)
13867 ndr_print_struct(ndr, name, "drsuapi_DsBind");
13868 ndr->depth++;
13869 if (flags & NDR_SET_VALUES) {
13870 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13872 if (flags & NDR_IN) {
13873 ndr_print_struct(ndr, "in", "drsuapi_DsBind");
13874 ndr->depth++;
13875 ndr_print_ptr(ndr, "bind_guid", r->in.bind_guid);
13876 ndr->depth++;
13877 if (r->in.bind_guid) {
13878 ndr_print_GUID(ndr, "bind_guid", r->in.bind_guid);
13880 ndr->depth--;
13881 ndr_print_ptr(ndr, "bind_info", r->in.bind_info);
13882 ndr->depth++;
13883 if (r->in.bind_info) {
13884 ndr_print_drsuapi_DsBindInfoCtr(ndr, "bind_info", r->in.bind_info);
13886 ndr->depth--;
13887 ndr->depth--;
13889 if (flags & NDR_OUT) {
13890 ndr_print_struct(ndr, "out", "drsuapi_DsBind");
13891 ndr->depth++;
13892 ndr_print_ptr(ndr, "bind_info", r->out.bind_info);
13893 ndr->depth++;
13894 if (r->out.bind_info) {
13895 ndr_print_drsuapi_DsBindInfoCtr(ndr, "bind_info", r->out.bind_info);
13897 ndr->depth--;
13898 ndr_print_ptr(ndr, "bind_handle", r->out.bind_handle);
13899 ndr->depth++;
13900 ndr_print_policy_handle(ndr, "bind_handle", r->out.bind_handle);
13901 ndr->depth--;
13902 ndr_print_WERROR(ndr, "result", r->out.result);
13903 ndr->depth--;
13905 ndr->depth--;
13908 static enum ndr_err_code ndr_push_drsuapi_DsUnbind(struct ndr_push *ndr, int flags, const struct drsuapi_DsUnbind *r)
13910 if (flags & NDR_IN) {
13911 if (r->in.bind_handle == NULL) {
13912 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13914 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
13916 if (flags & NDR_OUT) {
13917 if (r->out.bind_handle == NULL) {
13918 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13920 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.bind_handle));
13921 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13923 return NDR_ERR_SUCCESS;
13926 static enum ndr_err_code ndr_pull_drsuapi_DsUnbind(struct ndr_pull *ndr, int flags, struct drsuapi_DsUnbind *r)
13928 TALLOC_CTX *_mem_save_bind_handle_0;
13929 if (flags & NDR_IN) {
13930 ZERO_STRUCT(r->out);
13932 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13933 NDR_PULL_ALLOC(ndr, r->in.bind_handle);
13935 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
13936 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
13937 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
13938 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
13939 NDR_PULL_ALLOC(ndr, r->out.bind_handle);
13940 *r->out.bind_handle = *r->in.bind_handle;
13942 if (flags & NDR_OUT) {
13943 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13944 NDR_PULL_ALLOC(ndr, r->out.bind_handle);
13946 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
13947 NDR_PULL_SET_MEM_CTX(ndr, r->out.bind_handle, LIBNDR_FLAG_REF_ALLOC);
13948 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.bind_handle));
13949 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
13950 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13952 return NDR_ERR_SUCCESS;
13955 _PUBLIC_ void ndr_print_drsuapi_DsUnbind(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsUnbind *r)
13957 ndr_print_struct(ndr, name, "drsuapi_DsUnbind");
13958 ndr->depth++;
13959 if (flags & NDR_SET_VALUES) {
13960 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13962 if (flags & NDR_IN) {
13963 ndr_print_struct(ndr, "in", "drsuapi_DsUnbind");
13964 ndr->depth++;
13965 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
13966 ndr->depth++;
13967 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
13968 ndr->depth--;
13969 ndr->depth--;
13971 if (flags & NDR_OUT) {
13972 ndr_print_struct(ndr, "out", "drsuapi_DsUnbind");
13973 ndr->depth++;
13974 ndr_print_ptr(ndr, "bind_handle", r->out.bind_handle);
13975 ndr->depth++;
13976 ndr_print_policy_handle(ndr, "bind_handle", r->out.bind_handle);
13977 ndr->depth--;
13978 ndr_print_WERROR(ndr, "result", r->out.result);
13979 ndr->depth--;
13981 ndr->depth--;
13984 static enum ndr_err_code ndr_push_drsuapi_DsReplicaSync(struct ndr_push *ndr, int flags, const struct drsuapi_DsReplicaSync *r)
13986 if (flags & NDR_IN) {
13987 if (r->in.bind_handle == NULL) {
13988 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13990 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
13991 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.level));
13992 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.req, r->in.level));
13993 NDR_CHECK(ndr_push_drsuapi_DsReplicaSyncRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
13995 if (flags & NDR_OUT) {
13996 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13998 return NDR_ERR_SUCCESS;
14001 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaSync(struct ndr_pull *ndr, int flags, struct drsuapi_DsReplicaSync *r)
14003 TALLOC_CTX *_mem_save_bind_handle_0;
14004 if (flags & NDR_IN) {
14005 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14006 NDR_PULL_ALLOC(ndr, r->in.bind_handle);
14008 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14009 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
14010 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14011 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
14012 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.level));
14013 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.req, r->in.level));
14014 NDR_CHECK(ndr_pull_drsuapi_DsReplicaSyncRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
14016 if (flags & NDR_OUT) {
14017 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14019 return NDR_ERR_SUCCESS;
14022 _PUBLIC_ void ndr_print_drsuapi_DsReplicaSync(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsReplicaSync *r)
14024 ndr_print_struct(ndr, name, "drsuapi_DsReplicaSync");
14025 ndr->depth++;
14026 if (flags & NDR_SET_VALUES) {
14027 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14029 if (flags & NDR_IN) {
14030 ndr_print_struct(ndr, "in", "drsuapi_DsReplicaSync");
14031 ndr->depth++;
14032 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
14033 ndr->depth++;
14034 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
14035 ndr->depth--;
14036 ndr_print_int32(ndr, "level", r->in.level);
14037 ndr_print_set_switch_value(ndr, &r->in.req, r->in.level);
14038 ndr_print_drsuapi_DsReplicaSyncRequest(ndr, "req", &r->in.req);
14039 ndr->depth--;
14041 if (flags & NDR_OUT) {
14042 ndr_print_struct(ndr, "out", "drsuapi_DsReplicaSync");
14043 ndr->depth++;
14044 ndr_print_WERROR(ndr, "result", r->out.result);
14045 ndr->depth--;
14047 ndr->depth--;
14050 static enum ndr_err_code ndr_push_drsuapi_DsGetNCChanges(struct ndr_push *ndr, int flags, const struct drsuapi_DsGetNCChanges *r)
14052 if (flags & NDR_IN) {
14053 if (r->in.bind_handle == NULL) {
14054 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14056 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14057 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.level));
14058 if (r->in.req == NULL) {
14059 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14061 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
14062 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
14064 if (flags & NDR_OUT) {
14065 if (r->out.level_out == NULL) {
14066 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14068 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, *r->out.level_out));
14069 if (r->out.ctr == NULL) {
14070 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14072 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
14073 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
14074 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14076 return NDR_ERR_SUCCESS;
14079 static enum ndr_err_code ndr_pull_drsuapi_DsGetNCChanges(struct ndr_pull *ndr, int flags, struct drsuapi_DsGetNCChanges *r)
14081 TALLOC_CTX *_mem_save_bind_handle_0;
14082 TALLOC_CTX *_mem_save_req_0;
14083 TALLOC_CTX *_mem_save_level_out_0;
14084 TALLOC_CTX *_mem_save_ctr_0;
14085 if (flags & NDR_IN) {
14086 ZERO_STRUCT(r->out);
14088 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14089 NDR_PULL_ALLOC(ndr, r->in.bind_handle);
14091 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14092 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
14093 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14094 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
14095 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.level));
14096 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14097 NDR_PULL_ALLOC(ndr, r->in.req);
14099 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
14100 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
14101 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
14102 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
14103 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
14104 NDR_PULL_ALLOC(ndr, r->out.level_out);
14105 ZERO_STRUCTP(r->out.level_out);
14106 NDR_PULL_ALLOC(ndr, r->out.ctr);
14107 ZERO_STRUCTP(r->out.ctr);
14109 if (flags & NDR_OUT) {
14110 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14111 NDR_PULL_ALLOC(ndr, r->out.level_out);
14113 _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
14114 NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
14115 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, r->out.level_out));
14116 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
14117 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14118 NDR_PULL_ALLOC(ndr, r->out.ctr);
14120 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
14121 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
14122 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
14123 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
14124 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
14125 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14127 return NDR_ERR_SUCCESS;
14130 _PUBLIC_ void ndr_print_drsuapi_DsGetNCChanges(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsGetNCChanges *r)
14132 ndr_print_struct(ndr, name, "drsuapi_DsGetNCChanges");
14133 ndr->depth++;
14134 if (flags & NDR_SET_VALUES) {
14135 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14137 if (flags & NDR_IN) {
14138 ndr_print_struct(ndr, "in", "drsuapi_DsGetNCChanges");
14139 ndr->depth++;
14140 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
14141 ndr->depth++;
14142 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
14143 ndr->depth--;
14144 ndr_print_int32(ndr, "level", r->in.level);
14145 ndr_print_ptr(ndr, "req", r->in.req);
14146 ndr->depth++;
14147 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
14148 ndr_print_drsuapi_DsGetNCChangesRequest(ndr, "req", r->in.req);
14149 ndr->depth--;
14150 ndr->depth--;
14152 if (flags & NDR_OUT) {
14153 ndr_print_struct(ndr, "out", "drsuapi_DsGetNCChanges");
14154 ndr->depth++;
14155 ndr_print_ptr(ndr, "level_out", r->out.level_out);
14156 ndr->depth++;
14157 ndr_print_int32(ndr, "level_out", *r->out.level_out);
14158 ndr->depth--;
14159 ndr_print_ptr(ndr, "ctr", r->out.ctr);
14160 ndr->depth++;
14161 ndr_print_set_switch_value(ndr, r->out.ctr, *r->out.level_out);
14162 ndr_print_drsuapi_DsGetNCChangesCtr(ndr, "ctr", r->out.ctr);
14163 ndr->depth--;
14164 ndr_print_WERROR(ndr, "result", r->out.result);
14165 ndr->depth--;
14167 ndr->depth--;
14170 static enum ndr_err_code ndr_push_drsuapi_DsReplicaUpdateRefs(struct ndr_push *ndr, int flags, const struct drsuapi_DsReplicaUpdateRefs *r)
14172 if (flags & NDR_IN) {
14173 if (r->in.bind_handle == NULL) {
14174 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14176 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14177 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.level));
14178 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.req, r->in.level));
14179 NDR_CHECK(ndr_push_drsuapi_DsReplicaUpdateRefsRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
14181 if (flags & NDR_OUT) {
14182 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14184 return NDR_ERR_SUCCESS;
14187 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaUpdateRefs(struct ndr_pull *ndr, int flags, struct drsuapi_DsReplicaUpdateRefs *r)
14189 TALLOC_CTX *_mem_save_bind_handle_0;
14190 if (flags & NDR_IN) {
14191 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14192 NDR_PULL_ALLOC(ndr, r->in.bind_handle);
14194 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14195 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
14196 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14197 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
14198 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.level));
14199 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.req, r->in.level));
14200 NDR_CHECK(ndr_pull_drsuapi_DsReplicaUpdateRefsRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
14202 if (flags & NDR_OUT) {
14203 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14205 return NDR_ERR_SUCCESS;
14208 _PUBLIC_ void ndr_print_drsuapi_DsReplicaUpdateRefs(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsReplicaUpdateRefs *r)
14210 ndr_print_struct(ndr, name, "drsuapi_DsReplicaUpdateRefs");
14211 ndr->depth++;
14212 if (flags & NDR_SET_VALUES) {
14213 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14215 if (flags & NDR_IN) {
14216 ndr_print_struct(ndr, "in", "drsuapi_DsReplicaUpdateRefs");
14217 ndr->depth++;
14218 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
14219 ndr->depth++;
14220 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
14221 ndr->depth--;
14222 ndr_print_int32(ndr, "level", r->in.level);
14223 ndr_print_set_switch_value(ndr, &r->in.req, r->in.level);
14224 ndr_print_drsuapi_DsReplicaUpdateRefsRequest(ndr, "req", &r->in.req);
14225 ndr->depth--;
14227 if (flags & NDR_OUT) {
14228 ndr_print_struct(ndr, "out", "drsuapi_DsReplicaUpdateRefs");
14229 ndr->depth++;
14230 ndr_print_WERROR(ndr, "result", r->out.result);
14231 ndr->depth--;
14233 ndr->depth--;
14236 static enum ndr_err_code ndr_push_drsuapi_DsReplicaAdd(struct ndr_push *ndr, int flags, const struct drsuapi_DsReplicaAdd *r)
14238 if (flags & NDR_IN) {
14239 if (r->in.bind_handle == NULL) {
14240 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14242 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14243 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.level));
14244 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.req, r->in.level));
14245 NDR_CHECK(ndr_push_drsuapi_DsReplicaAddRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
14247 if (flags & NDR_OUT) {
14248 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14250 return NDR_ERR_SUCCESS;
14253 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaAdd(struct ndr_pull *ndr, int flags, struct drsuapi_DsReplicaAdd *r)
14255 TALLOC_CTX *_mem_save_bind_handle_0;
14256 if (flags & NDR_IN) {
14257 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14258 NDR_PULL_ALLOC(ndr, r->in.bind_handle);
14260 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14261 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
14262 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14263 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
14264 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.level));
14265 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.req, r->in.level));
14266 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAddRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
14268 if (flags & NDR_OUT) {
14269 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14271 return NDR_ERR_SUCCESS;
14274 _PUBLIC_ void ndr_print_drsuapi_DsReplicaAdd(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsReplicaAdd *r)
14276 ndr_print_struct(ndr, name, "drsuapi_DsReplicaAdd");
14277 ndr->depth++;
14278 if (flags & NDR_SET_VALUES) {
14279 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14281 if (flags & NDR_IN) {
14282 ndr_print_struct(ndr, "in", "drsuapi_DsReplicaAdd");
14283 ndr->depth++;
14284 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
14285 ndr->depth++;
14286 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
14287 ndr->depth--;
14288 ndr_print_int32(ndr, "level", r->in.level);
14289 ndr_print_set_switch_value(ndr, &r->in.req, r->in.level);
14290 ndr_print_drsuapi_DsReplicaAddRequest(ndr, "req", &r->in.req);
14291 ndr->depth--;
14293 if (flags & NDR_OUT) {
14294 ndr_print_struct(ndr, "out", "drsuapi_DsReplicaAdd");
14295 ndr->depth++;
14296 ndr_print_WERROR(ndr, "result", r->out.result);
14297 ndr->depth--;
14299 ndr->depth--;
14302 static enum ndr_err_code ndr_push_drsuapi_DsReplicaDel(struct ndr_push *ndr, int flags, const struct drsuapi_DsReplicaDel *r)
14304 if (flags & NDR_IN) {
14305 if (r->in.bind_handle == NULL) {
14306 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14308 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14309 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.level));
14310 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.req, r->in.level));
14311 NDR_CHECK(ndr_push_drsuapi_DsReplicaDelRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
14313 if (flags & NDR_OUT) {
14314 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14316 return NDR_ERR_SUCCESS;
14319 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaDel(struct ndr_pull *ndr, int flags, struct drsuapi_DsReplicaDel *r)
14321 TALLOC_CTX *_mem_save_bind_handle_0;
14322 if (flags & NDR_IN) {
14323 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14324 NDR_PULL_ALLOC(ndr, r->in.bind_handle);
14326 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14327 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
14328 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14329 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
14330 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.level));
14331 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.req, r->in.level));
14332 NDR_CHECK(ndr_pull_drsuapi_DsReplicaDelRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
14334 if (flags & NDR_OUT) {
14335 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14337 return NDR_ERR_SUCCESS;
14340 _PUBLIC_ void ndr_print_drsuapi_DsReplicaDel(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsReplicaDel *r)
14342 ndr_print_struct(ndr, name, "drsuapi_DsReplicaDel");
14343 ndr->depth++;
14344 if (flags & NDR_SET_VALUES) {
14345 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14347 if (flags & NDR_IN) {
14348 ndr_print_struct(ndr, "in", "drsuapi_DsReplicaDel");
14349 ndr->depth++;
14350 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
14351 ndr->depth++;
14352 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
14353 ndr->depth--;
14354 ndr_print_int32(ndr, "level", r->in.level);
14355 ndr_print_set_switch_value(ndr, &r->in.req, r->in.level);
14356 ndr_print_drsuapi_DsReplicaDelRequest(ndr, "req", &r->in.req);
14357 ndr->depth--;
14359 if (flags & NDR_OUT) {
14360 ndr_print_struct(ndr, "out", "drsuapi_DsReplicaDel");
14361 ndr->depth++;
14362 ndr_print_WERROR(ndr, "result", r->out.result);
14363 ndr->depth--;
14365 ndr->depth--;
14368 static enum ndr_err_code ndr_push_drsuapi_DsReplicaMod(struct ndr_push *ndr, int flags, const struct drsuapi_DsReplicaMod *r)
14370 if (flags & NDR_IN) {
14371 if (r->in.bind_handle == NULL) {
14372 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14374 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14375 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.level));
14376 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.req, r->in.level));
14377 NDR_CHECK(ndr_push_drsuapi_DsReplicaModRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
14379 if (flags & NDR_OUT) {
14380 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14382 return NDR_ERR_SUCCESS;
14385 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaMod(struct ndr_pull *ndr, int flags, struct drsuapi_DsReplicaMod *r)
14387 TALLOC_CTX *_mem_save_bind_handle_0;
14388 if (flags & NDR_IN) {
14389 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14390 NDR_PULL_ALLOC(ndr, r->in.bind_handle);
14392 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14393 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
14394 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14395 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
14396 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.level));
14397 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.req, r->in.level));
14398 NDR_CHECK(ndr_pull_drsuapi_DsReplicaModRequest(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.req));
14400 if (flags & NDR_OUT) {
14401 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14403 return NDR_ERR_SUCCESS;
14406 _PUBLIC_ void ndr_print_drsuapi_DsReplicaMod(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsReplicaMod *r)
14408 ndr_print_struct(ndr, name, "drsuapi_DsReplicaMod");
14409 ndr->depth++;
14410 if (flags & NDR_SET_VALUES) {
14411 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14413 if (flags & NDR_IN) {
14414 ndr_print_struct(ndr, "in", "drsuapi_DsReplicaMod");
14415 ndr->depth++;
14416 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
14417 ndr->depth++;
14418 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
14419 ndr->depth--;
14420 ndr_print_int32(ndr, "level", r->in.level);
14421 ndr_print_set_switch_value(ndr, &r->in.req, r->in.level);
14422 ndr_print_drsuapi_DsReplicaModRequest(ndr, "req", &r->in.req);
14423 ndr->depth--;
14425 if (flags & NDR_OUT) {
14426 ndr_print_struct(ndr, "out", "drsuapi_DsReplicaMod");
14427 ndr->depth++;
14428 ndr_print_WERROR(ndr, "result", r->out.result);
14429 ndr->depth--;
14431 ndr->depth--;
14434 static enum ndr_err_code ndr_push_DRSUAPI_VERIFY_NAMES(struct ndr_push *ndr, int flags, const struct DRSUAPI_VERIFY_NAMES *r)
14436 if (flags & NDR_IN) {
14438 if (flags & NDR_OUT) {
14439 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14441 return NDR_ERR_SUCCESS;
14444 static enum ndr_err_code ndr_pull_DRSUAPI_VERIFY_NAMES(struct ndr_pull *ndr, int flags, struct DRSUAPI_VERIFY_NAMES *r)
14446 if (flags & NDR_IN) {
14448 if (flags & NDR_OUT) {
14449 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14451 return NDR_ERR_SUCCESS;
14454 _PUBLIC_ void ndr_print_DRSUAPI_VERIFY_NAMES(struct ndr_print *ndr, const char *name, int flags, const struct DRSUAPI_VERIFY_NAMES *r)
14456 ndr_print_struct(ndr, name, "DRSUAPI_VERIFY_NAMES");
14457 ndr->depth++;
14458 if (flags & NDR_SET_VALUES) {
14459 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14461 if (flags & NDR_IN) {
14462 ndr_print_struct(ndr, "in", "DRSUAPI_VERIFY_NAMES");
14463 ndr->depth++;
14464 ndr->depth--;
14466 if (flags & NDR_OUT) {
14467 ndr_print_struct(ndr, "out", "DRSUAPI_VERIFY_NAMES");
14468 ndr->depth++;
14469 ndr_print_WERROR(ndr, "result", r->out.result);
14470 ndr->depth--;
14472 ndr->depth--;
14475 static enum ndr_err_code ndr_push_drsuapi_DsGetMemberships(struct ndr_push *ndr, int flags, const struct drsuapi_DsGetMemberships *r)
14477 if (flags & NDR_IN) {
14478 if (r->in.bind_handle == NULL) {
14479 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14481 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14482 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.level));
14483 if (r->in.req == NULL) {
14484 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14486 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
14487 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
14489 if (flags & NDR_OUT) {
14490 if (r->out.level_out == NULL) {
14491 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14493 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, *r->out.level_out));
14494 if (r->out.ctr == NULL) {
14495 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14497 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
14498 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
14499 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14501 return NDR_ERR_SUCCESS;
14504 static enum ndr_err_code ndr_pull_drsuapi_DsGetMemberships(struct ndr_pull *ndr, int flags, struct drsuapi_DsGetMemberships *r)
14506 TALLOC_CTX *_mem_save_bind_handle_0;
14507 TALLOC_CTX *_mem_save_req_0;
14508 TALLOC_CTX *_mem_save_level_out_0;
14509 TALLOC_CTX *_mem_save_ctr_0;
14510 if (flags & NDR_IN) {
14511 ZERO_STRUCT(r->out);
14513 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14514 NDR_PULL_ALLOC(ndr, r->in.bind_handle);
14516 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14517 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
14518 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14519 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
14520 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.level));
14521 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14522 NDR_PULL_ALLOC(ndr, r->in.req);
14524 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
14525 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
14526 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
14527 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
14528 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
14529 NDR_PULL_ALLOC(ndr, r->out.level_out);
14530 ZERO_STRUCTP(r->out.level_out);
14531 NDR_PULL_ALLOC(ndr, r->out.ctr);
14532 ZERO_STRUCTP(r->out.ctr);
14534 if (flags & NDR_OUT) {
14535 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14536 NDR_PULL_ALLOC(ndr, r->out.level_out);
14538 _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
14539 NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
14540 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, r->out.level_out));
14541 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
14542 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14543 NDR_PULL_ALLOC(ndr, r->out.ctr);
14545 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
14546 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
14547 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
14548 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
14549 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
14550 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14552 return NDR_ERR_SUCCESS;
14555 _PUBLIC_ void ndr_print_drsuapi_DsGetMemberships(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsGetMemberships *r)
14557 ndr_print_struct(ndr, name, "drsuapi_DsGetMemberships");
14558 ndr->depth++;
14559 if (flags & NDR_SET_VALUES) {
14560 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14562 if (flags & NDR_IN) {
14563 ndr_print_struct(ndr, "in", "drsuapi_DsGetMemberships");
14564 ndr->depth++;
14565 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
14566 ndr->depth++;
14567 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
14568 ndr->depth--;
14569 ndr_print_int32(ndr, "level", r->in.level);
14570 ndr_print_ptr(ndr, "req", r->in.req);
14571 ndr->depth++;
14572 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
14573 ndr_print_drsuapi_DsGetMembershipsRequest(ndr, "req", r->in.req);
14574 ndr->depth--;
14575 ndr->depth--;
14577 if (flags & NDR_OUT) {
14578 ndr_print_struct(ndr, "out", "drsuapi_DsGetMemberships");
14579 ndr->depth++;
14580 ndr_print_ptr(ndr, "level_out", r->out.level_out);
14581 ndr->depth++;
14582 ndr_print_int32(ndr, "level_out", *r->out.level_out);
14583 ndr->depth--;
14584 ndr_print_ptr(ndr, "ctr", r->out.ctr);
14585 ndr->depth++;
14586 ndr_print_set_switch_value(ndr, r->out.ctr, *r->out.level_out);
14587 ndr_print_drsuapi_DsGetMembershipsCtr(ndr, "ctr", r->out.ctr);
14588 ndr->depth--;
14589 ndr_print_WERROR(ndr, "result", r->out.result);
14590 ndr->depth--;
14592 ndr->depth--;
14595 static enum ndr_err_code ndr_push_DRSUAPI_INTER_DOMAIN_MOVE(struct ndr_push *ndr, int flags, const struct DRSUAPI_INTER_DOMAIN_MOVE *r)
14597 if (flags & NDR_IN) {
14599 if (flags & NDR_OUT) {
14600 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14602 return NDR_ERR_SUCCESS;
14605 static enum ndr_err_code ndr_pull_DRSUAPI_INTER_DOMAIN_MOVE(struct ndr_pull *ndr, int flags, struct DRSUAPI_INTER_DOMAIN_MOVE *r)
14607 if (flags & NDR_IN) {
14609 if (flags & NDR_OUT) {
14610 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14612 return NDR_ERR_SUCCESS;
14615 _PUBLIC_ void ndr_print_DRSUAPI_INTER_DOMAIN_MOVE(struct ndr_print *ndr, const char *name, int flags, const struct DRSUAPI_INTER_DOMAIN_MOVE *r)
14617 ndr_print_struct(ndr, name, "DRSUAPI_INTER_DOMAIN_MOVE");
14618 ndr->depth++;
14619 if (flags & NDR_SET_VALUES) {
14620 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14622 if (flags & NDR_IN) {
14623 ndr_print_struct(ndr, "in", "DRSUAPI_INTER_DOMAIN_MOVE");
14624 ndr->depth++;
14625 ndr->depth--;
14627 if (flags & NDR_OUT) {
14628 ndr_print_struct(ndr, "out", "DRSUAPI_INTER_DOMAIN_MOVE");
14629 ndr->depth++;
14630 ndr_print_WERROR(ndr, "result", r->out.result);
14631 ndr->depth--;
14633 ndr->depth--;
14636 static enum ndr_err_code ndr_push_drsuapi_DsGetNT4ChangeLog(struct ndr_push *ndr, int flags, const struct drsuapi_DsGetNT4ChangeLog *r)
14638 if (flags & NDR_IN) {
14639 if (r->in.bind_handle == NULL) {
14640 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14642 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14643 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
14644 if (r->in.req == NULL) {
14645 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14647 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
14648 NDR_CHECK(ndr_push_drsuapi_DsGetNT4ChangeLogRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
14650 if (flags & NDR_OUT) {
14651 if (r->out.level_out == NULL) {
14652 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14654 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.level_out));
14655 if (r->out.info == NULL) {
14656 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14658 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, *r->out.level_out));
14659 NDR_CHECK(ndr_push_drsuapi_DsGetNT4ChangeLogInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
14660 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14662 return NDR_ERR_SUCCESS;
14665 static enum ndr_err_code ndr_pull_drsuapi_DsGetNT4ChangeLog(struct ndr_pull *ndr, int flags, struct drsuapi_DsGetNT4ChangeLog *r)
14667 TALLOC_CTX *_mem_save_bind_handle_0;
14668 TALLOC_CTX *_mem_save_req_0;
14669 TALLOC_CTX *_mem_save_level_out_0;
14670 TALLOC_CTX *_mem_save_info_0;
14671 if (flags & NDR_IN) {
14672 ZERO_STRUCT(r->out);
14674 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14675 NDR_PULL_ALLOC(ndr, r->in.bind_handle);
14677 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14678 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
14679 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14680 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
14681 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
14682 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14683 NDR_PULL_ALLOC(ndr, r->in.req);
14685 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
14686 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
14687 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
14688 NDR_CHECK(ndr_pull_drsuapi_DsGetNT4ChangeLogRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
14689 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
14690 NDR_PULL_ALLOC(ndr, r->out.level_out);
14691 ZERO_STRUCTP(r->out.level_out);
14692 NDR_PULL_ALLOC(ndr, r->out.info);
14693 ZERO_STRUCTP(r->out.info);
14695 if (flags & NDR_OUT) {
14696 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14697 NDR_PULL_ALLOC(ndr, r->out.level_out);
14699 _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
14700 NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
14701 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.level_out));
14702 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
14703 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14704 NDR_PULL_ALLOC(ndr, r->out.info);
14706 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14707 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
14708 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, *r->out.level_out));
14709 NDR_CHECK(ndr_pull_drsuapi_DsGetNT4ChangeLogInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
14710 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
14711 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14713 return NDR_ERR_SUCCESS;
14716 _PUBLIC_ void ndr_print_drsuapi_DsGetNT4ChangeLog(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsGetNT4ChangeLog *r)
14718 ndr_print_struct(ndr, name, "drsuapi_DsGetNT4ChangeLog");
14719 ndr->depth++;
14720 if (flags & NDR_SET_VALUES) {
14721 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14723 if (flags & NDR_IN) {
14724 ndr_print_struct(ndr, "in", "drsuapi_DsGetNT4ChangeLog");
14725 ndr->depth++;
14726 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
14727 ndr->depth++;
14728 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
14729 ndr->depth--;
14730 ndr_print_uint32(ndr, "level", r->in.level);
14731 ndr_print_ptr(ndr, "req", r->in.req);
14732 ndr->depth++;
14733 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
14734 ndr_print_drsuapi_DsGetNT4ChangeLogRequest(ndr, "req", r->in.req);
14735 ndr->depth--;
14736 ndr->depth--;
14738 if (flags & NDR_OUT) {
14739 ndr_print_struct(ndr, "out", "drsuapi_DsGetNT4ChangeLog");
14740 ndr->depth++;
14741 ndr_print_ptr(ndr, "level_out", r->out.level_out);
14742 ndr->depth++;
14743 ndr_print_uint32(ndr, "level_out", *r->out.level_out);
14744 ndr->depth--;
14745 ndr_print_ptr(ndr, "info", r->out.info);
14746 ndr->depth++;
14747 ndr_print_set_switch_value(ndr, r->out.info, *r->out.level_out);
14748 ndr_print_drsuapi_DsGetNT4ChangeLogInfo(ndr, "info", r->out.info);
14749 ndr->depth--;
14750 ndr_print_WERROR(ndr, "result", r->out.result);
14751 ndr->depth--;
14753 ndr->depth--;
14756 static enum ndr_err_code ndr_push_drsuapi_DsCrackNames(struct ndr_push *ndr, int flags, const struct drsuapi_DsCrackNames *r)
14758 if (flags & NDR_IN) {
14759 if (r->in.bind_handle == NULL) {
14760 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14762 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14763 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.level));
14764 if (r->in.req == NULL) {
14765 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14767 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
14768 NDR_CHECK(ndr_push_drsuapi_DsNameRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
14770 if (flags & NDR_OUT) {
14771 if (r->out.level_out == NULL) {
14772 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14774 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, *r->out.level_out));
14775 if (r->out.ctr == NULL) {
14776 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14778 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
14779 NDR_CHECK(ndr_push_drsuapi_DsNameCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
14780 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14782 return NDR_ERR_SUCCESS;
14785 static enum ndr_err_code ndr_pull_drsuapi_DsCrackNames(struct ndr_pull *ndr, int flags, struct drsuapi_DsCrackNames *r)
14787 TALLOC_CTX *_mem_save_bind_handle_0;
14788 TALLOC_CTX *_mem_save_req_0;
14789 TALLOC_CTX *_mem_save_level_out_0;
14790 TALLOC_CTX *_mem_save_ctr_0;
14791 if (flags & NDR_IN) {
14792 ZERO_STRUCT(r->out);
14794 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14795 NDR_PULL_ALLOC(ndr, r->in.bind_handle);
14797 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14798 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
14799 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14800 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
14801 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.level));
14802 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14803 NDR_PULL_ALLOC(ndr, r->in.req);
14805 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
14806 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
14807 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
14808 NDR_CHECK(ndr_pull_drsuapi_DsNameRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
14809 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
14810 NDR_PULL_ALLOC(ndr, r->out.level_out);
14811 ZERO_STRUCTP(r->out.level_out);
14812 NDR_PULL_ALLOC(ndr, r->out.ctr);
14813 ZERO_STRUCTP(r->out.ctr);
14815 if (flags & NDR_OUT) {
14816 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14817 NDR_PULL_ALLOC(ndr, r->out.level_out);
14819 _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
14820 NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
14821 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, r->out.level_out));
14822 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
14823 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14824 NDR_PULL_ALLOC(ndr, r->out.ctr);
14826 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
14827 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
14828 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
14829 NDR_CHECK(ndr_pull_drsuapi_DsNameCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
14830 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
14831 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14833 return NDR_ERR_SUCCESS;
14836 _PUBLIC_ void ndr_print_drsuapi_DsCrackNames(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsCrackNames *r)
14838 ndr_print_struct(ndr, name, "drsuapi_DsCrackNames");
14839 ndr->depth++;
14840 if (flags & NDR_SET_VALUES) {
14841 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14843 if (flags & NDR_IN) {
14844 ndr_print_struct(ndr, "in", "drsuapi_DsCrackNames");
14845 ndr->depth++;
14846 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
14847 ndr->depth++;
14848 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
14849 ndr->depth--;
14850 ndr_print_int32(ndr, "level", r->in.level);
14851 ndr_print_ptr(ndr, "req", r->in.req);
14852 ndr->depth++;
14853 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
14854 ndr_print_drsuapi_DsNameRequest(ndr, "req", r->in.req);
14855 ndr->depth--;
14856 ndr->depth--;
14858 if (flags & NDR_OUT) {
14859 ndr_print_struct(ndr, "out", "drsuapi_DsCrackNames");
14860 ndr->depth++;
14861 ndr_print_ptr(ndr, "level_out", r->out.level_out);
14862 ndr->depth++;
14863 ndr_print_int32(ndr, "level_out", *r->out.level_out);
14864 ndr->depth--;
14865 ndr_print_ptr(ndr, "ctr", r->out.ctr);
14866 ndr->depth++;
14867 ndr_print_set_switch_value(ndr, r->out.ctr, *r->out.level_out);
14868 ndr_print_drsuapi_DsNameCtr(ndr, "ctr", r->out.ctr);
14869 ndr->depth--;
14870 ndr_print_WERROR(ndr, "result", r->out.result);
14871 ndr->depth--;
14873 ndr->depth--;
14876 static enum ndr_err_code ndr_push_drsuapi_DsWriteAccountSpn(struct ndr_push *ndr, int flags, const struct drsuapi_DsWriteAccountSpn *r)
14878 if (flags & NDR_IN) {
14879 if (r->in.bind_handle == NULL) {
14880 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14882 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14883 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.level));
14884 if (r->in.req == NULL) {
14885 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14887 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
14888 NDR_CHECK(ndr_push_drsuapi_DsWriteAccountSpnRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
14890 if (flags & NDR_OUT) {
14891 if (r->out.level_out == NULL) {
14892 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14894 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, *r->out.level_out));
14895 if (r->out.res == NULL) {
14896 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14898 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.res, *r->out.level_out));
14899 NDR_CHECK(ndr_push_drsuapi_DsWriteAccountSpnResult(ndr, NDR_SCALARS, r->out.res));
14900 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14902 return NDR_ERR_SUCCESS;
14905 static enum ndr_err_code ndr_pull_drsuapi_DsWriteAccountSpn(struct ndr_pull *ndr, int flags, struct drsuapi_DsWriteAccountSpn *r)
14907 TALLOC_CTX *_mem_save_bind_handle_0;
14908 TALLOC_CTX *_mem_save_req_0;
14909 TALLOC_CTX *_mem_save_level_out_0;
14910 TALLOC_CTX *_mem_save_res_0;
14911 if (flags & NDR_IN) {
14912 ZERO_STRUCT(r->out);
14914 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14915 NDR_PULL_ALLOC(ndr, r->in.bind_handle);
14917 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14918 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
14919 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
14920 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
14921 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.level));
14922 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14923 NDR_PULL_ALLOC(ndr, r->in.req);
14925 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
14926 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
14927 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
14928 NDR_CHECK(ndr_pull_drsuapi_DsWriteAccountSpnRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
14929 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
14930 NDR_PULL_ALLOC(ndr, r->out.level_out);
14931 ZERO_STRUCTP(r->out.level_out);
14932 NDR_PULL_ALLOC(ndr, r->out.res);
14933 ZERO_STRUCTP(r->out.res);
14935 if (flags & NDR_OUT) {
14936 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14937 NDR_PULL_ALLOC(ndr, r->out.level_out);
14939 _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
14940 NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
14941 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, r->out.level_out));
14942 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
14943 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14944 NDR_PULL_ALLOC(ndr, r->out.res);
14946 _mem_save_res_0 = NDR_PULL_GET_MEM_CTX(ndr);
14947 NDR_PULL_SET_MEM_CTX(ndr, r->out.res, LIBNDR_FLAG_REF_ALLOC);
14948 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.res, *r->out.level_out));
14949 NDR_CHECK(ndr_pull_drsuapi_DsWriteAccountSpnResult(ndr, NDR_SCALARS, r->out.res));
14950 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_res_0, LIBNDR_FLAG_REF_ALLOC);
14951 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14953 return NDR_ERR_SUCCESS;
14956 _PUBLIC_ void ndr_print_drsuapi_DsWriteAccountSpn(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsWriteAccountSpn *r)
14958 ndr_print_struct(ndr, name, "drsuapi_DsWriteAccountSpn");
14959 ndr->depth++;
14960 if (flags & NDR_SET_VALUES) {
14961 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14963 if (flags & NDR_IN) {
14964 ndr_print_struct(ndr, "in", "drsuapi_DsWriteAccountSpn");
14965 ndr->depth++;
14966 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
14967 ndr->depth++;
14968 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
14969 ndr->depth--;
14970 ndr_print_int32(ndr, "level", r->in.level);
14971 ndr_print_ptr(ndr, "req", r->in.req);
14972 ndr->depth++;
14973 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
14974 ndr_print_drsuapi_DsWriteAccountSpnRequest(ndr, "req", r->in.req);
14975 ndr->depth--;
14976 ndr->depth--;
14978 if (flags & NDR_OUT) {
14979 ndr_print_struct(ndr, "out", "drsuapi_DsWriteAccountSpn");
14980 ndr->depth++;
14981 ndr_print_ptr(ndr, "level_out", r->out.level_out);
14982 ndr->depth++;
14983 ndr_print_int32(ndr, "level_out", *r->out.level_out);
14984 ndr->depth--;
14985 ndr_print_ptr(ndr, "res", r->out.res);
14986 ndr->depth++;
14987 ndr_print_set_switch_value(ndr, r->out.res, *r->out.level_out);
14988 ndr_print_drsuapi_DsWriteAccountSpnResult(ndr, "res", r->out.res);
14989 ndr->depth--;
14990 ndr_print_WERROR(ndr, "result", r->out.result);
14991 ndr->depth--;
14993 ndr->depth--;
14996 static enum ndr_err_code ndr_push_drsuapi_DsRemoveDSServer(struct ndr_push *ndr, int flags, const struct drsuapi_DsRemoveDSServer *r)
14998 if (flags & NDR_IN) {
14999 if (r->in.bind_handle == NULL) {
15000 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15002 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15003 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.level));
15004 if (r->in.req == NULL) {
15005 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15007 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
15008 NDR_CHECK(ndr_push_drsuapi_DsRemoveDSServerRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
15010 if (flags & NDR_OUT) {
15011 if (r->out.level_out == NULL) {
15012 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15014 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, *r->out.level_out));
15015 if (r->out.res == NULL) {
15016 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15018 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.res, *r->out.level_out));
15019 NDR_CHECK(ndr_push_drsuapi_DsRemoveDSServerResult(ndr, NDR_SCALARS, r->out.res));
15020 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15022 return NDR_ERR_SUCCESS;
15025 static enum ndr_err_code ndr_pull_drsuapi_DsRemoveDSServer(struct ndr_pull *ndr, int flags, struct drsuapi_DsRemoveDSServer *r)
15027 TALLOC_CTX *_mem_save_bind_handle_0;
15028 TALLOC_CTX *_mem_save_req_0;
15029 TALLOC_CTX *_mem_save_level_out_0;
15030 TALLOC_CTX *_mem_save_res_0;
15031 if (flags & NDR_IN) {
15032 ZERO_STRUCT(r->out);
15034 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15035 NDR_PULL_ALLOC(ndr, r->in.bind_handle);
15037 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15038 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
15039 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15040 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
15041 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.level));
15042 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15043 NDR_PULL_ALLOC(ndr, r->in.req);
15045 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
15046 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
15047 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
15048 NDR_CHECK(ndr_pull_drsuapi_DsRemoveDSServerRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
15049 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
15050 NDR_PULL_ALLOC(ndr, r->out.level_out);
15051 ZERO_STRUCTP(r->out.level_out);
15052 NDR_PULL_ALLOC(ndr, r->out.res);
15053 ZERO_STRUCTP(r->out.res);
15055 if (flags & NDR_OUT) {
15056 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15057 NDR_PULL_ALLOC(ndr, r->out.level_out);
15059 _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
15060 NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
15061 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, r->out.level_out));
15062 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
15063 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15064 NDR_PULL_ALLOC(ndr, r->out.res);
15066 _mem_save_res_0 = NDR_PULL_GET_MEM_CTX(ndr);
15067 NDR_PULL_SET_MEM_CTX(ndr, r->out.res, LIBNDR_FLAG_REF_ALLOC);
15068 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.res, *r->out.level_out));
15069 NDR_CHECK(ndr_pull_drsuapi_DsRemoveDSServerResult(ndr, NDR_SCALARS, r->out.res));
15070 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_res_0, LIBNDR_FLAG_REF_ALLOC);
15071 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15073 return NDR_ERR_SUCCESS;
15076 _PUBLIC_ void ndr_print_drsuapi_DsRemoveDSServer(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsRemoveDSServer *r)
15078 ndr_print_struct(ndr, name, "drsuapi_DsRemoveDSServer");
15079 ndr->depth++;
15080 if (flags & NDR_SET_VALUES) {
15081 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15083 if (flags & NDR_IN) {
15084 ndr_print_struct(ndr, "in", "drsuapi_DsRemoveDSServer");
15085 ndr->depth++;
15086 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
15087 ndr->depth++;
15088 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
15089 ndr->depth--;
15090 ndr_print_int32(ndr, "level", r->in.level);
15091 ndr_print_ptr(ndr, "req", r->in.req);
15092 ndr->depth++;
15093 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
15094 ndr_print_drsuapi_DsRemoveDSServerRequest(ndr, "req", r->in.req);
15095 ndr->depth--;
15096 ndr->depth--;
15098 if (flags & NDR_OUT) {
15099 ndr_print_struct(ndr, "out", "drsuapi_DsRemoveDSServer");
15100 ndr->depth++;
15101 ndr_print_ptr(ndr, "level_out", r->out.level_out);
15102 ndr->depth++;
15103 ndr_print_int32(ndr, "level_out", *r->out.level_out);
15104 ndr->depth--;
15105 ndr_print_ptr(ndr, "res", r->out.res);
15106 ndr->depth++;
15107 ndr_print_set_switch_value(ndr, r->out.res, *r->out.level_out);
15108 ndr_print_drsuapi_DsRemoveDSServerResult(ndr, "res", r->out.res);
15109 ndr->depth--;
15110 ndr_print_WERROR(ndr, "result", r->out.result);
15111 ndr->depth--;
15113 ndr->depth--;
15116 static enum ndr_err_code ndr_push_DRSUAPI_REMOVE_DS_DOMAIN(struct ndr_push *ndr, int flags, const struct DRSUAPI_REMOVE_DS_DOMAIN *r)
15118 if (flags & NDR_IN) {
15120 if (flags & NDR_OUT) {
15121 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15123 return NDR_ERR_SUCCESS;
15126 static enum ndr_err_code ndr_pull_DRSUAPI_REMOVE_DS_DOMAIN(struct ndr_pull *ndr, int flags, struct DRSUAPI_REMOVE_DS_DOMAIN *r)
15128 if (flags & NDR_IN) {
15130 if (flags & NDR_OUT) {
15131 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15133 return NDR_ERR_SUCCESS;
15136 _PUBLIC_ void ndr_print_DRSUAPI_REMOVE_DS_DOMAIN(struct ndr_print *ndr, const char *name, int flags, const struct DRSUAPI_REMOVE_DS_DOMAIN *r)
15138 ndr_print_struct(ndr, name, "DRSUAPI_REMOVE_DS_DOMAIN");
15139 ndr->depth++;
15140 if (flags & NDR_SET_VALUES) {
15141 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15143 if (flags & NDR_IN) {
15144 ndr_print_struct(ndr, "in", "DRSUAPI_REMOVE_DS_DOMAIN");
15145 ndr->depth++;
15146 ndr->depth--;
15148 if (flags & NDR_OUT) {
15149 ndr_print_struct(ndr, "out", "DRSUAPI_REMOVE_DS_DOMAIN");
15150 ndr->depth++;
15151 ndr_print_WERROR(ndr, "result", r->out.result);
15152 ndr->depth--;
15154 ndr->depth--;
15157 static enum ndr_err_code ndr_push_drsuapi_DsGetDomainControllerInfo(struct ndr_push *ndr, int flags, const struct drsuapi_DsGetDomainControllerInfo *r)
15159 if (flags & NDR_IN) {
15160 if (r->in.bind_handle == NULL) {
15161 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15163 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15164 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.level));
15165 if (r->in.req == NULL) {
15166 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15168 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
15169 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
15171 if (flags & NDR_OUT) {
15172 if (r->out.level_out == NULL) {
15173 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15175 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, *r->out.level_out));
15176 if (r->out.ctr == NULL) {
15177 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15179 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
15180 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
15181 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15183 return NDR_ERR_SUCCESS;
15186 static enum ndr_err_code ndr_pull_drsuapi_DsGetDomainControllerInfo(struct ndr_pull *ndr, int flags, struct drsuapi_DsGetDomainControllerInfo *r)
15188 TALLOC_CTX *_mem_save_bind_handle_0;
15189 TALLOC_CTX *_mem_save_req_0;
15190 TALLOC_CTX *_mem_save_level_out_0;
15191 TALLOC_CTX *_mem_save_ctr_0;
15192 if (flags & NDR_IN) {
15193 ZERO_STRUCT(r->out);
15195 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15196 NDR_PULL_ALLOC(ndr, r->in.bind_handle);
15198 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15199 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
15200 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15201 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
15202 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.level));
15203 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15204 NDR_PULL_ALLOC(ndr, r->in.req);
15206 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
15207 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
15208 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
15209 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
15210 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
15211 NDR_PULL_ALLOC(ndr, r->out.level_out);
15212 ZERO_STRUCTP(r->out.level_out);
15213 NDR_PULL_ALLOC(ndr, r->out.ctr);
15214 ZERO_STRUCTP(r->out.ctr);
15216 if (flags & NDR_OUT) {
15217 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15218 NDR_PULL_ALLOC(ndr, r->out.level_out);
15220 _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
15221 NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
15222 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, r->out.level_out));
15223 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
15224 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15225 NDR_PULL_ALLOC(ndr, r->out.ctr);
15227 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
15228 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
15229 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
15230 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
15231 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
15232 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15234 return NDR_ERR_SUCCESS;
15237 _PUBLIC_ void ndr_print_drsuapi_DsGetDomainControllerInfo(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsGetDomainControllerInfo *r)
15239 ndr_print_struct(ndr, name, "drsuapi_DsGetDomainControllerInfo");
15240 ndr->depth++;
15241 if (flags & NDR_SET_VALUES) {
15242 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15244 if (flags & NDR_IN) {
15245 ndr_print_struct(ndr, "in", "drsuapi_DsGetDomainControllerInfo");
15246 ndr->depth++;
15247 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
15248 ndr->depth++;
15249 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
15250 ndr->depth--;
15251 ndr_print_int32(ndr, "level", r->in.level);
15252 ndr_print_ptr(ndr, "req", r->in.req);
15253 ndr->depth++;
15254 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
15255 ndr_print_drsuapi_DsGetDCInfoRequest(ndr, "req", r->in.req);
15256 ndr->depth--;
15257 ndr->depth--;
15259 if (flags & NDR_OUT) {
15260 ndr_print_struct(ndr, "out", "drsuapi_DsGetDomainControllerInfo");
15261 ndr->depth++;
15262 ndr_print_ptr(ndr, "level_out", r->out.level_out);
15263 ndr->depth++;
15264 ndr_print_int32(ndr, "level_out", *r->out.level_out);
15265 ndr->depth--;
15266 ndr_print_ptr(ndr, "ctr", r->out.ctr);
15267 ndr->depth++;
15268 ndr_print_set_switch_value(ndr, r->out.ctr, *r->out.level_out);
15269 ndr_print_drsuapi_DsGetDCInfoCtr(ndr, "ctr", r->out.ctr);
15270 ndr->depth--;
15271 ndr_print_WERROR(ndr, "result", r->out.result);
15272 ndr->depth--;
15274 ndr->depth--;
15277 _PUBLIC_ enum ndr_err_code ndr_push_drsuapi_DsAddEntry(struct ndr_push *ndr, int flags, const struct drsuapi_DsAddEntry *r)
15279 if (flags & NDR_IN) {
15280 if (r->in.bind_handle == NULL) {
15281 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15283 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15284 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.level));
15285 if (r->in.req == NULL) {
15286 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15288 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
15289 NDR_CHECK(ndr_push_drsuapi_DsAddEntryRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
15291 if (flags & NDR_OUT) {
15292 if (r->out.level_out == NULL) {
15293 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15295 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, *r->out.level_out));
15296 if (r->out.ctr == NULL) {
15297 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15299 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
15300 NDR_CHECK(ndr_push_drsuapi_DsAddEntryCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
15301 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15303 return NDR_ERR_SUCCESS;
15306 _PUBLIC_ enum ndr_err_code ndr_pull_drsuapi_DsAddEntry(struct ndr_pull *ndr, int flags, struct drsuapi_DsAddEntry *r)
15308 TALLOC_CTX *_mem_save_bind_handle_0;
15309 TALLOC_CTX *_mem_save_req_0;
15310 TALLOC_CTX *_mem_save_level_out_0;
15311 TALLOC_CTX *_mem_save_ctr_0;
15312 if (flags & NDR_IN) {
15313 ZERO_STRUCT(r->out);
15315 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15316 NDR_PULL_ALLOC(ndr, r->in.bind_handle);
15318 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15319 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
15320 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15321 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
15322 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.level));
15323 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15324 NDR_PULL_ALLOC(ndr, r->in.req);
15326 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
15327 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
15328 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
15329 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
15330 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
15331 NDR_PULL_ALLOC(ndr, r->out.level_out);
15332 ZERO_STRUCTP(r->out.level_out);
15333 NDR_PULL_ALLOC(ndr, r->out.ctr);
15334 ZERO_STRUCTP(r->out.ctr);
15336 if (flags & NDR_OUT) {
15337 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15338 NDR_PULL_ALLOC(ndr, r->out.level_out);
15340 _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
15341 NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
15342 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, r->out.level_out));
15343 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
15344 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15345 NDR_PULL_ALLOC(ndr, r->out.ctr);
15347 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
15348 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
15349 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
15350 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
15351 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
15352 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15354 return NDR_ERR_SUCCESS;
15357 _PUBLIC_ void ndr_print_drsuapi_DsAddEntry(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsAddEntry *r)
15359 ndr_print_struct(ndr, name, "drsuapi_DsAddEntry");
15360 ndr->depth++;
15361 if (flags & NDR_SET_VALUES) {
15362 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15364 if (flags & NDR_IN) {
15365 ndr_print_struct(ndr, "in", "drsuapi_DsAddEntry");
15366 ndr->depth++;
15367 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
15368 ndr->depth++;
15369 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
15370 ndr->depth--;
15371 ndr_print_int32(ndr, "level", r->in.level);
15372 ndr_print_ptr(ndr, "req", r->in.req);
15373 ndr->depth++;
15374 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
15375 ndr_print_drsuapi_DsAddEntryRequest(ndr, "req", r->in.req);
15376 ndr->depth--;
15377 ndr->depth--;
15379 if (flags & NDR_OUT) {
15380 ndr_print_struct(ndr, "out", "drsuapi_DsAddEntry");
15381 ndr->depth++;
15382 ndr_print_ptr(ndr, "level_out", r->out.level_out);
15383 ndr->depth++;
15384 ndr_print_int32(ndr, "level_out", *r->out.level_out);
15385 ndr->depth--;
15386 ndr_print_ptr(ndr, "ctr", r->out.ctr);
15387 ndr->depth++;
15388 ndr_print_set_switch_value(ndr, r->out.ctr, *r->out.level_out);
15389 ndr_print_drsuapi_DsAddEntryCtr(ndr, "ctr", r->out.ctr);
15390 ndr->depth--;
15391 ndr_print_WERROR(ndr, "result", r->out.result);
15392 ndr->depth--;
15394 ndr->depth--;
15397 static enum ndr_err_code ndr_push_drsuapi_DsExecuteKCC(struct ndr_push *ndr, int flags, const struct drsuapi_DsExecuteKCC *r)
15399 if (flags & NDR_IN) {
15400 if (r->in.bind_handle == NULL) {
15401 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15403 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15404 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15405 if (r->in.req == NULL) {
15406 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15408 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
15409 NDR_CHECK(ndr_push_drsuapi_DsExecuteKCCRequest(ndr, NDR_SCALARS, r->in.req));
15411 if (flags & NDR_OUT) {
15412 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15414 return NDR_ERR_SUCCESS;
15417 static enum ndr_err_code ndr_pull_drsuapi_DsExecuteKCC(struct ndr_pull *ndr, int flags, struct drsuapi_DsExecuteKCC *r)
15419 TALLOC_CTX *_mem_save_bind_handle_0;
15420 TALLOC_CTX *_mem_save_req_0;
15421 if (flags & NDR_IN) {
15422 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15423 NDR_PULL_ALLOC(ndr, r->in.bind_handle);
15425 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15426 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
15427 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15428 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
15429 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15430 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15431 NDR_PULL_ALLOC(ndr, r->in.req);
15433 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
15434 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
15435 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
15436 NDR_CHECK(ndr_pull_drsuapi_DsExecuteKCCRequest(ndr, NDR_SCALARS, r->in.req));
15437 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
15439 if (flags & NDR_OUT) {
15440 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15442 return NDR_ERR_SUCCESS;
15445 _PUBLIC_ void ndr_print_drsuapi_DsExecuteKCC(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsExecuteKCC *r)
15447 ndr_print_struct(ndr, name, "drsuapi_DsExecuteKCC");
15448 ndr->depth++;
15449 if (flags & NDR_SET_VALUES) {
15450 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15452 if (flags & NDR_IN) {
15453 ndr_print_struct(ndr, "in", "drsuapi_DsExecuteKCC");
15454 ndr->depth++;
15455 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
15456 ndr->depth++;
15457 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
15458 ndr->depth--;
15459 ndr_print_uint32(ndr, "level", r->in.level);
15460 ndr_print_ptr(ndr, "req", r->in.req);
15461 ndr->depth++;
15462 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
15463 ndr_print_drsuapi_DsExecuteKCCRequest(ndr, "req", r->in.req);
15464 ndr->depth--;
15465 ndr->depth--;
15467 if (flags & NDR_OUT) {
15468 ndr_print_struct(ndr, "out", "drsuapi_DsExecuteKCC");
15469 ndr->depth++;
15470 ndr_print_WERROR(ndr, "result", r->out.result);
15471 ndr->depth--;
15473 ndr->depth--;
15476 static enum ndr_err_code ndr_push_drsuapi_DsReplicaGetInfo(struct ndr_push *ndr, int flags, const struct drsuapi_DsReplicaGetInfo *r)
15478 if (flags & NDR_IN) {
15479 if (r->in.bind_handle == NULL) {
15480 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15482 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15483 NDR_CHECK(ndr_push_drsuapi_DsReplicaGetInfoLevel(ndr, NDR_SCALARS, r->in.level));
15484 if (r->in.req == NULL) {
15485 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15487 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
15488 NDR_CHECK(ndr_push_drsuapi_DsReplicaGetInfoRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
15490 if (flags & NDR_OUT) {
15491 if (r->out.info_type == NULL) {
15492 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15494 NDR_CHECK(ndr_push_drsuapi_DsReplicaInfoType(ndr, NDR_SCALARS, *r->out.info_type));
15495 if (r->out.info == NULL) {
15496 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15498 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, *r->out.info_type));
15499 NDR_CHECK(ndr_push_drsuapi_DsReplicaInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
15500 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15502 return NDR_ERR_SUCCESS;
15505 static enum ndr_err_code ndr_pull_drsuapi_DsReplicaGetInfo(struct ndr_pull *ndr, int flags, struct drsuapi_DsReplicaGetInfo *r)
15507 TALLOC_CTX *_mem_save_bind_handle_0;
15508 TALLOC_CTX *_mem_save_req_0;
15509 TALLOC_CTX *_mem_save_info_type_0;
15510 TALLOC_CTX *_mem_save_info_0;
15511 if (flags & NDR_IN) {
15512 ZERO_STRUCT(r->out);
15514 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15515 NDR_PULL_ALLOC(ndr, r->in.bind_handle);
15517 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15518 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
15519 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15520 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
15521 NDR_CHECK(ndr_pull_drsuapi_DsReplicaGetInfoLevel(ndr, NDR_SCALARS, &r->in.level));
15522 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15523 NDR_PULL_ALLOC(ndr, r->in.req);
15525 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
15526 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
15527 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
15528 NDR_CHECK(ndr_pull_drsuapi_DsReplicaGetInfoRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
15529 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
15530 NDR_PULL_ALLOC(ndr, r->out.info_type);
15531 ZERO_STRUCTP(r->out.info_type);
15532 NDR_PULL_ALLOC(ndr, r->out.info);
15533 ZERO_STRUCTP(r->out.info);
15535 if (flags & NDR_OUT) {
15536 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15537 NDR_PULL_ALLOC(ndr, r->out.info_type);
15539 _mem_save_info_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
15540 NDR_PULL_SET_MEM_CTX(ndr, r->out.info_type, LIBNDR_FLAG_REF_ALLOC);
15541 NDR_CHECK(ndr_pull_drsuapi_DsReplicaInfoType(ndr, NDR_SCALARS, r->out.info_type));
15542 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_type_0, LIBNDR_FLAG_REF_ALLOC);
15543 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15544 NDR_PULL_ALLOC(ndr, r->out.info);
15546 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15547 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
15548 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, *r->out.info_type));
15549 NDR_CHECK(ndr_pull_drsuapi_DsReplicaInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
15550 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
15551 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15553 return NDR_ERR_SUCCESS;
15556 _PUBLIC_ void ndr_print_drsuapi_DsReplicaGetInfo(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsReplicaGetInfo *r)
15558 ndr_print_struct(ndr, name, "drsuapi_DsReplicaGetInfo");
15559 ndr->depth++;
15560 if (flags & NDR_SET_VALUES) {
15561 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15563 if (flags & NDR_IN) {
15564 ndr_print_struct(ndr, "in", "drsuapi_DsReplicaGetInfo");
15565 ndr->depth++;
15566 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
15567 ndr->depth++;
15568 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
15569 ndr->depth--;
15570 ndr_print_drsuapi_DsReplicaGetInfoLevel(ndr, "level", r->in.level);
15571 ndr_print_ptr(ndr, "req", r->in.req);
15572 ndr->depth++;
15573 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
15574 ndr_print_drsuapi_DsReplicaGetInfoRequest(ndr, "req", r->in.req);
15575 ndr->depth--;
15576 ndr->depth--;
15578 if (flags & NDR_OUT) {
15579 ndr_print_struct(ndr, "out", "drsuapi_DsReplicaGetInfo");
15580 ndr->depth++;
15581 ndr_print_ptr(ndr, "info_type", r->out.info_type);
15582 ndr->depth++;
15583 ndr_print_drsuapi_DsReplicaInfoType(ndr, "info_type", *r->out.info_type);
15584 ndr->depth--;
15585 ndr_print_ptr(ndr, "info", r->out.info);
15586 ndr->depth++;
15587 ndr_print_set_switch_value(ndr, r->out.info, *r->out.info_type);
15588 ndr_print_drsuapi_DsReplicaInfo(ndr, "info", r->out.info);
15589 ndr->depth--;
15590 ndr_print_WERROR(ndr, "result", r->out.result);
15591 ndr->depth--;
15593 ndr->depth--;
15596 static enum ndr_err_code ndr_push_DRSUAPI_ADD_SID_HISTORY(struct ndr_push *ndr, int flags, const struct DRSUAPI_ADD_SID_HISTORY *r)
15598 if (flags & NDR_IN) {
15600 if (flags & NDR_OUT) {
15601 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15603 return NDR_ERR_SUCCESS;
15606 static enum ndr_err_code ndr_pull_DRSUAPI_ADD_SID_HISTORY(struct ndr_pull *ndr, int flags, struct DRSUAPI_ADD_SID_HISTORY *r)
15608 if (flags & NDR_IN) {
15610 if (flags & NDR_OUT) {
15611 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15613 return NDR_ERR_SUCCESS;
15616 _PUBLIC_ void ndr_print_DRSUAPI_ADD_SID_HISTORY(struct ndr_print *ndr, const char *name, int flags, const struct DRSUAPI_ADD_SID_HISTORY *r)
15618 ndr_print_struct(ndr, name, "DRSUAPI_ADD_SID_HISTORY");
15619 ndr->depth++;
15620 if (flags & NDR_SET_VALUES) {
15621 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15623 if (flags & NDR_IN) {
15624 ndr_print_struct(ndr, "in", "DRSUAPI_ADD_SID_HISTORY");
15625 ndr->depth++;
15626 ndr->depth--;
15628 if (flags & NDR_OUT) {
15629 ndr_print_struct(ndr, "out", "DRSUAPI_ADD_SID_HISTORY");
15630 ndr->depth++;
15631 ndr_print_WERROR(ndr, "result", r->out.result);
15632 ndr->depth--;
15634 ndr->depth--;
15637 static enum ndr_err_code ndr_push_drsuapi_DsGetMemberships2(struct ndr_push *ndr, int flags, const struct drsuapi_DsGetMemberships2 *r)
15639 if (flags & NDR_IN) {
15640 if (r->in.bind_handle == NULL) {
15641 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15643 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15644 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.level));
15645 if (r->in.req == NULL) {
15646 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15648 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
15649 NDR_CHECK(ndr_push_drsuapi_DsGetMemberships2Request(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
15651 if (flags & NDR_OUT) {
15652 if (r->out.level_out == NULL) {
15653 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15655 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, *r->out.level_out));
15656 if (r->out.ctr == NULL) {
15657 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15659 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
15660 NDR_CHECK(ndr_push_drsuapi_DsGetMemberships2Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
15661 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15663 return NDR_ERR_SUCCESS;
15666 static enum ndr_err_code ndr_pull_drsuapi_DsGetMemberships2(struct ndr_pull *ndr, int flags, struct drsuapi_DsGetMemberships2 *r)
15668 TALLOC_CTX *_mem_save_bind_handle_0;
15669 TALLOC_CTX *_mem_save_req_0;
15670 TALLOC_CTX *_mem_save_level_out_0;
15671 TALLOC_CTX *_mem_save_ctr_0;
15672 if (flags & NDR_IN) {
15673 ZERO_STRUCT(r->out);
15675 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15676 NDR_PULL_ALLOC(ndr, r->in.bind_handle);
15678 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15679 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
15680 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15681 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
15682 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.level));
15683 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15684 NDR_PULL_ALLOC(ndr, r->in.req);
15686 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
15687 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
15688 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
15689 NDR_CHECK(ndr_pull_drsuapi_DsGetMemberships2Request(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
15690 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
15691 NDR_PULL_ALLOC(ndr, r->out.level_out);
15692 ZERO_STRUCTP(r->out.level_out);
15693 NDR_PULL_ALLOC(ndr, r->out.ctr);
15694 ZERO_STRUCTP(r->out.ctr);
15696 if (flags & NDR_OUT) {
15697 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15698 NDR_PULL_ALLOC(ndr, r->out.level_out);
15700 _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
15701 NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
15702 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, r->out.level_out));
15703 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
15704 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15705 NDR_PULL_ALLOC(ndr, r->out.ctr);
15707 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
15708 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
15709 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
15710 NDR_CHECK(ndr_pull_drsuapi_DsGetMemberships2Ctr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
15711 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
15712 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15714 return NDR_ERR_SUCCESS;
15717 _PUBLIC_ void ndr_print_drsuapi_DsGetMemberships2(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_DsGetMemberships2 *r)
15719 ndr_print_struct(ndr, name, "drsuapi_DsGetMemberships2");
15720 ndr->depth++;
15721 if (flags & NDR_SET_VALUES) {
15722 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15724 if (flags & NDR_IN) {
15725 ndr_print_struct(ndr, "in", "drsuapi_DsGetMemberships2");
15726 ndr->depth++;
15727 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
15728 ndr->depth++;
15729 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
15730 ndr->depth--;
15731 ndr_print_int32(ndr, "level", r->in.level);
15732 ndr_print_ptr(ndr, "req", r->in.req);
15733 ndr->depth++;
15734 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
15735 ndr_print_drsuapi_DsGetMemberships2Request(ndr, "req", r->in.req);
15736 ndr->depth--;
15737 ndr->depth--;
15739 if (flags & NDR_OUT) {
15740 ndr_print_struct(ndr, "out", "drsuapi_DsGetMemberships2");
15741 ndr->depth++;
15742 ndr_print_ptr(ndr, "level_out", r->out.level_out);
15743 ndr->depth++;
15744 ndr_print_int32(ndr, "level_out", *r->out.level_out);
15745 ndr->depth--;
15746 ndr_print_ptr(ndr, "ctr", r->out.ctr);
15747 ndr->depth++;
15748 ndr_print_set_switch_value(ndr, r->out.ctr, *r->out.level_out);
15749 ndr_print_drsuapi_DsGetMemberships2Ctr(ndr, "ctr", r->out.ctr);
15750 ndr->depth--;
15751 ndr_print_WERROR(ndr, "result", r->out.result);
15752 ndr->depth--;
15754 ndr->depth--;
15757 static enum ndr_err_code ndr_push_DRSUAPI_REPLICA_VERIFY_OBJECTS(struct ndr_push *ndr, int flags, const struct DRSUAPI_REPLICA_VERIFY_OBJECTS *r)
15759 if (flags & NDR_IN) {
15761 if (flags & NDR_OUT) {
15762 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15764 return NDR_ERR_SUCCESS;
15767 static enum ndr_err_code ndr_pull_DRSUAPI_REPLICA_VERIFY_OBJECTS(struct ndr_pull *ndr, int flags, struct DRSUAPI_REPLICA_VERIFY_OBJECTS *r)
15769 if (flags & NDR_IN) {
15771 if (flags & NDR_OUT) {
15772 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15774 return NDR_ERR_SUCCESS;
15777 _PUBLIC_ void ndr_print_DRSUAPI_REPLICA_VERIFY_OBJECTS(struct ndr_print *ndr, const char *name, int flags, const struct DRSUAPI_REPLICA_VERIFY_OBJECTS *r)
15779 ndr_print_struct(ndr, name, "DRSUAPI_REPLICA_VERIFY_OBJECTS");
15780 ndr->depth++;
15781 if (flags & NDR_SET_VALUES) {
15782 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15784 if (flags & NDR_IN) {
15785 ndr_print_struct(ndr, "in", "DRSUAPI_REPLICA_VERIFY_OBJECTS");
15786 ndr->depth++;
15787 ndr->depth--;
15789 if (flags & NDR_OUT) {
15790 ndr_print_struct(ndr, "out", "DRSUAPI_REPLICA_VERIFY_OBJECTS");
15791 ndr->depth++;
15792 ndr_print_WERROR(ndr, "result", r->out.result);
15793 ndr->depth--;
15795 ndr->depth--;
15798 static enum ndr_err_code ndr_push_DRSUAPI_GET_OBJECT_EXISTENCE(struct ndr_push *ndr, int flags, const struct DRSUAPI_GET_OBJECT_EXISTENCE *r)
15800 if (flags & NDR_IN) {
15802 if (flags & NDR_OUT) {
15803 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15805 return NDR_ERR_SUCCESS;
15808 static enum ndr_err_code ndr_pull_DRSUAPI_GET_OBJECT_EXISTENCE(struct ndr_pull *ndr, int flags, struct DRSUAPI_GET_OBJECT_EXISTENCE *r)
15810 if (flags & NDR_IN) {
15812 if (flags & NDR_OUT) {
15813 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15815 return NDR_ERR_SUCCESS;
15818 _PUBLIC_ void ndr_print_DRSUAPI_GET_OBJECT_EXISTENCE(struct ndr_print *ndr, const char *name, int flags, const struct DRSUAPI_GET_OBJECT_EXISTENCE *r)
15820 ndr_print_struct(ndr, name, "DRSUAPI_GET_OBJECT_EXISTENCE");
15821 ndr->depth++;
15822 if (flags & NDR_SET_VALUES) {
15823 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15825 if (flags & NDR_IN) {
15826 ndr_print_struct(ndr, "in", "DRSUAPI_GET_OBJECT_EXISTENCE");
15827 ndr->depth++;
15828 ndr->depth--;
15830 if (flags & NDR_OUT) {
15831 ndr_print_struct(ndr, "out", "DRSUAPI_GET_OBJECT_EXISTENCE");
15832 ndr->depth++;
15833 ndr_print_WERROR(ndr, "result", r->out.result);
15834 ndr->depth--;
15836 ndr->depth--;
15839 static enum ndr_err_code ndr_push_drsuapi_QuerySitesByCost(struct ndr_push *ndr, int flags, const struct drsuapi_QuerySitesByCost *r)
15841 if (flags & NDR_IN) {
15842 if (r->in.bind_handle == NULL) {
15843 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15845 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15846 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, r->in.level));
15847 if (r->in.req == NULL) {
15848 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15850 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.req, r->in.level));
15851 NDR_CHECK(ndr_push_drsuapi_QuerySitesByCostRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
15853 if (flags & NDR_OUT) {
15854 if (r->out.level_out == NULL) {
15855 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15857 NDR_CHECK(ndr_push_int32(ndr, NDR_SCALARS, *r->out.level_out));
15858 if (r->out.ctr == NULL) {
15859 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15861 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
15862 NDR_CHECK(ndr_push_drsuapi_QuerySitesByCostCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
15863 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15865 return NDR_ERR_SUCCESS;
15868 static enum ndr_err_code ndr_pull_drsuapi_QuerySitesByCost(struct ndr_pull *ndr, int flags, struct drsuapi_QuerySitesByCost *r)
15870 TALLOC_CTX *_mem_save_bind_handle_0;
15871 TALLOC_CTX *_mem_save_req_0;
15872 TALLOC_CTX *_mem_save_level_out_0;
15873 TALLOC_CTX *_mem_save_ctr_0;
15874 if (flags & NDR_IN) {
15875 ZERO_STRUCT(r->out);
15877 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15878 NDR_PULL_ALLOC(ndr, r->in.bind_handle);
15880 _mem_save_bind_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15881 NDR_PULL_SET_MEM_CTX(ndr, r->in.bind_handle, LIBNDR_FLAG_REF_ALLOC);
15882 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.bind_handle));
15883 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bind_handle_0, LIBNDR_FLAG_REF_ALLOC);
15884 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, &r->in.level));
15885 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15886 NDR_PULL_ALLOC(ndr, r->in.req);
15888 _mem_save_req_0 = NDR_PULL_GET_MEM_CTX(ndr);
15889 NDR_PULL_SET_MEM_CTX(ndr, r->in.req, LIBNDR_FLAG_REF_ALLOC);
15890 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.req, r->in.level));
15891 NDR_CHECK(ndr_pull_drsuapi_QuerySitesByCostRequest(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.req));
15892 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_req_0, LIBNDR_FLAG_REF_ALLOC);
15893 NDR_PULL_ALLOC(ndr, r->out.level_out);
15894 ZERO_STRUCTP(r->out.level_out);
15895 NDR_PULL_ALLOC(ndr, r->out.ctr);
15896 ZERO_STRUCTP(r->out.ctr);
15898 if (flags & NDR_OUT) {
15899 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15900 NDR_PULL_ALLOC(ndr, r->out.level_out);
15902 _mem_save_level_out_0 = NDR_PULL_GET_MEM_CTX(ndr);
15903 NDR_PULL_SET_MEM_CTX(ndr, r->out.level_out, LIBNDR_FLAG_REF_ALLOC);
15904 NDR_CHECK(ndr_pull_int32(ndr, NDR_SCALARS, r->out.level_out));
15905 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level_out_0, LIBNDR_FLAG_REF_ALLOC);
15906 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15907 NDR_PULL_ALLOC(ndr, r->out.ctr);
15909 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
15910 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
15911 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.ctr, *r->out.level_out));
15912 NDR_CHECK(ndr_pull_drsuapi_QuerySitesByCostCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
15913 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
15914 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15916 return NDR_ERR_SUCCESS;
15919 _PUBLIC_ void ndr_print_drsuapi_QuerySitesByCost(struct ndr_print *ndr, const char *name, int flags, const struct drsuapi_QuerySitesByCost *r)
15921 ndr_print_struct(ndr, name, "drsuapi_QuerySitesByCost");
15922 ndr->depth++;
15923 if (flags & NDR_SET_VALUES) {
15924 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15926 if (flags & NDR_IN) {
15927 ndr_print_struct(ndr, "in", "drsuapi_QuerySitesByCost");
15928 ndr->depth++;
15929 ndr_print_ptr(ndr, "bind_handle", r->in.bind_handle);
15930 ndr->depth++;
15931 ndr_print_policy_handle(ndr, "bind_handle", r->in.bind_handle);
15932 ndr->depth--;
15933 ndr_print_int32(ndr, "level", r->in.level);
15934 ndr_print_ptr(ndr, "req", r->in.req);
15935 ndr->depth++;
15936 ndr_print_set_switch_value(ndr, r->in.req, r->in.level);
15937 ndr_print_drsuapi_QuerySitesByCostRequest(ndr, "req", r->in.req);
15938 ndr->depth--;
15939 ndr->depth--;
15941 if (flags & NDR_OUT) {
15942 ndr_print_struct(ndr, "out", "drsuapi_QuerySitesByCost");
15943 ndr->depth++;
15944 ndr_print_ptr(ndr, "level_out", r->out.level_out);
15945 ndr->depth++;
15946 ndr_print_int32(ndr, "level_out", *r->out.level_out);
15947 ndr->depth--;
15948 ndr_print_ptr(ndr, "ctr", r->out.ctr);
15949 ndr->depth++;
15950 ndr_print_set_switch_value(ndr, r->out.ctr, *r->out.level_out);
15951 ndr_print_drsuapi_QuerySitesByCostCtr(ndr, "ctr", r->out.ctr);
15952 ndr->depth--;
15953 ndr_print_WERROR(ndr, "result", r->out.result);
15954 ndr->depth--;
15956 ndr->depth--;
15959 static const struct ndr_interface_call drsuapi_calls[] = {
15961 "drsuapi_DsBind",
15962 sizeof(struct drsuapi_DsBind),
15963 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsBind,
15964 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsBind,
15965 (ndr_print_function_t) ndr_print_drsuapi_DsBind,
15966 false,
15969 "drsuapi_DsUnbind",
15970 sizeof(struct drsuapi_DsUnbind),
15971 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsUnbind,
15972 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsUnbind,
15973 (ndr_print_function_t) ndr_print_drsuapi_DsUnbind,
15974 false,
15977 "drsuapi_DsReplicaSync",
15978 sizeof(struct drsuapi_DsReplicaSync),
15979 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsReplicaSync,
15980 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsReplicaSync,
15981 (ndr_print_function_t) ndr_print_drsuapi_DsReplicaSync,
15982 false,
15985 "drsuapi_DsGetNCChanges",
15986 sizeof(struct drsuapi_DsGetNCChanges),
15987 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsGetNCChanges,
15988 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsGetNCChanges,
15989 (ndr_print_function_t) ndr_print_drsuapi_DsGetNCChanges,
15990 false,
15993 "drsuapi_DsReplicaUpdateRefs",
15994 sizeof(struct drsuapi_DsReplicaUpdateRefs),
15995 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsReplicaUpdateRefs,
15996 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsReplicaUpdateRefs,
15997 (ndr_print_function_t) ndr_print_drsuapi_DsReplicaUpdateRefs,
15998 false,
16001 "drsuapi_DsReplicaAdd",
16002 sizeof(struct drsuapi_DsReplicaAdd),
16003 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsReplicaAdd,
16004 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsReplicaAdd,
16005 (ndr_print_function_t) ndr_print_drsuapi_DsReplicaAdd,
16006 false,
16009 "drsuapi_DsReplicaDel",
16010 sizeof(struct drsuapi_DsReplicaDel),
16011 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsReplicaDel,
16012 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsReplicaDel,
16013 (ndr_print_function_t) ndr_print_drsuapi_DsReplicaDel,
16014 false,
16017 "drsuapi_DsReplicaMod",
16018 sizeof(struct drsuapi_DsReplicaMod),
16019 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsReplicaMod,
16020 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsReplicaMod,
16021 (ndr_print_function_t) ndr_print_drsuapi_DsReplicaMod,
16022 false,
16025 "DRSUAPI_VERIFY_NAMES",
16026 sizeof(struct DRSUAPI_VERIFY_NAMES),
16027 (ndr_push_flags_fn_t) ndr_push_DRSUAPI_VERIFY_NAMES,
16028 (ndr_pull_flags_fn_t) ndr_pull_DRSUAPI_VERIFY_NAMES,
16029 (ndr_print_function_t) ndr_print_DRSUAPI_VERIFY_NAMES,
16030 false,
16033 "drsuapi_DsGetMemberships",
16034 sizeof(struct drsuapi_DsGetMemberships),
16035 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsGetMemberships,
16036 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsGetMemberships,
16037 (ndr_print_function_t) ndr_print_drsuapi_DsGetMemberships,
16038 false,
16041 "DRSUAPI_INTER_DOMAIN_MOVE",
16042 sizeof(struct DRSUAPI_INTER_DOMAIN_MOVE),
16043 (ndr_push_flags_fn_t) ndr_push_DRSUAPI_INTER_DOMAIN_MOVE,
16044 (ndr_pull_flags_fn_t) ndr_pull_DRSUAPI_INTER_DOMAIN_MOVE,
16045 (ndr_print_function_t) ndr_print_DRSUAPI_INTER_DOMAIN_MOVE,
16046 false,
16049 "drsuapi_DsGetNT4ChangeLog",
16050 sizeof(struct drsuapi_DsGetNT4ChangeLog),
16051 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsGetNT4ChangeLog,
16052 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsGetNT4ChangeLog,
16053 (ndr_print_function_t) ndr_print_drsuapi_DsGetNT4ChangeLog,
16054 false,
16057 "drsuapi_DsCrackNames",
16058 sizeof(struct drsuapi_DsCrackNames),
16059 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsCrackNames,
16060 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsCrackNames,
16061 (ndr_print_function_t) ndr_print_drsuapi_DsCrackNames,
16062 false,
16065 "drsuapi_DsWriteAccountSpn",
16066 sizeof(struct drsuapi_DsWriteAccountSpn),
16067 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsWriteAccountSpn,
16068 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsWriteAccountSpn,
16069 (ndr_print_function_t) ndr_print_drsuapi_DsWriteAccountSpn,
16070 false,
16073 "drsuapi_DsRemoveDSServer",
16074 sizeof(struct drsuapi_DsRemoveDSServer),
16075 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsRemoveDSServer,
16076 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsRemoveDSServer,
16077 (ndr_print_function_t) ndr_print_drsuapi_DsRemoveDSServer,
16078 false,
16081 "DRSUAPI_REMOVE_DS_DOMAIN",
16082 sizeof(struct DRSUAPI_REMOVE_DS_DOMAIN),
16083 (ndr_push_flags_fn_t) ndr_push_DRSUAPI_REMOVE_DS_DOMAIN,
16084 (ndr_pull_flags_fn_t) ndr_pull_DRSUAPI_REMOVE_DS_DOMAIN,
16085 (ndr_print_function_t) ndr_print_DRSUAPI_REMOVE_DS_DOMAIN,
16086 false,
16089 "drsuapi_DsGetDomainControllerInfo",
16090 sizeof(struct drsuapi_DsGetDomainControllerInfo),
16091 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsGetDomainControllerInfo,
16092 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsGetDomainControllerInfo,
16093 (ndr_print_function_t) ndr_print_drsuapi_DsGetDomainControllerInfo,
16094 false,
16097 "drsuapi_DsAddEntry",
16098 sizeof(struct drsuapi_DsAddEntry),
16099 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsAddEntry,
16100 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsAddEntry,
16101 (ndr_print_function_t) ndr_print_drsuapi_DsAddEntry,
16102 false,
16105 "drsuapi_DsExecuteKCC",
16106 sizeof(struct drsuapi_DsExecuteKCC),
16107 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsExecuteKCC,
16108 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsExecuteKCC,
16109 (ndr_print_function_t) ndr_print_drsuapi_DsExecuteKCC,
16110 false,
16113 "drsuapi_DsReplicaGetInfo",
16114 sizeof(struct drsuapi_DsReplicaGetInfo),
16115 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsReplicaGetInfo,
16116 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsReplicaGetInfo,
16117 (ndr_print_function_t) ndr_print_drsuapi_DsReplicaGetInfo,
16118 false,
16121 "DRSUAPI_ADD_SID_HISTORY",
16122 sizeof(struct DRSUAPI_ADD_SID_HISTORY),
16123 (ndr_push_flags_fn_t) ndr_push_DRSUAPI_ADD_SID_HISTORY,
16124 (ndr_pull_flags_fn_t) ndr_pull_DRSUAPI_ADD_SID_HISTORY,
16125 (ndr_print_function_t) ndr_print_DRSUAPI_ADD_SID_HISTORY,
16126 false,
16129 "drsuapi_DsGetMemberships2",
16130 sizeof(struct drsuapi_DsGetMemberships2),
16131 (ndr_push_flags_fn_t) ndr_push_drsuapi_DsGetMemberships2,
16132 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_DsGetMemberships2,
16133 (ndr_print_function_t) ndr_print_drsuapi_DsGetMemberships2,
16134 false,
16137 "DRSUAPI_REPLICA_VERIFY_OBJECTS",
16138 sizeof(struct DRSUAPI_REPLICA_VERIFY_OBJECTS),
16139 (ndr_push_flags_fn_t) ndr_push_DRSUAPI_REPLICA_VERIFY_OBJECTS,
16140 (ndr_pull_flags_fn_t) ndr_pull_DRSUAPI_REPLICA_VERIFY_OBJECTS,
16141 (ndr_print_function_t) ndr_print_DRSUAPI_REPLICA_VERIFY_OBJECTS,
16142 false,
16145 "DRSUAPI_GET_OBJECT_EXISTENCE",
16146 sizeof(struct DRSUAPI_GET_OBJECT_EXISTENCE),
16147 (ndr_push_flags_fn_t) ndr_push_DRSUAPI_GET_OBJECT_EXISTENCE,
16148 (ndr_pull_flags_fn_t) ndr_pull_DRSUAPI_GET_OBJECT_EXISTENCE,
16149 (ndr_print_function_t) ndr_print_DRSUAPI_GET_OBJECT_EXISTENCE,
16150 false,
16153 "drsuapi_QuerySitesByCost",
16154 sizeof(struct drsuapi_QuerySitesByCost),
16155 (ndr_push_flags_fn_t) ndr_push_drsuapi_QuerySitesByCost,
16156 (ndr_pull_flags_fn_t) ndr_pull_drsuapi_QuerySitesByCost,
16157 (ndr_print_function_t) ndr_print_drsuapi_QuerySitesByCost,
16158 false,
16160 { NULL, 0, NULL, NULL, NULL, false }
16163 static const char * const drsuapi_endpoint_strings[] = {
16164 "ncacn_np:[\\pipe\\lsass]",
16165 "ncacn_np:[\\pipe\\protected_storage]",
16166 "ncacn_ip_tcp:",
16167 "ncalrpc:",
16170 static const struct ndr_interface_string_array drsuapi_endpoints = {
16171 .count = 4,
16172 .names = drsuapi_endpoint_strings
16175 static const char * const drsuapi_authservice_strings[] = {
16176 "ldap",
16179 static const struct ndr_interface_string_array drsuapi_authservices = {
16180 .count = 1,
16181 .names = drsuapi_authservice_strings
16185 const struct ndr_interface_table ndr_table_drsuapi = {
16186 .name = "drsuapi",
16187 .syntax_id = {
16188 {0xe3514235,0x4b06,0x11d1,{0xab,0x04},{0x00,0xc0,0x4f,0xc2,0xdc,0xd2}},
16189 NDR_DRSUAPI_VERSION
16191 .helpstring = NDR_DRSUAPI_HELPSTRING,
16192 .num_calls = 25,
16193 .calls = drsuapi_calls,
16194 .endpoints = &drsuapi_endpoints,
16195 .authservices = &drsuapi_authservices