1 /* parser auto-generated by pidl */
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
)
19 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &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
);
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
);
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
)
74 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &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
);
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
);
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
));
96 if (ndr_flags
& NDR_BUFFERS
) {
98 return NDR_ERR_SUCCESS
;
101 static enum ndr_err_code
ndr_pull_drsuapi_DsBindInfo24(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsBindInfo24
*r
)
103 if (ndr_flags
& NDR_SCALARS
) {
104 NDR_CHECK(ndr_pull_align(ndr
, 4));
105 NDR_CHECK(ndr_pull_drsuapi_SupportedExtensions(ndr
, NDR_SCALARS
, &r
->supported_extensions
));
106 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->site_guid
));
107 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pid
));
109 if (ndr_flags
& NDR_BUFFERS
) {
111 return NDR_ERR_SUCCESS
;
114 _PUBLIC_
void ndr_print_drsuapi_DsBindInfo24(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsBindInfo24
*r
)
116 ndr_print_struct(ndr
, name
, "drsuapi_DsBindInfo24");
118 ndr_print_drsuapi_SupportedExtensions(ndr
, "supported_extensions", r
->supported_extensions
);
119 ndr_print_GUID(ndr
, "site_guid", &r
->site_guid
);
120 ndr_print_uint32(ndr
, "pid", r
->pid
);
124 static enum ndr_err_code
ndr_push_drsuapi_DsBindInfo28(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsBindInfo28
*r
)
126 if (ndr_flags
& NDR_SCALARS
) {
127 NDR_CHECK(ndr_push_align(ndr
, 4));
128 NDR_CHECK(ndr_push_drsuapi_SupportedExtensions(ndr
, NDR_SCALARS
, r
->supported_extensions
));
129 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->site_guid
));
130 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pid
));
131 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->repl_epoch
));
133 if (ndr_flags
& NDR_BUFFERS
) {
135 return NDR_ERR_SUCCESS
;
138 static enum ndr_err_code
ndr_pull_drsuapi_DsBindInfo28(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsBindInfo28
*r
)
140 if (ndr_flags
& NDR_SCALARS
) {
141 NDR_CHECK(ndr_pull_align(ndr
, 4));
142 NDR_CHECK(ndr_pull_drsuapi_SupportedExtensions(ndr
, NDR_SCALARS
, &r
->supported_extensions
));
143 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->site_guid
));
144 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pid
));
145 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->repl_epoch
));
147 if (ndr_flags
& NDR_BUFFERS
) {
149 return NDR_ERR_SUCCESS
;
152 _PUBLIC_
void ndr_print_drsuapi_DsBindInfo28(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsBindInfo28
*r
)
154 ndr_print_struct(ndr
, name
, "drsuapi_DsBindInfo28");
156 ndr_print_drsuapi_SupportedExtensions(ndr
, "supported_extensions", r
->supported_extensions
);
157 ndr_print_GUID(ndr
, "site_guid", &r
->site_guid
);
158 ndr_print_uint32(ndr
, "pid", r
->pid
);
159 ndr_print_uint32(ndr
, "repl_epoch", r
->repl_epoch
);
163 static enum ndr_err_code
ndr_push_drsuapi_DsBindInfo48(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsBindInfo48
*r
)
165 if (ndr_flags
& NDR_SCALARS
) {
166 NDR_CHECK(ndr_push_align(ndr
, 4));
167 NDR_CHECK(ndr_push_drsuapi_SupportedExtensions(ndr
, NDR_SCALARS
, r
->supported_extensions
));
168 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->site_guid
));
169 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pid
));
170 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->repl_epoch
));
171 NDR_CHECK(ndr_push_drsuapi_SupportedExtensionsExt(ndr
, NDR_SCALARS
, r
->supported_extensions_ext
));
172 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->config_dn_guid
));
174 if (ndr_flags
& NDR_BUFFERS
) {
176 return NDR_ERR_SUCCESS
;
179 static enum ndr_err_code
ndr_pull_drsuapi_DsBindInfo48(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsBindInfo48
*r
)
181 if (ndr_flags
& NDR_SCALARS
) {
182 NDR_CHECK(ndr_pull_align(ndr
, 4));
183 NDR_CHECK(ndr_pull_drsuapi_SupportedExtensions(ndr
, NDR_SCALARS
, &r
->supported_extensions
));
184 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->site_guid
));
185 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pid
));
186 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->repl_epoch
));
187 NDR_CHECK(ndr_pull_drsuapi_SupportedExtensionsExt(ndr
, NDR_SCALARS
, &r
->supported_extensions_ext
));
188 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->config_dn_guid
));
190 if (ndr_flags
& NDR_BUFFERS
) {
192 return NDR_ERR_SUCCESS
;
195 _PUBLIC_
void ndr_print_drsuapi_DsBindInfo48(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsBindInfo48
*r
)
197 ndr_print_struct(ndr
, name
, "drsuapi_DsBindInfo48");
199 ndr_print_drsuapi_SupportedExtensions(ndr
, "supported_extensions", r
->supported_extensions
);
200 ndr_print_GUID(ndr
, "site_guid", &r
->site_guid
);
201 ndr_print_uint32(ndr
, "pid", r
->pid
);
202 ndr_print_uint32(ndr
, "repl_epoch", r
->repl_epoch
);
203 ndr_print_drsuapi_SupportedExtensionsExt(ndr
, "supported_extensions_ext", r
->supported_extensions_ext
);
204 ndr_print_GUID(ndr
, "config_dn_guid", &r
->config_dn_guid
);
208 static enum ndr_err_code
ndr_push_drsuapi_DsBindInfoFallBack(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsBindInfoFallBack
*r
)
210 if (ndr_flags
& NDR_SCALARS
) {
211 NDR_CHECK(ndr_push_align(ndr
, 4));
213 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
214 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
215 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->info
));
216 ndr
->flags
= _flags_save_DATA_BLOB
;
219 if (ndr_flags
& NDR_BUFFERS
) {
221 return NDR_ERR_SUCCESS
;
224 static enum ndr_err_code
ndr_pull_drsuapi_DsBindInfoFallBack(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsBindInfoFallBack
*r
)
226 if (ndr_flags
& NDR_SCALARS
) {
227 NDR_CHECK(ndr_pull_align(ndr
, 4));
229 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
230 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
231 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->info
));
232 ndr
->flags
= _flags_save_DATA_BLOB
;
235 if (ndr_flags
& NDR_BUFFERS
) {
237 return NDR_ERR_SUCCESS
;
240 _PUBLIC_
void ndr_print_drsuapi_DsBindInfoFallBack(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsBindInfoFallBack
*r
)
242 ndr_print_struct(ndr
, name
, "drsuapi_DsBindInfoFallBack");
244 ndr_print_DATA_BLOB(ndr
, "info", r
->info
);
248 static enum ndr_err_code
ndr_push_drsuapi_DsBindInfo(struct ndr_push
*ndr
, int ndr_flags
, const union drsuapi_DsBindInfo
*r
)
250 if (ndr_flags
& NDR_SCALARS
) {
251 int level
= ndr_push_get_switch_value(ndr
, r
);
255 struct ndr_push
*_ndr_info24
;
256 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info24
, 4, -1));
257 NDR_CHECK(ndr_push_drsuapi_DsBindInfo24(_ndr_info24
, NDR_SCALARS
, &r
->info24
));
258 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info24
, 4, -1));
264 struct ndr_push
*_ndr_info28
;
265 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info28
, 4, -1));
266 NDR_CHECK(ndr_push_drsuapi_DsBindInfo28(_ndr_info28
, NDR_SCALARS
, &r
->info28
));
267 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info28
, 4, -1));
273 struct ndr_push
*_ndr_info48
;
274 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info48
, 4, -1));
275 NDR_CHECK(ndr_push_drsuapi_DsBindInfo48(_ndr_info48
, NDR_SCALARS
, &r
->info48
));
276 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info48
, 4, -1));
282 struct ndr_push
*_ndr_FallBack
;
283 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_FallBack
, 4, -1));
284 NDR_CHECK(ndr_push_drsuapi_DsBindInfoFallBack(_ndr_FallBack
, NDR_SCALARS
, &r
->FallBack
));
285 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_FallBack
, 4, -1));
291 if (ndr_flags
& NDR_BUFFERS
) {
292 int level
= ndr_push_get_switch_value(ndr
, r
);
308 return NDR_ERR_SUCCESS
;
311 static enum ndr_err_code
ndr_pull_drsuapi_DsBindInfo(struct ndr_pull
*ndr
, int ndr_flags
, union drsuapi_DsBindInfo
*r
)
314 level
= ndr_pull_get_switch_value(ndr
, r
);
315 if (ndr_flags
& NDR_SCALARS
) {
319 struct ndr_pull
*_ndr_info24
;
320 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info24
, 4, -1));
321 NDR_CHECK(ndr_pull_drsuapi_DsBindInfo24(_ndr_info24
, NDR_SCALARS
, &r
->info24
));
322 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info24
, 4, -1));
328 struct ndr_pull
*_ndr_info28
;
329 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info28
, 4, -1));
330 NDR_CHECK(ndr_pull_drsuapi_DsBindInfo28(_ndr_info28
, NDR_SCALARS
, &r
->info28
));
331 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info28
, 4, -1));
337 struct ndr_pull
*_ndr_info48
;
338 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info48
, 4, -1));
339 NDR_CHECK(ndr_pull_drsuapi_DsBindInfo48(_ndr_info48
, NDR_SCALARS
, &r
->info48
));
340 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info48
, 4, -1));
346 struct ndr_pull
*_ndr_FallBack
;
347 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_FallBack
, 4, -1));
348 NDR_CHECK(ndr_pull_drsuapi_DsBindInfoFallBack(_ndr_FallBack
, NDR_SCALARS
, &r
->FallBack
));
349 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_FallBack
, 4, -1));
355 if (ndr_flags
& NDR_BUFFERS
) {
371 return NDR_ERR_SUCCESS
;
374 _PUBLIC_
void ndr_print_drsuapi_DsBindInfo(struct ndr_print
*ndr
, const char *name
, const union drsuapi_DsBindInfo
*r
)
377 level
= ndr_print_get_switch_value(ndr
, r
);
378 ndr_print_union(ndr
, name
, level
, "drsuapi_DsBindInfo");
381 ndr_print_drsuapi_DsBindInfo24(ndr
, "info24", &r
->info24
);
385 ndr_print_drsuapi_DsBindInfo28(ndr
, "info28", &r
->info28
);
389 ndr_print_drsuapi_DsBindInfo48(ndr
, "info48", &r
->info48
);
393 ndr_print_drsuapi_DsBindInfoFallBack(ndr
, "FallBack", &r
->FallBack
);
399 static enum ndr_err_code
ndr_push_drsuapi_DsBindInfoCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsBindInfoCtr
*r
)
401 if (ndr_flags
& NDR_SCALARS
) {
402 NDR_CHECK(ndr_push_align(ndr
, 4));
403 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
404 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->info
, r
->length
));
405 NDR_CHECK(ndr_push_drsuapi_DsBindInfo(ndr
, NDR_SCALARS
, &r
->info
));
407 if (ndr_flags
& NDR_BUFFERS
) {
409 return NDR_ERR_SUCCESS
;
412 static enum ndr_err_code
ndr_pull_drsuapi_DsBindInfoCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsBindInfoCtr
*r
)
414 if (ndr_flags
& NDR_SCALARS
) {
415 NDR_CHECK(ndr_pull_align(ndr
, 4));
416 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
417 if (r
->length
< 1 || r
->length
> 10000) {
418 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
420 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->info
, r
->length
));
421 NDR_CHECK(ndr_pull_drsuapi_DsBindInfo(ndr
, NDR_SCALARS
, &r
->info
));
423 if (ndr_flags
& NDR_BUFFERS
) {
425 return NDR_ERR_SUCCESS
;
428 _PUBLIC_
void ndr_print_drsuapi_DsBindInfoCtr(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsBindInfoCtr
*r
)
430 ndr_print_struct(ndr
, name
, "drsuapi_DsBindInfoCtr");
432 ndr_print_uint32(ndr
, "length", r
->length
);
433 ndr_print_set_switch_value(ndr
, &r
->info
, r
->length
);
434 ndr_print_drsuapi_DsBindInfo(ndr
, "info", &r
->info
);
438 _PUBLIC_
enum ndr_err_code
ndr_push_drsuapi_DsReplicaObjectIdentifier(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaObjectIdentifier
*r
)
440 if (ndr_flags
& NDR_SCALARS
) {
441 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, strlen_m(r
->dn
) + 1));
442 NDR_CHECK(ndr_push_align(ndr
, 4));
443 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_drsuapi_DsReplicaObjectIdentifier(r
, ndr
->iconv_convenience
, ndr
->flags
) - 4));
444 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_dom_sid28(&r
->sid
, ndr
->flags
)));
445 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->guid
));
446 NDR_CHECK(ndr_push_dom_sid28(ndr
, NDR_SCALARS
, &r
->sid
));
447 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, strlen_m(r
->dn
)));
448 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dn
, strlen_m(r
->dn
) + 1, sizeof(uint16_t), CH_UTF16
));
450 if (ndr_flags
& NDR_BUFFERS
) {
451 NDR_CHECK(ndr_push_dom_sid28(ndr
, NDR_BUFFERS
, &r
->sid
));
453 return NDR_ERR_SUCCESS
;
456 _PUBLIC_
enum ndr_err_code
ndr_pull_drsuapi_DsReplicaObjectIdentifier(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaObjectIdentifier
*r
)
458 if (ndr_flags
& NDR_SCALARS
) {
459 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dn
));
460 NDR_CHECK(ndr_pull_align(ndr
, 4));
461 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->__ndr_size
));
462 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->__ndr_size_sid
));
463 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->guid
));
464 NDR_CHECK(ndr_pull_dom_sid28(ndr
, NDR_SCALARS
, &r
->sid
));
465 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->__ndr_size_dn
));
466 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dn
, ndr_get_array_size(ndr
, &r
->dn
), sizeof(uint16_t), CH_UTF16
));
468 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->dn
, r
->__ndr_size_dn
+ 1));
471 if (ndr_flags
& NDR_BUFFERS
) {
472 NDR_CHECK(ndr_pull_dom_sid28(ndr
, NDR_BUFFERS
, &r
->sid
));
474 return NDR_ERR_SUCCESS
;
477 _PUBLIC_
void ndr_print_drsuapi_DsReplicaObjectIdentifier(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaObjectIdentifier
*r
)
479 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaObjectIdentifier");
481 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
);
482 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
);
483 ndr_print_GUID(ndr
, "guid", &r
->guid
);
484 ndr_print_dom_sid28(ndr
, "sid", &r
->sid
);
485 ndr_print_uint32(ndr
, "__ndr_size_dn", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?strlen_m(r
->dn
):r
->__ndr_size_dn
);
486 ndr_print_string(ndr
, "dn", r
->dn
);
490 _PUBLIC_
size_t ndr_size_drsuapi_DsReplicaObjectIdentifier(const struct drsuapi_DsReplicaObjectIdentifier
*r
, struct smb_iconv_convenience
*ic
, int flags
)
492 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_drsuapi_DsReplicaObjectIdentifier
, ic
);
495 _PUBLIC_
enum ndr_err_code
ndr_push_drsuapi_DsReplicaSyncOptions(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
497 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
498 return NDR_ERR_SUCCESS
;
501 _PUBLIC_
enum ndr_err_code
ndr_pull_drsuapi_DsReplicaSyncOptions(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
504 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
506 return NDR_ERR_SUCCESS
;
509 _PUBLIC_
void ndr_print_drsuapi_DsReplicaSyncOptions(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
511 ndr_print_uint32(ndr
, name
, r
);
513 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_OPERATION", DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_OPERATION
, r
);
514 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_WRITEABLE", DRSUAPI_DS_REPLICA_SYNC_WRITEABLE
, r
);
515 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_PERIODIC", DRSUAPI_DS_REPLICA_SYNC_PERIODIC
, r
);
516 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_INTERSITE_MESSAGING", DRSUAPI_DS_REPLICA_SYNC_INTERSITE_MESSAGING
, r
);
517 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_ALL_SOURCES", DRSUAPI_DS_REPLICA_SYNC_ALL_SOURCES
, r
);
518 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_FULL", DRSUAPI_DS_REPLICA_SYNC_FULL
, r
);
519 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_URGENT", DRSUAPI_DS_REPLICA_SYNC_URGENT
, r
);
520 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_NO_DISCARD", DRSUAPI_DS_REPLICA_SYNC_NO_DISCARD
, r
);
521 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_FORCE", DRSUAPI_DS_REPLICA_SYNC_FORCE
, r
);
522 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_ADD_REFERENCE", DRSUAPI_DS_REPLICA_SYNC_ADD_REFERENCE
, r
);
523 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_NEVER_COMPLETED", DRSUAPI_DS_REPLICA_SYNC_NEVER_COMPLETED
, r
);
524 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_TWO_WAY", DRSUAPI_DS_REPLICA_SYNC_TWO_WAY
, r
);
525 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_NEVER_NOTIFY", DRSUAPI_DS_REPLICA_SYNC_NEVER_NOTIFY
, r
);
526 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_INITIAL", DRSUAPI_DS_REPLICA_SYNC_INITIAL
, r
);
527 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_USE_COMPRESSION", DRSUAPI_DS_REPLICA_SYNC_USE_COMPRESSION
, r
);
528 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_ABANDONED", DRSUAPI_DS_REPLICA_SYNC_ABANDONED
, r
);
529 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_INITIAL_IN_PROGRESS", DRSUAPI_DS_REPLICA_SYNC_INITIAL_IN_PROGRESS
, r
);
530 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_PARTIAL_ATTRIBUTE_SET", DRSUAPI_DS_REPLICA_SYNC_PARTIAL_ATTRIBUTE_SET
, r
);
531 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_REQUEUE", DRSUAPI_DS_REPLICA_SYNC_REQUEUE
, r
);
532 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_NOTIFICATION", DRSUAPI_DS_REPLICA_SYNC_NOTIFICATION
, r
);
533 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_REPLICA", DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_REPLICA
, r
);
534 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_CRITICAL", DRSUAPI_DS_REPLICA_SYNC_CRITICAL
, r
);
535 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_FULL_IN_PROGRESS", DRSUAPI_DS_REPLICA_SYNC_FULL_IN_PROGRESS
, r
);
536 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_SYNC_PREEMPTED", DRSUAPI_DS_REPLICA_SYNC_PREEMPTED
, r
);
540 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaSyncRequest1(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaSyncRequest1
*r
)
542 if (ndr_flags
& NDR_SCALARS
) {
543 NDR_CHECK(ndr_push_align(ndr
, 4));
544 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->naming_context
));
545 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->source_dsa_guid
));
547 uint32_t _flags_save_string
= ndr
->flags
;
548 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
549 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->other_info
));
550 ndr
->flags
= _flags_save_string
;
552 NDR_CHECK(ndr_push_drsuapi_DsReplicaSyncOptions(ndr
, NDR_SCALARS
, r
->options
));
554 if (ndr_flags
& NDR_BUFFERS
) {
555 if (r
->naming_context
) {
556 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->naming_context
));
559 uint32_t _flags_save_string
= ndr
->flags
;
560 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
562 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->other_info
));
564 ndr
->flags
= _flags_save_string
;
567 return NDR_ERR_SUCCESS
;
570 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaSyncRequest1(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaSyncRequest1
*r
)
572 uint32_t _ptr_naming_context
;
573 TALLOC_CTX
*_mem_save_naming_context_0
;
574 uint32_t _ptr_other_info
;
575 TALLOC_CTX
*_mem_save_other_info_0
;
576 if (ndr_flags
& NDR_SCALARS
) {
577 NDR_CHECK(ndr_pull_align(ndr
, 4));
578 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_naming_context
));
579 if (_ptr_naming_context
) {
580 NDR_PULL_ALLOC(ndr
, r
->naming_context
);
582 r
->naming_context
= NULL
;
584 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->source_dsa_guid
));
586 uint32_t _flags_save_string
= ndr
->flags
;
587 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
588 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_other_info
));
589 if (_ptr_other_info
) {
590 NDR_PULL_ALLOC(ndr
, r
->other_info
);
592 r
->other_info
= NULL
;
594 ndr
->flags
= _flags_save_string
;
596 NDR_CHECK(ndr_pull_drsuapi_DsReplicaSyncOptions(ndr
, NDR_SCALARS
, &r
->options
));
598 if (ndr_flags
& NDR_BUFFERS
) {
599 if (r
->naming_context
) {
600 _mem_save_naming_context_0
= NDR_PULL_GET_MEM_CTX(ndr
);
601 NDR_PULL_SET_MEM_CTX(ndr
, r
->naming_context
, 0);
602 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->naming_context
));
603 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_naming_context_0
, 0);
606 uint32_t _flags_save_string
= ndr
->flags
;
607 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
609 _mem_save_other_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
610 NDR_PULL_SET_MEM_CTX(ndr
, r
->other_info
, 0);
611 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->other_info
));
612 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_other_info_0
, 0);
614 ndr
->flags
= _flags_save_string
;
617 return NDR_ERR_SUCCESS
;
620 _PUBLIC_
void ndr_print_drsuapi_DsReplicaSyncRequest1(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaSyncRequest1
*r
)
622 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaSyncRequest1");
624 ndr_print_ptr(ndr
, "naming_context", r
->naming_context
);
626 if (r
->naming_context
) {
627 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr
, "naming_context", r
->naming_context
);
630 ndr_print_GUID(ndr
, "source_dsa_guid", &r
->source_dsa_guid
);
631 ndr_print_ptr(ndr
, "other_info", r
->other_info
);
634 ndr_print_string(ndr
, "other_info", r
->other_info
);
637 ndr_print_drsuapi_DsReplicaSyncOptions(ndr
, "options", r
->options
);
641 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaSyncRequest(struct ndr_push
*ndr
, int ndr_flags
, const union drsuapi_DsReplicaSyncRequest
*r
)
643 if (ndr_flags
& NDR_SCALARS
) {
644 int level
= ndr_push_get_switch_value(ndr
, r
);
645 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, level
));
648 NDR_CHECK(ndr_push_drsuapi_DsReplicaSyncRequest1(ndr
, NDR_SCALARS
, &r
->req1
));
652 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
655 if (ndr_flags
& NDR_BUFFERS
) {
656 int level
= ndr_push_get_switch_value(ndr
, r
);
659 NDR_CHECK(ndr_push_drsuapi_DsReplicaSyncRequest1(ndr
, NDR_BUFFERS
, &r
->req1
));
663 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
666 return NDR_ERR_SUCCESS
;
669 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaSyncRequest(struct ndr_pull
*ndr
, int ndr_flags
, union drsuapi_DsReplicaSyncRequest
*r
)
673 level
= ndr_pull_get_switch_value(ndr
, r
);
674 if (ndr_flags
& NDR_SCALARS
) {
675 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &_level
));
676 if (_level
!= level
) {
677 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
681 NDR_CHECK(ndr_pull_drsuapi_DsReplicaSyncRequest1(ndr
, NDR_SCALARS
, &r
->req1
));
685 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
688 if (ndr_flags
& NDR_BUFFERS
) {
691 NDR_CHECK(ndr_pull_drsuapi_DsReplicaSyncRequest1(ndr
, NDR_BUFFERS
, &r
->req1
));
695 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
698 return NDR_ERR_SUCCESS
;
701 _PUBLIC_
void ndr_print_drsuapi_DsReplicaSyncRequest(struct ndr_print
*ndr
, const char *name
, const union drsuapi_DsReplicaSyncRequest
*r
)
704 level
= ndr_print_get_switch_value(ndr
, r
);
705 ndr_print_union(ndr
, name
, level
, "drsuapi_DsReplicaSyncRequest");
708 ndr_print_drsuapi_DsReplicaSyncRequest1(ndr
, "req1", &r
->req1
);
712 ndr_print_bad_level(ndr
, name
, level
);
716 _PUBLIC_
enum ndr_err_code
ndr_push_drsuapi_DsReplicaHighWaterMark(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaHighWaterMark
*r
)
718 if (ndr_flags
& NDR_SCALARS
) {
719 NDR_CHECK(ndr_push_align(ndr
, 8));
720 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->tmp_highest_usn
));
721 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->reserved_usn
));
722 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->highest_usn
));
724 if (ndr_flags
& NDR_BUFFERS
) {
726 return NDR_ERR_SUCCESS
;
729 _PUBLIC_
enum ndr_err_code
ndr_pull_drsuapi_DsReplicaHighWaterMark(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaHighWaterMark
*r
)
731 if (ndr_flags
& NDR_SCALARS
) {
732 NDR_CHECK(ndr_pull_align(ndr
, 8));
733 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->tmp_highest_usn
));
734 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->reserved_usn
));
735 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->highest_usn
));
737 if (ndr_flags
& NDR_BUFFERS
) {
739 return NDR_ERR_SUCCESS
;
742 _PUBLIC_
void ndr_print_drsuapi_DsReplicaHighWaterMark(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaHighWaterMark
*r
)
744 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaHighWaterMark");
746 ndr_print_hyper(ndr
, "tmp_highest_usn", r
->tmp_highest_usn
);
747 ndr_print_hyper(ndr
, "reserved_usn", r
->reserved_usn
);
748 ndr_print_hyper(ndr
, "highest_usn", r
->highest_usn
);
752 _PUBLIC_
enum ndr_err_code
ndr_push_drsuapi_DsReplicaCursor(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaCursor
*r
)
754 if (ndr_flags
& NDR_SCALARS
) {
755 NDR_CHECK(ndr_push_align(ndr
, 8));
756 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->source_dsa_invocation_id
));
757 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->highest_usn
));
759 if (ndr_flags
& NDR_BUFFERS
) {
761 return NDR_ERR_SUCCESS
;
764 _PUBLIC_
enum ndr_err_code
ndr_pull_drsuapi_DsReplicaCursor(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaCursor
*r
)
766 if (ndr_flags
& NDR_SCALARS
) {
767 NDR_CHECK(ndr_pull_align(ndr
, 8));
768 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->source_dsa_invocation_id
));
769 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->highest_usn
));
771 if (ndr_flags
& NDR_BUFFERS
) {
773 return NDR_ERR_SUCCESS
;
776 _PUBLIC_
void ndr_print_drsuapi_DsReplicaCursor(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaCursor
*r
)
778 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaCursor");
780 ndr_print_GUID(ndr
, "source_dsa_invocation_id", &r
->source_dsa_invocation_id
);
781 ndr_print_hyper(ndr
, "highest_usn", r
->highest_usn
);
785 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaCursorCtrEx(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaCursorCtrEx
*r
)
787 uint32_t cntr_cursors_0
;
788 if (ndr_flags
& NDR_SCALARS
) {
789 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
790 NDR_CHECK(ndr_push_align(ndr
, 8));
791 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 1));
792 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
793 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
794 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
795 for (cntr_cursors_0
= 0; cntr_cursors_0
< r
->count
; cntr_cursors_0
++) {
796 NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor(ndr
, NDR_SCALARS
, &r
->cursors
[cntr_cursors_0
]));
799 if (ndr_flags
& NDR_BUFFERS
) {
801 return NDR_ERR_SUCCESS
;
804 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaCursorCtrEx(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaCursorCtrEx
*r
)
806 uint32_t cntr_cursors_0
;
807 TALLOC_CTX
*_mem_save_cursors_0
;
808 if (ndr_flags
& NDR_SCALARS
) {
809 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->cursors
));
810 NDR_CHECK(ndr_pull_align(ndr
, 8));
811 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
812 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved1
));
813 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
814 if (r
->count
> 0x100000) {
815 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
817 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved2
));
818 NDR_PULL_ALLOC_N(ndr
, r
->cursors
, ndr_get_array_size(ndr
, &r
->cursors
));
819 _mem_save_cursors_0
= NDR_PULL_GET_MEM_CTX(ndr
);
820 NDR_PULL_SET_MEM_CTX(ndr
, r
->cursors
, 0);
821 for (cntr_cursors_0
= 0; cntr_cursors_0
< r
->count
; cntr_cursors_0
++) {
822 NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor(ndr
, NDR_SCALARS
, &r
->cursors
[cntr_cursors_0
]));
824 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_cursors_0
, 0);
826 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->cursors
, r
->count
));
829 if (ndr_flags
& NDR_BUFFERS
) {
831 return NDR_ERR_SUCCESS
;
834 _PUBLIC_
void ndr_print_drsuapi_DsReplicaCursorCtrEx(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaCursorCtrEx
*r
)
836 uint32_t cntr_cursors_0
;
837 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaCursorCtrEx");
839 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?1:r
->version
);
840 ndr_print_uint32(ndr
, "reserved1", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0:r
->reserved1
);
841 ndr_print_uint32(ndr
, "count", r
->count
);
842 ndr_print_uint32(ndr
, "reserved2", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0:r
->reserved2
);
843 ndr
->print(ndr
, "%s: ARRAY(%d)", "cursors", (int)r
->count
);
845 for (cntr_cursors_0
=0;cntr_cursors_0
<r
->count
;cntr_cursors_0
++) {
847 if (asprintf(&idx_0
, "[%d]", cntr_cursors_0
) != -1) {
848 ndr_print_drsuapi_DsReplicaCursor(ndr
, "cursors", &r
->cursors
[cntr_cursors_0
]);
856 _PUBLIC_
enum ndr_err_code
ndr_push_drsuapi_DsReplicaNeighbourFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
858 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
859 return NDR_ERR_SUCCESS
;
862 _PUBLIC_
enum ndr_err_code
ndr_pull_drsuapi_DsReplicaNeighbourFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
865 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
867 return NDR_ERR_SUCCESS
;
870 _PUBLIC_
void ndr_print_drsuapi_DsReplicaNeighbourFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
872 ndr_print_uint32(ndr
, name
, r
);
874 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_WRITEABLE", DRSUAPI_DS_REPLICA_NEIGHBOUR_WRITEABLE
, r
);
875 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_SYNC_ON_STARTUP", DRSUAPI_DS_REPLICA_NEIGHBOUR_SYNC_ON_STARTUP
, r
);
876 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_DO_SCHEDULED_SYNCS", DRSUAPI_DS_REPLICA_NEIGHBOUR_DO_SCHEDULED_SYNCS
, r
);
877 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
);
878 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_TWO_WAY_SYNC", DRSUAPI_DS_REPLICA_NEIGHBOUR_TWO_WAY_SYNC
, r
);
879 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_RETURN_OBJECT_PARENTS", DRSUAPI_DS_REPLICA_NEIGHBOUR_RETURN_OBJECT_PARENTS
, r
);
880 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_FULL_IN_PROGRESS", DRSUAPI_DS_REPLICA_NEIGHBOUR_FULL_IN_PROGRESS
, r
);
881 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_FULL_NEXT_PACKET", DRSUAPI_DS_REPLICA_NEIGHBOUR_FULL_NEXT_PACKET
, r
);
882 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_NEVER_SYNCED", DRSUAPI_DS_REPLICA_NEIGHBOUR_NEVER_SYNCED
, r
);
883 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_PREEMPTED", DRSUAPI_DS_REPLICA_NEIGHBOUR_PREEMPTED
, r
);
884 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_IGNORE_CHANGE_NOTIFICATIONS", DRSUAPI_DS_REPLICA_NEIGHBOUR_IGNORE_CHANGE_NOTIFICATIONS
, r
);
885 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_DISABLE_SCHEDULED_SYNC", DRSUAPI_DS_REPLICA_NEIGHBOUR_DISABLE_SCHEDULED_SYNC
, r
);
886 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_COMPRESS_CHANGES", DRSUAPI_DS_REPLICA_NEIGHBOUR_COMPRESS_CHANGES
, r
);
887 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_NO_CHANGE_NOTIFICATIONS", DRSUAPI_DS_REPLICA_NEIGHBOUR_NO_CHANGE_NOTIFICATIONS
, r
);
888 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_NEIGHBOUR_PARTIAL_ATTRIBUTE_SET", DRSUAPI_DS_REPLICA_NEIGHBOUR_PARTIAL_ATTRIBUTE_SET
, r
);
892 static enum ndr_err_code
ndr_push_drsuapi_DsExtendedOperation(struct ndr_push
*ndr
, int ndr_flags
, enum drsuapi_DsExtendedOperation r
)
895 uint32_t _flags_save_ENUM
= ndr
->flags
;
896 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
897 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
898 ndr
->flags
= _flags_save_ENUM
;
900 return NDR_ERR_SUCCESS
;
903 static enum ndr_err_code
ndr_pull_drsuapi_DsExtendedOperation(struct ndr_pull
*ndr
, int ndr_flags
, enum drsuapi_DsExtendedOperation
*r
)
907 uint32_t _flags_save_ENUM
= ndr
->flags
;
908 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
909 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
911 ndr
->flags
= _flags_save_ENUM
;
913 return NDR_ERR_SUCCESS
;
916 _PUBLIC_
void ndr_print_drsuapi_DsExtendedOperation(struct ndr_print
*ndr
, const char *name
, enum drsuapi_DsExtendedOperation r
)
918 const char *val
= NULL
;
921 uint32_t _flags_save_ENUM
= ndr
->flags
;
922 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
924 case DRSUAPI_EXOP_NONE
: val
= "DRSUAPI_EXOP_NONE"; break;
925 case DRSUAPI_EXOP_FSMO_REQ_ROLE
: val
= "DRSUAPI_EXOP_FSMO_REQ_ROLE"; break;
926 case DRSUAPI_EXOP_FSMO_RID_ALLOC
: val
= "DRSUAPI_EXOP_FSMO_RID_ALLOC"; break;
927 case DRSUAPI_EXOP_FSMO_RID_REQ_ROLE
: val
= "DRSUAPI_EXOP_FSMO_RID_REQ_ROLE"; break;
928 case DRSUAPI_EXOP_FSMO_REQ_PDC
: val
= "DRSUAPI_EXOP_FSMO_REQ_PDC"; break;
929 case DRSUAPI_EXOP_FSMO_ABANDON_ROLE
: val
= "DRSUAPI_EXOP_FSMO_ABANDON_ROLE"; break;
930 case DRSUAPI_EXOP_REPL_OBJ
: val
= "DRSUAPI_EXOP_REPL_OBJ"; break;
931 case DRSUAPI_EXOP_REPL_SECRET
: val
= "DRSUAPI_EXOP_REPL_SECRET"; break;
933 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
934 ndr
->flags
= _flags_save_ENUM
;
938 static enum ndr_err_code
ndr_push_drsuapi_DsExtendedError(struct ndr_push
*ndr
, int ndr_flags
, enum drsuapi_DsExtendedError r
)
941 uint32_t _flags_save_ENUM
= ndr
->flags
;
942 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
943 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
944 ndr
->flags
= _flags_save_ENUM
;
946 return NDR_ERR_SUCCESS
;
949 static enum ndr_err_code
ndr_pull_drsuapi_DsExtendedError(struct ndr_pull
*ndr
, int ndr_flags
, enum drsuapi_DsExtendedError
*r
)
953 uint32_t _flags_save_ENUM
= ndr
->flags
;
954 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
955 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
957 ndr
->flags
= _flags_save_ENUM
;
959 return NDR_ERR_SUCCESS
;
962 _PUBLIC_
void ndr_print_drsuapi_DsExtendedError(struct ndr_print
*ndr
, const char *name
, enum drsuapi_DsExtendedError r
)
964 const char *val
= NULL
;
967 uint32_t _flags_save_ENUM
= ndr
->flags
;
968 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
970 case DRSUAPI_EXOP_ERR_NONE
: val
= "DRSUAPI_EXOP_ERR_NONE"; break;
971 case DRSUAPI_EXOP_ERR_SUCCESS
: val
= "DRSUAPI_EXOP_ERR_SUCCESS"; break;
972 case DRSUAPI_EXOP_ERR_UNKNOWN_OP
: val
= "DRSUAPI_EXOP_ERR_UNKNOWN_OP"; break;
973 case DRSUAPI_EXOP_ERR_FSMO_NOT_OWNER
: val
= "DRSUAPI_EXOP_ERR_FSMO_NOT_OWNER"; break;
974 case DRSUAPI_EXOP_ERR_UPDATE_ERR
: val
= "DRSUAPI_EXOP_ERR_UPDATE_ERR"; break;
975 case DRSUAPI_EXOP_ERR_EXCEPTION
: val
= "DRSUAPI_EXOP_ERR_EXCEPTION"; break;
976 case DRSUAPI_EXOP_ERR_UNKNOWN_CALLER
: val
= "DRSUAPI_EXOP_ERR_UNKNOWN_CALLER"; break;
977 case DRSUAPI_EXOP_ERR_RID_ALLOC
: val
= "DRSUAPI_EXOP_ERR_RID_ALLOC"; break;
978 case DRSUAPI_EXOP_ERR_FSMO_OWNER_DELETED
: val
= "DRSUAPI_EXOP_ERR_FSMO_OWNER_DELETED"; break;
979 case DRSUAPI_EXOP_ERR_FMSO_PENDING_OP
: val
= "DRSUAPI_EXOP_ERR_FMSO_PENDING_OP"; break;
980 case DRSUAPI_EXOP_ERR_MISMATCH
: val
= "DRSUAPI_EXOP_ERR_MISMATCH"; break;
981 case DRSUAPI_EXOP_ERR_COULDNT_CONTACT
: val
= "DRSUAPI_EXOP_ERR_COULDNT_CONTACT"; break;
982 case DRSUAPI_EXOP_ERR_FSMO_REFUSING_ROLES
: val
= "DRSUAPI_EXOP_ERR_FSMO_REFUSING_ROLES"; break;
983 case DRSUAPI_EXOP_ERR_DIR_ERROR
: val
= "DRSUAPI_EXOP_ERR_DIR_ERROR"; break;
984 case DRSUAPI_EXOP_ERR_FSMO_MISSING_SETTINGS
: val
= "DRSUAPI_EXOP_ERR_FSMO_MISSING_SETTINGS"; break;
985 case DRSUAPI_EXOP_ERR_ACCESS_DENIED
: val
= "DRSUAPI_EXOP_ERR_ACCESS_DENIED"; break;
986 case DRSUAPI_EXOP_ERR_PARAM_ERROR
: val
= "DRSUAPI_EXOP_ERR_PARAM_ERROR"; break;
988 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
989 ndr
->flags
= _flags_save_ENUM
;
993 static enum ndr_err_code
ndr_push_drsuapi_DsGetNCChangesRequest5(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsGetNCChangesRequest5
*r
)
995 if (ndr_flags
& NDR_SCALARS
) {
996 NDR_CHECK(ndr_push_align(ndr
, 8));
997 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->destination_dsa_guid
));
998 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->source_dsa_invocation_id
));
999 if (r
->naming_context
== NULL
) {
1000 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1002 NDR_CHECK(ndr_push_ref_ptr(ndr
));
1003 NDR_CHECK(ndr_push_drsuapi_DsReplicaHighWaterMark(ndr
, NDR_SCALARS
, &r
->highwatermark
));
1004 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->uptodateness_vector
));
1005 NDR_CHECK(ndr_push_drsuapi_DsReplicaNeighbourFlags(ndr
, NDR_SCALARS
, r
->replica_flags
));
1006 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->max_object_count
));
1007 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->max_ndr_size
));
1008 NDR_CHECK(ndr_push_drsuapi_DsExtendedOperation(ndr
, NDR_SCALARS
, r
->extended_op
));
1009 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->fsmo_info
));
1011 if (ndr_flags
& NDR_BUFFERS
) {
1012 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->naming_context
));
1013 if (r
->uptodateness_vector
) {
1014 NDR_CHECK(ndr_push_drsuapi_DsReplicaCursorCtrEx(ndr
, NDR_SCALARS
, r
->uptodateness_vector
));
1017 return NDR_ERR_SUCCESS
;
1020 static enum ndr_err_code
ndr_pull_drsuapi_DsGetNCChangesRequest5(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsGetNCChangesRequest5
*r
)
1022 uint32_t _ptr_naming_context
;
1023 TALLOC_CTX
*_mem_save_naming_context_0
;
1024 uint32_t _ptr_uptodateness_vector
;
1025 TALLOC_CTX
*_mem_save_uptodateness_vector_0
;
1026 if (ndr_flags
& NDR_SCALARS
) {
1027 NDR_CHECK(ndr_pull_align(ndr
, 8));
1028 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->destination_dsa_guid
));
1029 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->source_dsa_invocation_id
));
1030 NDR_CHECK(ndr_pull_ref_ptr(ndr
, &_ptr_naming_context
));
1031 if (_ptr_naming_context
) {
1032 NDR_PULL_ALLOC(ndr
, r
->naming_context
);
1034 r
->naming_context
= NULL
;
1036 NDR_CHECK(ndr_pull_drsuapi_DsReplicaHighWaterMark(ndr
, NDR_SCALARS
, &r
->highwatermark
));
1037 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_uptodateness_vector
));
1038 if (_ptr_uptodateness_vector
) {
1039 NDR_PULL_ALLOC(ndr
, r
->uptodateness_vector
);
1041 r
->uptodateness_vector
= NULL
;
1043 NDR_CHECK(ndr_pull_drsuapi_DsReplicaNeighbourFlags(ndr
, NDR_SCALARS
, &r
->replica_flags
));
1044 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->max_object_count
));
1045 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->max_ndr_size
));
1046 NDR_CHECK(ndr_pull_drsuapi_DsExtendedOperation(ndr
, NDR_SCALARS
, &r
->extended_op
));
1047 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->fsmo_info
));
1049 if (ndr_flags
& NDR_BUFFERS
) {
1050 _mem_save_naming_context_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1051 NDR_PULL_SET_MEM_CTX(ndr
, r
->naming_context
, 0);
1052 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->naming_context
));
1053 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_naming_context_0
, 0);
1054 if (r
->uptodateness_vector
) {
1055 _mem_save_uptodateness_vector_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1056 NDR_PULL_SET_MEM_CTX(ndr
, r
->uptodateness_vector
, 0);
1057 NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursorCtrEx(ndr
, NDR_SCALARS
, r
->uptodateness_vector
));
1058 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_uptodateness_vector_0
, 0);
1061 return NDR_ERR_SUCCESS
;
1064 _PUBLIC_
void ndr_print_drsuapi_DsGetNCChangesRequest5(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsGetNCChangesRequest5
*r
)
1066 ndr_print_struct(ndr
, name
, "drsuapi_DsGetNCChangesRequest5");
1068 ndr_print_GUID(ndr
, "destination_dsa_guid", &r
->destination_dsa_guid
);
1069 ndr_print_GUID(ndr
, "source_dsa_invocation_id", &r
->source_dsa_invocation_id
);
1070 ndr_print_ptr(ndr
, "naming_context", r
->naming_context
);
1072 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr
, "naming_context", r
->naming_context
);
1074 ndr_print_drsuapi_DsReplicaHighWaterMark(ndr
, "highwatermark", &r
->highwatermark
);
1075 ndr_print_ptr(ndr
, "uptodateness_vector", r
->uptodateness_vector
);
1077 if (r
->uptodateness_vector
) {
1078 ndr_print_drsuapi_DsReplicaCursorCtrEx(ndr
, "uptodateness_vector", r
->uptodateness_vector
);
1081 ndr_print_drsuapi_DsReplicaNeighbourFlags(ndr
, "replica_flags", r
->replica_flags
);
1082 ndr_print_uint32(ndr
, "max_object_count", r
->max_object_count
);
1083 ndr_print_uint32(ndr
, "max_ndr_size", r
->max_ndr_size
);
1084 ndr_print_drsuapi_DsExtendedOperation(ndr
, "extended_op", r
->extended_op
);
1085 ndr_print_hyper(ndr
, "fsmo_info", r
->fsmo_info
);
1089 _PUBLIC_
void ndr_print_drsuapi_DsReplicaOID(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaOID
*r
)
1091 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaOID");
1093 ndr_print_uint32(ndr
, "__ndr_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?ndr_size_drsuapi_DsReplicaOID_oid(r
->oid
, 0):r
->__ndr_size
);
1094 ndr_print_ptr(ndr
, "oid", r
->oid
);
1097 ndr_print_string(ndr
, "oid", r
->oid
);
1103 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaOIDMapping(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaOIDMapping
*r
)
1105 if (ndr_flags
& NDR_SCALARS
) {
1106 NDR_CHECK(ndr_push_align(ndr
, 4));
1107 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->id_prefix
));
1108 NDR_CHECK(ndr_push_drsuapi_DsReplicaOID(ndr
, NDR_SCALARS
, &r
->oid
));
1110 if (ndr_flags
& NDR_BUFFERS
) {
1111 NDR_CHECK(ndr_push_drsuapi_DsReplicaOID(ndr
, NDR_BUFFERS
, &r
->oid
));
1113 return NDR_ERR_SUCCESS
;
1116 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaOIDMapping(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaOIDMapping
*r
)
1118 if (ndr_flags
& NDR_SCALARS
) {
1119 NDR_CHECK(ndr_pull_align(ndr
, 4));
1120 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->id_prefix
));
1121 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOID(ndr
, NDR_SCALARS
, &r
->oid
));
1123 if (ndr_flags
& NDR_BUFFERS
) {
1124 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOID(ndr
, NDR_BUFFERS
, &r
->oid
));
1126 return NDR_ERR_SUCCESS
;
1129 _PUBLIC_
void ndr_print_drsuapi_DsReplicaOIDMapping(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaOIDMapping
*r
)
1131 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaOIDMapping");
1133 ndr_print_uint32(ndr
, "id_prefix", r
->id_prefix
);
1134 ndr_print_drsuapi_DsReplicaOID(ndr
, "oid", &r
->oid
);
1138 _PUBLIC_
enum ndr_err_code
ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaOIDMapping_Ctr
*r
)
1140 uint32_t cntr_mappings_1
;
1141 if (ndr_flags
& NDR_SCALARS
) {
1142 NDR_CHECK(ndr_push_align(ndr
, 4));
1143 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_mappings
));
1144 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->mappings
));
1146 if (ndr_flags
& NDR_BUFFERS
) {
1148 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_mappings
));
1149 for (cntr_mappings_1
= 0; cntr_mappings_1
< r
->num_mappings
; cntr_mappings_1
++) {
1150 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping(ndr
, NDR_SCALARS
, &r
->mappings
[cntr_mappings_1
]));
1152 for (cntr_mappings_1
= 0; cntr_mappings_1
< r
->num_mappings
; cntr_mappings_1
++) {
1153 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping(ndr
, NDR_BUFFERS
, &r
->mappings
[cntr_mappings_1
]));
1157 return NDR_ERR_SUCCESS
;
1160 _PUBLIC_
enum ndr_err_code
ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaOIDMapping_Ctr
*r
)
1162 uint32_t _ptr_mappings
;
1163 uint32_t cntr_mappings_1
;
1164 TALLOC_CTX
*_mem_save_mappings_0
;
1165 TALLOC_CTX
*_mem_save_mappings_1
;
1166 if (ndr_flags
& NDR_SCALARS
) {
1167 NDR_CHECK(ndr_pull_align(ndr
, 4));
1168 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_mappings
));
1169 if (r
->num_mappings
> 0x100000) {
1170 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
1172 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_mappings
));
1173 if (_ptr_mappings
) {
1174 NDR_PULL_ALLOC(ndr
, r
->mappings
);
1179 if (ndr_flags
& NDR_BUFFERS
) {
1181 _mem_save_mappings_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1182 NDR_PULL_SET_MEM_CTX(ndr
, r
->mappings
, 0);
1183 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->mappings
));
1184 NDR_PULL_ALLOC_N(ndr
, r
->mappings
, ndr_get_array_size(ndr
, &r
->mappings
));
1185 _mem_save_mappings_1
= NDR_PULL_GET_MEM_CTX(ndr
);
1186 NDR_PULL_SET_MEM_CTX(ndr
, r
->mappings
, 0);
1187 for (cntr_mappings_1
= 0; cntr_mappings_1
< r
->num_mappings
; cntr_mappings_1
++) {
1188 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping(ndr
, NDR_SCALARS
, &r
->mappings
[cntr_mappings_1
]));
1190 for (cntr_mappings_1
= 0; cntr_mappings_1
< r
->num_mappings
; cntr_mappings_1
++) {
1191 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping(ndr
, NDR_BUFFERS
, &r
->mappings
[cntr_mappings_1
]));
1193 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_mappings_1
, 0);
1194 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_mappings_0
, 0);
1197 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->mappings
, r
->num_mappings
));
1200 return NDR_ERR_SUCCESS
;
1203 _PUBLIC_
void ndr_print_drsuapi_DsReplicaOIDMapping_Ctr(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaOIDMapping_Ctr
*r
)
1205 uint32_t cntr_mappings_1
;
1206 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaOIDMapping_Ctr");
1208 ndr_print_uint32(ndr
, "num_mappings", r
->num_mappings
);
1209 ndr_print_ptr(ndr
, "mappings", r
->mappings
);
1212 ndr
->print(ndr
, "%s: ARRAY(%d)", "mappings", (int)r
->num_mappings
);
1214 for (cntr_mappings_1
=0;cntr_mappings_1
<r
->num_mappings
;cntr_mappings_1
++) {
1216 if (asprintf(&idx_1
, "[%d]", cntr_mappings_1
) != -1) {
1217 ndr_print_drsuapi_DsReplicaOIDMapping(ndr
, "mappings", &r
->mappings
[cntr_mappings_1
]);
1227 _PUBLIC_
enum ndr_err_code
ndr_push_drsuapi_DsAttributeId(struct ndr_push
*ndr
, int ndr_flags
, enum drsuapi_DsAttributeId r
)
1230 uint32_t _flags_save_ENUM
= ndr
->flags
;
1231 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1232 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
1233 ndr
->flags
= _flags_save_ENUM
;
1235 return NDR_ERR_SUCCESS
;
1238 _PUBLIC_
enum ndr_err_code
ndr_pull_drsuapi_DsAttributeId(struct ndr_pull
*ndr
, int ndr_flags
, enum drsuapi_DsAttributeId
*r
)
1242 uint32_t _flags_save_ENUM
= ndr
->flags
;
1243 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1244 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
1246 ndr
->flags
= _flags_save_ENUM
;
1248 return NDR_ERR_SUCCESS
;
1251 _PUBLIC_
void ndr_print_drsuapi_DsAttributeId(struct ndr_print
*ndr
, const char *name
, enum drsuapi_DsAttributeId r
)
1253 const char *val
= NULL
;
1256 uint32_t _flags_save_ENUM
= ndr
->flags
;
1257 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
1259 case DRSUAPI_ATTRIBUTE_objectClass
: val
= "DRSUAPI_ATTRIBUTE_objectClass"; break;
1260 case DRSUAPI_ATTRIBUTE_description
: val
= "DRSUAPI_ATTRIBUTE_description"; break;
1261 case DRSUAPI_ATTRIBUTE_member
: val
= "DRSUAPI_ATTRIBUTE_member"; break;
1262 case DRSUAPI_ATTRIBUTE_instanceType
: val
= "DRSUAPI_ATTRIBUTE_instanceType"; break;
1263 case DRSUAPI_ATTRIBUTE_whenCreated
: val
= "DRSUAPI_ATTRIBUTE_whenCreated"; break;
1264 case DRSUAPI_ATTRIBUTE_possSuperiors
: val
= "DRSUAPI_ATTRIBUTE_possSuperiors"; break;
1265 case DRSUAPI_ATTRIBUTE_hasMasterNCs
: val
= "DRSUAPI_ATTRIBUTE_hasMasterNCs"; break;
1266 case DRSUAPI_ATTRIBUTE_subClassOf
: val
= "DRSUAPI_ATTRIBUTE_subClassOf"; break;
1267 case DRSUAPI_ATTRIBUTE_governsID
: val
= "DRSUAPI_ATTRIBUTE_governsID"; break;
1268 case DRSUAPI_ATTRIBUTE_mustContain
: val
= "DRSUAPI_ATTRIBUTE_mustContain"; break;
1269 case DRSUAPI_ATTRIBUTE_mayContain
: val
= "DRSUAPI_ATTRIBUTE_mayContain"; break;
1270 case DRSUAPI_ATTRIBUTE_attributeID
: val
= "DRSUAPI_ATTRIBUTE_attributeID"; break;
1271 case DRSUAPI_ATTRIBUTE_attributeSyntax
: val
= "DRSUAPI_ATTRIBUTE_attributeSyntax"; break;
1272 case DRSUAPI_ATTRIBUTE_isSingleValued
: val
= "DRSUAPI_ATTRIBUTE_isSingleValued"; break;
1273 case DRSUAPI_ATTRIBUTE_rangeLower
: val
= "DRSUAPI_ATTRIBUTE_rangeLower"; break;
1274 case DRSUAPI_ATTRIBUTE_rangeUpper
: val
= "DRSUAPI_ATTRIBUTE_rangeUpper"; break;
1275 case DRSUAPI_ATTRIBUTE_dMDLocation
: val
= "DRSUAPI_ATTRIBUTE_dMDLocation"; break;
1276 case DRSUAPI_ATTRIBUTE_objectVersion
: val
= "DRSUAPI_ATTRIBUTE_objectVersion"; break;
1277 case DRSUAPI_ATTRIBUTE_invocationId
: val
= "DRSUAPI_ATTRIBUTE_invocationId"; break;
1278 case DRSUAPI_ATTRIBUTE_showInAdvancedViewOnly
: val
= "DRSUAPI_ATTRIBUTE_showInAdvancedViewOnly"; break;
1279 case DRSUAPI_ATTRIBUTE_adminDisplayName
: val
= "DRSUAPI_ATTRIBUTE_adminDisplayName"; break;
1280 case DRSUAPI_ATTRIBUTE_adminDescription
: val
= "DRSUAPI_ATTRIBUTE_adminDescription"; break;
1281 case DRSUAPI_ATTRIBUTE_oMSyntax
: val
= "DRSUAPI_ATTRIBUTE_oMSyntax"; break;
1282 case DRSUAPI_ATTRIBUTE_ntSecurityDescriptor
: val
= "DRSUAPI_ATTRIBUTE_ntSecurityDescriptor"; break;
1283 case DRSUAPI_ATTRIBUTE_searchFlags
: val
= "DRSUAPI_ATTRIBUTE_searchFlags"; break;
1284 case DRSUAPI_ATTRIBUTE_auxiliaryClass
: val
= "DRSUAPI_ATTRIBUTE_auxiliaryClass"; break;
1285 case DRSUAPI_ATTRIBUTE_lDAPDisplayName
: val
= "DRSUAPI_ATTRIBUTE_lDAPDisplayName"; break;
1286 case DRSUAPI_ATTRIBUTE_name
: val
= "DRSUAPI_ATTRIBUTE_name"; break;
1287 case DRSUAPI_ATTRIBUTE_userAccountControl
: val
= "DRSUAPI_ATTRIBUTE_userAccountControl"; break;
1288 case DRSUAPI_ATTRIBUTE_currentValue
: val
= "DRSUAPI_ATTRIBUTE_currentValue"; break;
1289 case DRSUAPI_ATTRIBUTE_homeDirectory
: val
= "DRSUAPI_ATTRIBUTE_homeDirectory"; break;
1290 case DRSUAPI_ATTRIBUTE_homeDrive
: val
= "DRSUAPI_ATTRIBUTE_homeDrive"; break;
1291 case DRSUAPI_ATTRIBUTE_scriptPath
: val
= "DRSUAPI_ATTRIBUTE_scriptPath"; break;
1292 case DRSUAPI_ATTRIBUTE_profilePath
: val
= "DRSUAPI_ATTRIBUTE_profilePath"; break;
1293 case DRSUAPI_ATTRIBUTE_objectSid
: val
= "DRSUAPI_ATTRIBUTE_objectSid"; break;
1294 case DRSUAPI_ATTRIBUTE_schemaIDGUID
: val
= "DRSUAPI_ATTRIBUTE_schemaIDGUID"; break;
1295 case DRSUAPI_ATTRIBUTE_dBCSPwd
: val
= "DRSUAPI_ATTRIBUTE_dBCSPwd"; break;
1296 case DRSUAPI_ATTRIBUTE_logonHours
: val
= "DRSUAPI_ATTRIBUTE_logonHours"; break;
1297 case DRSUAPI_ATTRIBUTE_userWorkstations
: val
= "DRSUAPI_ATTRIBUTE_userWorkstations"; break;
1298 case DRSUAPI_ATTRIBUTE_unicodePwd
: val
= "DRSUAPI_ATTRIBUTE_unicodePwd"; break;
1299 case DRSUAPI_ATTRIBUTE_ntPwdHistory
: val
= "DRSUAPI_ATTRIBUTE_ntPwdHistory"; break;
1300 case DRSUAPI_ATTRIBUTE_priorValue
: val
= "DRSUAPI_ATTRIBUTE_priorValue"; break;
1301 case DRSUAPI_ATTRIBUTE_supplementalCredentials
: val
= "DRSUAPI_ATTRIBUTE_supplementalCredentials"; break;
1302 case DRSUAPI_ATTRIBUTE_trustAuthIncoming
: val
= "DRSUAPI_ATTRIBUTE_trustAuthIncoming"; break;
1303 case DRSUAPI_ATTRIBUTE_trustAuthOutgoing
: val
= "DRSUAPI_ATTRIBUTE_trustAuthOutgoing"; break;
1304 case DRSUAPI_ATTRIBUTE_lmPwdHistory
: val
= "DRSUAPI_ATTRIBUTE_lmPwdHistory"; break;
1305 case DRSUAPI_ATTRIBUTE_systemPossSuperiors
: val
= "DRSUAPI_ATTRIBUTE_systemPossSuperiors"; break;
1306 case DRSUAPI_ATTRIBUTE_systemMayContain
: val
= "DRSUAPI_ATTRIBUTE_systemMayContain"; break;
1307 case DRSUAPI_ATTRIBUTE_systemMustContain
: val
= "DRSUAPI_ATTRIBUTE_systemMustContain"; break;
1308 case DRSUAPI_ATTRIBUTE_sAMAccountName
: val
= "DRSUAPI_ATTRIBUTE_sAMAccountName"; break;
1309 case DRSUAPI_ATTRIBUTE_sAMAccountType
: val
= "DRSUAPI_ATTRIBUTE_sAMAccountType"; break;
1310 case DRSUAPI_ATTRIBUTE_fSMORoleOwner
: val
= "DRSUAPI_ATTRIBUTE_fSMORoleOwner"; break;
1311 case DRSUAPI_ATTRIBUTE_systemFlags
: val
= "DRSUAPI_ATTRIBUTE_systemFlags"; break;
1312 case DRSUAPI_ATTRIBUTE_serverReference
: val
= "DRSUAPI_ATTRIBUTE_serverReference"; break;
1313 case DRSUAPI_ATTRIBUTE_serverReferenceBL
: val
= "DRSUAPI_ATTRIBUTE_serverReferenceBL"; break;
1314 case DRSUAPI_ATTRIBUTE_initialAuthIncoming
: val
= "DRSUAPI_ATTRIBUTE_initialAuthIncoming"; break;
1315 case DRSUAPI_ATTRIBUTE_initialAuthOutgoing
: val
= "DRSUAPI_ATTRIBUTE_initialAuthOutgoing"; break;
1316 case DRSUAPI_ATTRIBUTE_wellKnownObjects
: val
= "DRSUAPI_ATTRIBUTE_wellKnownObjects"; break;
1317 case DRSUAPI_ATTRIBUTE_dNSHostName
: val
= "DRSUAPI_ATTRIBUTE_dNSHostName"; break;
1318 case DRSUAPI_ATTRIBUTE_isMemberOfPartialAttributeSet
: val
= "DRSUAPI_ATTRIBUTE_isMemberOfPartialAttributeSet"; break;
1319 case DRSUAPI_ATTRIBUTE_userPrincipalName
: val
= "DRSUAPI_ATTRIBUTE_userPrincipalName"; break;
1320 case DRSUAPI_ATTRIBUTE_groupType
: val
= "DRSUAPI_ATTRIBUTE_groupType"; break;
1321 case DRSUAPI_ATTRIBUTE_servicePrincipalName
: val
= "DRSUAPI_ATTRIBUTE_servicePrincipalName"; break;
1322 case DRSUAPI_ATTRIBUTE_objectCategory
: val
= "DRSUAPI_ATTRIBUTE_objectCategory"; break;
1323 case DRSUAPI_ATTRIBUTE_gPLink
: val
= "DRSUAPI_ATTRIBUTE_gPLink"; break;
1324 case DRSUAPI_ATTRIBUTE_msDS_Behavior_Version
: val
= "DRSUAPI_ATTRIBUTE_msDS_Behavior_Version"; break;
1325 case DRSUAPI_ATTRIBUTE_msDS_KeyVersionNumber
: val
= "DRSUAPI_ATTRIBUTE_msDS_KeyVersionNumber"; break;
1326 case DRSUAPI_ATTRIBUTE_msDS_HasDomainNCs
: val
= "DRSUAPI_ATTRIBUTE_msDS_HasDomainNCs"; break;
1327 case DRSUAPI_ATTRIBUTE_msDS_hasMasterNCs
: val
= "DRSUAPI_ATTRIBUTE_msDS_hasMasterNCs"; break;
1329 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
1330 ndr
->flags
= _flags_save_ENUM
;
1334 static enum ndr_err_code
ndr_push_drsuapi_DsPartialAttributeSet(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsPartialAttributeSet
*r
)
1336 uint32_t cntr_attids_0
;
1337 if (ndr_flags
& NDR_SCALARS
) {
1338 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_attids
));
1339 NDR_CHECK(ndr_push_align(ndr
, 4));
1340 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 1));
1341 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
1342 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_attids
));
1343 for (cntr_attids_0
= 0; cntr_attids_0
< r
->num_attids
; cntr_attids_0
++) {
1344 NDR_CHECK(ndr_push_drsuapi_DsAttributeId(ndr
, NDR_SCALARS
, r
->attids
[cntr_attids_0
]));
1347 if (ndr_flags
& NDR_BUFFERS
) {
1349 return NDR_ERR_SUCCESS
;
1352 static enum ndr_err_code
ndr_pull_drsuapi_DsPartialAttributeSet(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsPartialAttributeSet
*r
)
1354 uint32_t cntr_attids_0
;
1355 TALLOC_CTX
*_mem_save_attids_0
;
1356 if (ndr_flags
& NDR_SCALARS
) {
1357 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->attids
));
1358 NDR_CHECK(ndr_pull_align(ndr
, 4));
1359 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
1360 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved1
));
1361 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_attids
));
1362 if (r
->num_attids
< 1 || r
->num_attids
> 0x100000) {
1363 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
1365 NDR_PULL_ALLOC_N(ndr
, r
->attids
, ndr_get_array_size(ndr
, &r
->attids
));
1366 _mem_save_attids_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1367 NDR_PULL_SET_MEM_CTX(ndr
, r
->attids
, 0);
1368 for (cntr_attids_0
= 0; cntr_attids_0
< r
->num_attids
; cntr_attids_0
++) {
1369 NDR_CHECK(ndr_pull_drsuapi_DsAttributeId(ndr
, NDR_SCALARS
, &r
->attids
[cntr_attids_0
]));
1371 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_attids_0
, 0);
1373 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->attids
, r
->num_attids
));
1376 if (ndr_flags
& NDR_BUFFERS
) {
1378 return NDR_ERR_SUCCESS
;
1381 _PUBLIC_
void ndr_print_drsuapi_DsPartialAttributeSet(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsPartialAttributeSet
*r
)
1383 uint32_t cntr_attids_0
;
1384 ndr_print_struct(ndr
, name
, "drsuapi_DsPartialAttributeSet");
1386 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?1:r
->version
);
1387 ndr_print_uint32(ndr
, "reserved1", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0:r
->reserved1
);
1388 ndr_print_uint32(ndr
, "num_attids", r
->num_attids
);
1389 ndr
->print(ndr
, "%s: ARRAY(%d)", "attids", (int)r
->num_attids
);
1391 for (cntr_attids_0
=0;cntr_attids_0
<r
->num_attids
;cntr_attids_0
++) {
1393 if (asprintf(&idx_0
, "[%d]", cntr_attids_0
) != -1) {
1394 ndr_print_drsuapi_DsAttributeId(ndr
, "attids", r
->attids
[cntr_attids_0
]);
1402 static enum ndr_err_code
ndr_push_drsuapi_DsGetNCChangesRequest8(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsGetNCChangesRequest8
*r
)
1404 if (ndr_flags
& NDR_SCALARS
) {
1405 NDR_CHECK(ndr_push_align(ndr
, 8));
1406 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->destination_dsa_guid
));
1407 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->source_dsa_invocation_id
));
1408 if (r
->naming_context
== NULL
) {
1409 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
1411 NDR_CHECK(ndr_push_ref_ptr(ndr
));
1412 NDR_CHECK(ndr_push_drsuapi_DsReplicaHighWaterMark(ndr
, NDR_SCALARS
, &r
->highwatermark
));
1413 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->uptodateness_vector
));
1414 NDR_CHECK(ndr_push_drsuapi_DsReplicaNeighbourFlags(ndr
, NDR_SCALARS
, r
->replica_flags
));
1415 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->max_object_count
));
1416 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->max_ndr_size
));
1417 NDR_CHECK(ndr_push_drsuapi_DsExtendedOperation(ndr
, NDR_SCALARS
, r
->extended_op
));
1418 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->fsmo_info
));
1419 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->partial_attribute_set
));
1420 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->partial_attribute_set_ex
));
1421 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(ndr
, NDR_SCALARS
, &r
->mapping_ctr
));
1423 if (ndr_flags
& NDR_BUFFERS
) {
1424 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->naming_context
));
1425 if (r
->uptodateness_vector
) {
1426 NDR_CHECK(ndr_push_drsuapi_DsReplicaCursorCtrEx(ndr
, NDR_SCALARS
, r
->uptodateness_vector
));
1428 if (r
->partial_attribute_set
) {
1429 NDR_CHECK(ndr_push_drsuapi_DsPartialAttributeSet(ndr
, NDR_SCALARS
, r
->partial_attribute_set
));
1431 if (r
->partial_attribute_set_ex
) {
1432 NDR_CHECK(ndr_push_drsuapi_DsPartialAttributeSet(ndr
, NDR_SCALARS
, r
->partial_attribute_set_ex
));
1434 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(ndr
, NDR_BUFFERS
, &r
->mapping_ctr
));
1436 return NDR_ERR_SUCCESS
;
1439 static enum ndr_err_code
ndr_pull_drsuapi_DsGetNCChangesRequest8(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsGetNCChangesRequest8
*r
)
1441 uint32_t _ptr_naming_context
;
1442 TALLOC_CTX
*_mem_save_naming_context_0
;
1443 uint32_t _ptr_uptodateness_vector
;
1444 TALLOC_CTX
*_mem_save_uptodateness_vector_0
;
1445 uint32_t _ptr_partial_attribute_set
;
1446 TALLOC_CTX
*_mem_save_partial_attribute_set_0
;
1447 uint32_t _ptr_partial_attribute_set_ex
;
1448 TALLOC_CTX
*_mem_save_partial_attribute_set_ex_0
;
1449 if (ndr_flags
& NDR_SCALARS
) {
1450 NDR_CHECK(ndr_pull_align(ndr
, 8));
1451 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->destination_dsa_guid
));
1452 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->source_dsa_invocation_id
));
1453 NDR_CHECK(ndr_pull_ref_ptr(ndr
, &_ptr_naming_context
));
1454 if (_ptr_naming_context
) {
1455 NDR_PULL_ALLOC(ndr
, r
->naming_context
);
1457 r
->naming_context
= NULL
;
1459 NDR_CHECK(ndr_pull_drsuapi_DsReplicaHighWaterMark(ndr
, NDR_SCALARS
, &r
->highwatermark
));
1460 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_uptodateness_vector
));
1461 if (_ptr_uptodateness_vector
) {
1462 NDR_PULL_ALLOC(ndr
, r
->uptodateness_vector
);
1464 r
->uptodateness_vector
= NULL
;
1466 NDR_CHECK(ndr_pull_drsuapi_DsReplicaNeighbourFlags(ndr
, NDR_SCALARS
, &r
->replica_flags
));
1467 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->max_object_count
));
1468 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->max_ndr_size
));
1469 NDR_CHECK(ndr_pull_drsuapi_DsExtendedOperation(ndr
, NDR_SCALARS
, &r
->extended_op
));
1470 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->fsmo_info
));
1471 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_partial_attribute_set
));
1472 if (_ptr_partial_attribute_set
) {
1473 NDR_PULL_ALLOC(ndr
, r
->partial_attribute_set
);
1475 r
->partial_attribute_set
= NULL
;
1477 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_partial_attribute_set_ex
));
1478 if (_ptr_partial_attribute_set_ex
) {
1479 NDR_PULL_ALLOC(ndr
, r
->partial_attribute_set_ex
);
1481 r
->partial_attribute_set_ex
= NULL
;
1483 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(ndr
, NDR_SCALARS
, &r
->mapping_ctr
));
1485 if (ndr_flags
& NDR_BUFFERS
) {
1486 _mem_save_naming_context_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1487 NDR_PULL_SET_MEM_CTX(ndr
, r
->naming_context
, 0);
1488 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->naming_context
));
1489 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_naming_context_0
, 0);
1490 if (r
->uptodateness_vector
) {
1491 _mem_save_uptodateness_vector_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1492 NDR_PULL_SET_MEM_CTX(ndr
, r
->uptodateness_vector
, 0);
1493 NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursorCtrEx(ndr
, NDR_SCALARS
, r
->uptodateness_vector
));
1494 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_uptodateness_vector_0
, 0);
1496 if (r
->partial_attribute_set
) {
1497 _mem_save_partial_attribute_set_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1498 NDR_PULL_SET_MEM_CTX(ndr
, r
->partial_attribute_set
, 0);
1499 NDR_CHECK(ndr_pull_drsuapi_DsPartialAttributeSet(ndr
, NDR_SCALARS
, r
->partial_attribute_set
));
1500 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_partial_attribute_set_0
, 0);
1502 if (r
->partial_attribute_set_ex
) {
1503 _mem_save_partial_attribute_set_ex_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1504 NDR_PULL_SET_MEM_CTX(ndr
, r
->partial_attribute_set_ex
, 0);
1505 NDR_CHECK(ndr_pull_drsuapi_DsPartialAttributeSet(ndr
, NDR_SCALARS
, r
->partial_attribute_set_ex
));
1506 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_partial_attribute_set_ex_0
, 0);
1508 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(ndr
, NDR_BUFFERS
, &r
->mapping_ctr
));
1510 return NDR_ERR_SUCCESS
;
1513 _PUBLIC_
void ndr_print_drsuapi_DsGetNCChangesRequest8(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsGetNCChangesRequest8
*r
)
1515 ndr_print_struct(ndr
, name
, "drsuapi_DsGetNCChangesRequest8");
1517 ndr_print_GUID(ndr
, "destination_dsa_guid", &r
->destination_dsa_guid
);
1518 ndr_print_GUID(ndr
, "source_dsa_invocation_id", &r
->source_dsa_invocation_id
);
1519 ndr_print_ptr(ndr
, "naming_context", r
->naming_context
);
1521 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr
, "naming_context", r
->naming_context
);
1523 ndr_print_drsuapi_DsReplicaHighWaterMark(ndr
, "highwatermark", &r
->highwatermark
);
1524 ndr_print_ptr(ndr
, "uptodateness_vector", r
->uptodateness_vector
);
1526 if (r
->uptodateness_vector
) {
1527 ndr_print_drsuapi_DsReplicaCursorCtrEx(ndr
, "uptodateness_vector", r
->uptodateness_vector
);
1530 ndr_print_drsuapi_DsReplicaNeighbourFlags(ndr
, "replica_flags", r
->replica_flags
);
1531 ndr_print_uint32(ndr
, "max_object_count", r
->max_object_count
);
1532 ndr_print_uint32(ndr
, "max_ndr_size", r
->max_ndr_size
);
1533 ndr_print_drsuapi_DsExtendedOperation(ndr
, "extended_op", r
->extended_op
);
1534 ndr_print_hyper(ndr
, "fsmo_info", r
->fsmo_info
);
1535 ndr_print_ptr(ndr
, "partial_attribute_set", r
->partial_attribute_set
);
1537 if (r
->partial_attribute_set
) {
1538 ndr_print_drsuapi_DsPartialAttributeSet(ndr
, "partial_attribute_set", r
->partial_attribute_set
);
1541 ndr_print_ptr(ndr
, "partial_attribute_set_ex", r
->partial_attribute_set_ex
);
1543 if (r
->partial_attribute_set_ex
) {
1544 ndr_print_drsuapi_DsPartialAttributeSet(ndr
, "partial_attribute_set_ex", r
->partial_attribute_set_ex
);
1547 ndr_print_drsuapi_DsReplicaOIDMapping_Ctr(ndr
, "mapping_ctr", &r
->mapping_ctr
);
1551 static enum ndr_err_code
ndr_push_drsuapi_DsGetNCChangesRequest(struct ndr_push
*ndr
, int ndr_flags
, const union drsuapi_DsGetNCChangesRequest
*r
)
1553 if (ndr_flags
& NDR_SCALARS
) {
1554 int level
= ndr_push_get_switch_value(ndr
, r
);
1555 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, level
));
1558 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesRequest5(ndr
, NDR_SCALARS
, &r
->req5
));
1562 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesRequest8(ndr
, NDR_SCALARS
, &r
->req8
));
1566 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1569 if (ndr_flags
& NDR_BUFFERS
) {
1570 int level
= ndr_push_get_switch_value(ndr
, r
);
1573 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesRequest5(ndr
, NDR_BUFFERS
, &r
->req5
));
1577 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesRequest8(ndr
, NDR_BUFFERS
, &r
->req8
));
1581 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1584 return NDR_ERR_SUCCESS
;
1587 static enum ndr_err_code
ndr_pull_drsuapi_DsGetNCChangesRequest(struct ndr_pull
*ndr
, int ndr_flags
, union drsuapi_DsGetNCChangesRequest
*r
)
1591 level
= ndr_pull_get_switch_value(ndr
, r
);
1592 if (ndr_flags
& NDR_SCALARS
) {
1593 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &_level
));
1594 if (_level
!= level
) {
1595 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
1599 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesRequest5(ndr
, NDR_SCALARS
, &r
->req5
));
1603 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesRequest8(ndr
, NDR_SCALARS
, &r
->req8
));
1607 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1610 if (ndr_flags
& NDR_BUFFERS
) {
1613 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesRequest5(ndr
, NDR_BUFFERS
, &r
->req5
));
1617 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesRequest8(ndr
, NDR_BUFFERS
, &r
->req8
));
1621 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
1624 return NDR_ERR_SUCCESS
;
1627 _PUBLIC_
void ndr_print_drsuapi_DsGetNCChangesRequest(struct ndr_print
*ndr
, const char *name
, const union drsuapi_DsGetNCChangesRequest
*r
)
1630 level
= ndr_print_get_switch_value(ndr
, r
);
1631 ndr_print_union(ndr
, name
, level
, "drsuapi_DsGetNCChangesRequest");
1634 ndr_print_drsuapi_DsGetNCChangesRequest5(ndr
, "req5", &r
->req5
);
1638 ndr_print_drsuapi_DsGetNCChangesRequest8(ndr
, "req8", &r
->req8
);
1642 ndr_print_bad_level(ndr
, name
, level
);
1646 _PUBLIC_
enum ndr_err_code
ndr_push_drsuapi_DsReplicaCursor2(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaCursor2
*r
)
1648 if (ndr_flags
& NDR_SCALARS
) {
1649 NDR_CHECK(ndr_push_align(ndr
, 8));
1650 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->source_dsa_invocation_id
));
1651 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->highest_usn
));
1652 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_sync_success
));
1654 if (ndr_flags
& NDR_BUFFERS
) {
1656 return NDR_ERR_SUCCESS
;
1659 _PUBLIC_
enum ndr_err_code
ndr_pull_drsuapi_DsReplicaCursor2(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaCursor2
*r
)
1661 if (ndr_flags
& NDR_SCALARS
) {
1662 NDR_CHECK(ndr_pull_align(ndr
, 8));
1663 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->source_dsa_invocation_id
));
1664 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->highest_usn
));
1665 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_sync_success
));
1667 if (ndr_flags
& NDR_BUFFERS
) {
1669 return NDR_ERR_SUCCESS
;
1672 _PUBLIC_
void ndr_print_drsuapi_DsReplicaCursor2(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaCursor2
*r
)
1674 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaCursor2");
1676 ndr_print_GUID(ndr
, "source_dsa_invocation_id", &r
->source_dsa_invocation_id
);
1677 ndr_print_hyper(ndr
, "highest_usn", r
->highest_usn
);
1678 ndr_print_NTTIME(ndr
, "last_sync_success", r
->last_sync_success
);
1682 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaCursor2CtrEx(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaCursor2CtrEx
*r
)
1684 uint32_t cntr_cursors_0
;
1685 if (ndr_flags
& NDR_SCALARS
) {
1686 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
1687 NDR_CHECK(ndr_push_align(ndr
, 8));
1688 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
1689 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
1690 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
1691 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
1692 for (cntr_cursors_0
= 0; cntr_cursors_0
< r
->count
; cntr_cursors_0
++) {
1693 NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor2(ndr
, NDR_SCALARS
, &r
->cursors
[cntr_cursors_0
]));
1696 if (ndr_flags
& NDR_BUFFERS
) {
1698 return NDR_ERR_SUCCESS
;
1701 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaCursor2CtrEx(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaCursor2CtrEx
*r
)
1703 uint32_t cntr_cursors_0
;
1704 TALLOC_CTX
*_mem_save_cursors_0
;
1705 if (ndr_flags
& NDR_SCALARS
) {
1706 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->cursors
));
1707 NDR_CHECK(ndr_pull_align(ndr
, 8));
1708 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
1709 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved1
));
1710 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
1711 if (r
->count
> 0x100000) {
1712 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
1714 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved2
));
1715 NDR_PULL_ALLOC_N(ndr
, r
->cursors
, ndr_get_array_size(ndr
, &r
->cursors
));
1716 _mem_save_cursors_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1717 NDR_PULL_SET_MEM_CTX(ndr
, r
->cursors
, 0);
1718 for (cntr_cursors_0
= 0; cntr_cursors_0
< r
->count
; cntr_cursors_0
++) {
1719 NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor2(ndr
, NDR_SCALARS
, &r
->cursors
[cntr_cursors_0
]));
1721 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_cursors_0
, 0);
1723 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->cursors
, r
->count
));
1726 if (ndr_flags
& NDR_BUFFERS
) {
1728 return NDR_ERR_SUCCESS
;
1731 _PUBLIC_
void ndr_print_drsuapi_DsReplicaCursor2CtrEx(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaCursor2CtrEx
*r
)
1733 uint32_t cntr_cursors_0
;
1734 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaCursor2CtrEx");
1736 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->version
);
1737 ndr_print_uint32(ndr
, "reserved1", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0:r
->reserved1
);
1738 ndr_print_uint32(ndr
, "count", r
->count
);
1739 ndr_print_uint32(ndr
, "reserved2", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0:r
->reserved2
);
1740 ndr
->print(ndr
, "%s: ARRAY(%d)", "cursors", (int)r
->count
);
1742 for (cntr_cursors_0
=0;cntr_cursors_0
<r
->count
;cntr_cursors_0
++) {
1744 if (asprintf(&idx_0
, "[%d]", cntr_cursors_0
) != -1) {
1745 ndr_print_drsuapi_DsReplicaCursor2(ndr
, "cursors", &r
->cursors
[cntr_cursors_0
]);
1753 static enum ndr_err_code
ndr_push_drsuapi_DsAttributeValue(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsAttributeValue
*r
)
1755 if (ndr_flags
& NDR_SCALARS
) {
1756 NDR_CHECK(ndr_push_align(ndr
, 4));
1757 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_DATA_BLOB(0, r
->blob
, 0)));
1758 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->blob
));
1760 if (ndr_flags
& NDR_BUFFERS
) {
1762 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->blob
));
1765 return NDR_ERR_SUCCESS
;
1768 static enum ndr_err_code
ndr_pull_drsuapi_DsAttributeValue(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsAttributeValue
*r
)
1771 TALLOC_CTX
*_mem_save_blob_0
;
1772 if (ndr_flags
& NDR_SCALARS
) {
1773 NDR_CHECK(ndr_pull_align(ndr
, 4));
1774 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->__ndr_size
));
1775 if (r
->__ndr_size
> 10485760) {
1776 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
1778 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_blob
));
1780 NDR_PULL_ALLOC(ndr
, r
->blob
);
1785 if (ndr_flags
& NDR_BUFFERS
) {
1787 _mem_save_blob_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1788 NDR_PULL_SET_MEM_CTX(ndr
, r
->blob
, 0);
1789 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->blob
));
1790 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_blob_0
, 0);
1793 return NDR_ERR_SUCCESS
;
1796 _PUBLIC_
void ndr_print_drsuapi_DsAttributeValue(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsAttributeValue
*r
)
1798 ndr_print_struct(ndr
, name
, "drsuapi_DsAttributeValue");
1800 ndr_print_uint32(ndr
, "__ndr_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?ndr_size_DATA_BLOB(0, r
->blob
, 0):r
->__ndr_size
);
1801 ndr_print_ptr(ndr
, "blob", r
->blob
);
1804 ndr_print_DATA_BLOB(ndr
, "blob", *r
->blob
);
1810 static enum ndr_err_code
ndr_push_drsuapi_DsAttributeValueCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsAttributeValueCtr
*r
)
1812 uint32_t cntr_values_1
;
1813 if (ndr_flags
& NDR_SCALARS
) {
1814 NDR_CHECK(ndr_push_align(ndr
, 4));
1815 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_values
));
1816 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->values
));
1818 if (ndr_flags
& NDR_BUFFERS
) {
1820 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_values
));
1821 for (cntr_values_1
= 0; cntr_values_1
< r
->num_values
; cntr_values_1
++) {
1822 NDR_CHECK(ndr_push_drsuapi_DsAttributeValue(ndr
, NDR_SCALARS
, &r
->values
[cntr_values_1
]));
1824 for (cntr_values_1
= 0; cntr_values_1
< r
->num_values
; cntr_values_1
++) {
1825 NDR_CHECK(ndr_push_drsuapi_DsAttributeValue(ndr
, NDR_BUFFERS
, &r
->values
[cntr_values_1
]));
1829 return NDR_ERR_SUCCESS
;
1832 static enum ndr_err_code
ndr_pull_drsuapi_DsAttributeValueCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsAttributeValueCtr
*r
)
1834 uint32_t _ptr_values
;
1835 uint32_t cntr_values_1
;
1836 TALLOC_CTX
*_mem_save_values_0
;
1837 TALLOC_CTX
*_mem_save_values_1
;
1838 if (ndr_flags
& NDR_SCALARS
) {
1839 NDR_CHECK(ndr_pull_align(ndr
, 4));
1840 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_values
));
1841 if (r
->num_values
> 10485760) {
1842 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
1844 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_values
));
1846 NDR_PULL_ALLOC(ndr
, r
->values
);
1851 if (ndr_flags
& NDR_BUFFERS
) {
1853 _mem_save_values_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1854 NDR_PULL_SET_MEM_CTX(ndr
, r
->values
, 0);
1855 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->values
));
1856 NDR_PULL_ALLOC_N(ndr
, r
->values
, ndr_get_array_size(ndr
, &r
->values
));
1857 _mem_save_values_1
= NDR_PULL_GET_MEM_CTX(ndr
);
1858 NDR_PULL_SET_MEM_CTX(ndr
, r
->values
, 0);
1859 for (cntr_values_1
= 0; cntr_values_1
< r
->num_values
; cntr_values_1
++) {
1860 NDR_CHECK(ndr_pull_drsuapi_DsAttributeValue(ndr
, NDR_SCALARS
, &r
->values
[cntr_values_1
]));
1862 for (cntr_values_1
= 0; cntr_values_1
< r
->num_values
; cntr_values_1
++) {
1863 NDR_CHECK(ndr_pull_drsuapi_DsAttributeValue(ndr
, NDR_BUFFERS
, &r
->values
[cntr_values_1
]));
1865 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_values_1
, 0);
1866 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_values_0
, 0);
1869 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->values
, r
->num_values
));
1872 return NDR_ERR_SUCCESS
;
1875 _PUBLIC_
void ndr_print_drsuapi_DsAttributeValueCtr(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsAttributeValueCtr
*r
)
1877 uint32_t cntr_values_1
;
1878 ndr_print_struct(ndr
, name
, "drsuapi_DsAttributeValueCtr");
1880 ndr_print_uint32(ndr
, "num_values", r
->num_values
);
1881 ndr_print_ptr(ndr
, "values", r
->values
);
1884 ndr
->print(ndr
, "%s: ARRAY(%d)", "values", (int)r
->num_values
);
1886 for (cntr_values_1
=0;cntr_values_1
<r
->num_values
;cntr_values_1
++) {
1888 if (asprintf(&idx_1
, "[%d]", cntr_values_1
) != -1) {
1889 ndr_print_drsuapi_DsAttributeValue(ndr
, "values", &r
->values
[cntr_values_1
]);
1899 _PUBLIC_
enum ndr_err_code
ndr_push_drsuapi_DsReplicaObjectIdentifier3(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaObjectIdentifier3
*r
)
1901 if (ndr_flags
& NDR_SCALARS
) {
1902 NDR_CHECK(ndr_push_align(ndr
, 4));
1903 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_drsuapi_DsReplicaObjectIdentifier3(r
, ndr
->iconv_convenience
, ndr
->flags
)));
1904 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_dom_sid28(&r
->sid
, ndr
->flags
)));
1905 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->guid
));
1906 NDR_CHECK(ndr_push_dom_sid28(ndr
, NDR_SCALARS
, &r
->sid
));
1907 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, strlen_m(r
->dn
)));
1908 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dn
, strlen_m(r
->dn
) + 1, sizeof(uint16_t), CH_UTF16
));
1910 if (ndr_flags
& NDR_BUFFERS
) {
1911 NDR_CHECK(ndr_push_dom_sid28(ndr
, NDR_BUFFERS
, &r
->sid
));
1913 return NDR_ERR_SUCCESS
;
1916 _PUBLIC_
enum ndr_err_code
ndr_pull_drsuapi_DsReplicaObjectIdentifier3(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaObjectIdentifier3
*r
)
1918 if (ndr_flags
& NDR_SCALARS
) {
1919 NDR_CHECK(ndr_pull_align(ndr
, 4));
1920 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->__ndr_size
));
1921 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->__ndr_size_sid
));
1922 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->guid
));
1923 NDR_CHECK(ndr_pull_dom_sid28(ndr
, NDR_SCALARS
, &r
->sid
));
1924 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->__ndr_size_dn
));
1925 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dn
, r
->__ndr_size_dn
+ 1, sizeof(uint16_t), CH_UTF16
));
1927 if (ndr_flags
& NDR_BUFFERS
) {
1928 NDR_CHECK(ndr_pull_dom_sid28(ndr
, NDR_BUFFERS
, &r
->sid
));
1930 return NDR_ERR_SUCCESS
;
1933 _PUBLIC_
void ndr_print_drsuapi_DsReplicaObjectIdentifier3(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaObjectIdentifier3
*r
)
1935 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaObjectIdentifier3");
1937 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
);
1938 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
);
1939 ndr_print_GUID(ndr
, "guid", &r
->guid
);
1940 ndr_print_dom_sid28(ndr
, "sid", &r
->sid
);
1941 ndr_print_uint32(ndr
, "__ndr_size_dn", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?strlen_m(r
->dn
):r
->__ndr_size_dn
);
1942 ndr_print_string(ndr
, "dn", r
->dn
);
1946 _PUBLIC_
size_t ndr_size_drsuapi_DsReplicaObjectIdentifier3(const struct drsuapi_DsReplicaObjectIdentifier3
*r
, struct smb_iconv_convenience
*ic
, int flags
)
1948 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_drsuapi_DsReplicaObjectIdentifier3
, ic
);
1951 _PUBLIC_
enum ndr_err_code
ndr_push_drsuapi_DsReplicaObjectIdentifier3Binary(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaObjectIdentifier3Binary
*r
)
1953 if (ndr_flags
& NDR_SCALARS
) {
1954 NDR_CHECK(ndr_push_align(ndr
, 4));
1955 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary(r
, ndr
->iconv_convenience
, ndr
->flags
)));
1956 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_dom_sid28(&r
->sid
, ndr
->flags
)));
1957 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->guid
));
1958 NDR_CHECK(ndr_push_dom_sid28(ndr
, NDR_SCALARS
, &r
->sid
));
1959 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, strlen_m(r
->dn
)));
1960 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dn
, strlen_m(r
->dn
) + 1, sizeof(uint16_t), CH_UTF16
));
1961 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->binary
.length
+ 4));
1963 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
1964 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
1965 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->binary
));
1966 ndr
->flags
= _flags_save_DATA_BLOB
;
1969 if (ndr_flags
& NDR_BUFFERS
) {
1970 NDR_CHECK(ndr_push_dom_sid28(ndr
, NDR_BUFFERS
, &r
->sid
));
1972 return NDR_ERR_SUCCESS
;
1975 _PUBLIC_
enum ndr_err_code
ndr_pull_drsuapi_DsReplicaObjectIdentifier3Binary(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaObjectIdentifier3Binary
*r
)
1977 if (ndr_flags
& NDR_SCALARS
) {
1978 NDR_CHECK(ndr_pull_align(ndr
, 4));
1979 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->__ndr_size
));
1980 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->__ndr_size_sid
));
1981 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->guid
));
1982 NDR_CHECK(ndr_pull_dom_sid28(ndr
, NDR_SCALARS
, &r
->sid
));
1983 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->__ndr_size_dn
));
1984 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dn
, r
->__ndr_size_dn
+ 1, sizeof(uint16_t), CH_UTF16
));
1985 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->__ndr_size_binary
));
1987 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
1988 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
1989 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->binary
));
1990 ndr
->flags
= _flags_save_DATA_BLOB
;
1993 if (ndr_flags
& NDR_BUFFERS
) {
1994 NDR_CHECK(ndr_pull_dom_sid28(ndr
, NDR_BUFFERS
, &r
->sid
));
1996 return NDR_ERR_SUCCESS
;
1999 _PUBLIC_
void ndr_print_drsuapi_DsReplicaObjectIdentifier3Binary(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaObjectIdentifier3Binary
*r
)
2001 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaObjectIdentifier3Binary");
2003 ndr_print_uint32(ndr
, "__ndr_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary(r
, ndr
->iconv_convenience
, ndr
->flags
):r
->__ndr_size
);
2004 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
);
2005 ndr_print_GUID(ndr
, "guid", &r
->guid
);
2006 ndr_print_dom_sid28(ndr
, "sid", &r
->sid
);
2007 ndr_print_uint32(ndr
, "__ndr_size_dn", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?strlen_m(r
->dn
):r
->__ndr_size_dn
);
2008 ndr_print_string(ndr
, "dn", r
->dn
);
2009 ndr_print_uint32(ndr
, "__ndr_size_binary", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->binary
.length
+ 4:r
->__ndr_size_binary
);
2010 ndr_print_DATA_BLOB(ndr
, "binary", r
->binary
);
2014 _PUBLIC_
size_t ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary(const struct drsuapi_DsReplicaObjectIdentifier3Binary
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2016 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_drsuapi_DsReplicaObjectIdentifier3Binary
, ic
);
2019 _PUBLIC_
enum ndr_err_code
ndr_push_drsuapi_DsReplicaAttribute(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaAttribute
*r
)
2021 if (ndr_flags
& NDR_SCALARS
) {
2022 NDR_CHECK(ndr_push_align(ndr
, 4));
2023 NDR_CHECK(ndr_push_drsuapi_DsAttributeId(ndr
, NDR_SCALARS
, r
->attid
));
2024 NDR_CHECK(ndr_push_drsuapi_DsAttributeValueCtr(ndr
, NDR_SCALARS
, &r
->value_ctr
));
2026 if (ndr_flags
& NDR_BUFFERS
) {
2027 NDR_CHECK(ndr_push_drsuapi_DsAttributeValueCtr(ndr
, NDR_BUFFERS
, &r
->value_ctr
));
2029 return NDR_ERR_SUCCESS
;
2032 _PUBLIC_
enum ndr_err_code
ndr_pull_drsuapi_DsReplicaAttribute(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaAttribute
*r
)
2034 if (ndr_flags
& NDR_SCALARS
) {
2035 NDR_CHECK(ndr_pull_align(ndr
, 4));
2036 NDR_CHECK(ndr_pull_drsuapi_DsAttributeId(ndr
, NDR_SCALARS
, &r
->attid
));
2037 NDR_CHECK(ndr_pull_drsuapi_DsAttributeValueCtr(ndr
, NDR_SCALARS
, &r
->value_ctr
));
2039 if (ndr_flags
& NDR_BUFFERS
) {
2040 NDR_CHECK(ndr_pull_drsuapi_DsAttributeValueCtr(ndr
, NDR_BUFFERS
, &r
->value_ctr
));
2042 return NDR_ERR_SUCCESS
;
2045 _PUBLIC_
void ndr_print_drsuapi_DsReplicaAttribute(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaAttribute
*r
)
2047 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaAttribute");
2049 ndr_print_drsuapi_DsAttributeId(ndr
, "attid", r
->attid
);
2050 ndr_print_drsuapi_DsAttributeValueCtr(ndr
, "value_ctr", &r
->value_ctr
);
2054 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaAttributeCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaAttributeCtr
*r
)
2056 uint32_t cntr_attributes_1
;
2057 if (ndr_flags
& NDR_SCALARS
) {
2058 NDR_CHECK(ndr_push_align(ndr
, 4));
2059 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_attributes
));
2060 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->attributes
));
2062 if (ndr_flags
& NDR_BUFFERS
) {
2063 if (r
->attributes
) {
2064 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_attributes
));
2065 for (cntr_attributes_1
= 0; cntr_attributes_1
< r
->num_attributes
; cntr_attributes_1
++) {
2066 NDR_CHECK(ndr_push_drsuapi_DsReplicaAttribute(ndr
, NDR_SCALARS
, &r
->attributes
[cntr_attributes_1
]));
2068 for (cntr_attributes_1
= 0; cntr_attributes_1
< r
->num_attributes
; cntr_attributes_1
++) {
2069 NDR_CHECK(ndr_push_drsuapi_DsReplicaAttribute(ndr
, NDR_BUFFERS
, &r
->attributes
[cntr_attributes_1
]));
2073 return NDR_ERR_SUCCESS
;
2076 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaAttributeCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaAttributeCtr
*r
)
2078 uint32_t _ptr_attributes
;
2079 uint32_t cntr_attributes_1
;
2080 TALLOC_CTX
*_mem_save_attributes_0
;
2081 TALLOC_CTX
*_mem_save_attributes_1
;
2082 if (ndr_flags
& NDR_SCALARS
) {
2083 NDR_CHECK(ndr_pull_align(ndr
, 4));
2084 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_attributes
));
2085 if (r
->num_attributes
> 1048576) {
2086 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
2088 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_attributes
));
2089 if (_ptr_attributes
) {
2090 NDR_PULL_ALLOC(ndr
, r
->attributes
);
2092 r
->attributes
= NULL
;
2095 if (ndr_flags
& NDR_BUFFERS
) {
2096 if (r
->attributes
) {
2097 _mem_save_attributes_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2098 NDR_PULL_SET_MEM_CTX(ndr
, r
->attributes
, 0);
2099 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->attributes
));
2100 NDR_PULL_ALLOC_N(ndr
, r
->attributes
, ndr_get_array_size(ndr
, &r
->attributes
));
2101 _mem_save_attributes_1
= NDR_PULL_GET_MEM_CTX(ndr
);
2102 NDR_PULL_SET_MEM_CTX(ndr
, r
->attributes
, 0);
2103 for (cntr_attributes_1
= 0; cntr_attributes_1
< r
->num_attributes
; cntr_attributes_1
++) {
2104 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttribute(ndr
, NDR_SCALARS
, &r
->attributes
[cntr_attributes_1
]));
2106 for (cntr_attributes_1
= 0; cntr_attributes_1
< r
->num_attributes
; cntr_attributes_1
++) {
2107 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttribute(ndr
, NDR_BUFFERS
, &r
->attributes
[cntr_attributes_1
]));
2109 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_attributes_1
, 0);
2110 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_attributes_0
, 0);
2112 if (r
->attributes
) {
2113 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->attributes
, r
->num_attributes
));
2116 return NDR_ERR_SUCCESS
;
2119 _PUBLIC_
void ndr_print_drsuapi_DsReplicaAttributeCtr(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaAttributeCtr
*r
)
2121 uint32_t cntr_attributes_1
;
2122 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaAttributeCtr");
2124 ndr_print_uint32(ndr
, "num_attributes", r
->num_attributes
);
2125 ndr_print_ptr(ndr
, "attributes", r
->attributes
);
2127 if (r
->attributes
) {
2128 ndr
->print(ndr
, "%s: ARRAY(%d)", "attributes", (int)r
->num_attributes
);
2130 for (cntr_attributes_1
=0;cntr_attributes_1
<r
->num_attributes
;cntr_attributes_1
++) {
2132 if (asprintf(&idx_1
, "[%d]", cntr_attributes_1
) != -1) {
2133 ndr_print_drsuapi_DsReplicaAttribute(ndr
, "attributes", &r
->attributes
[cntr_attributes_1
]);
2143 _PUBLIC_
enum ndr_err_code
ndr_push_drsuapi_DsReplicaObjectFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
2145 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
2146 return NDR_ERR_SUCCESS
;
2149 _PUBLIC_
enum ndr_err_code
ndr_pull_drsuapi_DsReplicaObjectFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
2152 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
2154 return NDR_ERR_SUCCESS
;
2157 _PUBLIC_
void ndr_print_drsuapi_DsReplicaObjectFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
2159 ndr_print_uint32(ndr
, name
, r
);
2161 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_OBJECT_FROM_MASTER", DRSUAPI_DS_REPLICA_OBJECT_FROM_MASTER
, r
);
2162 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_OBJECT_DYNAMIC", DRSUAPI_DS_REPLICA_OBJECT_DYNAMIC
, r
);
2163 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_OBJECT_REMOTE_MODIFY", DRSUAPI_DS_REPLICA_OBJECT_REMOTE_MODIFY
, r
);
2167 _PUBLIC_
enum ndr_err_code
ndr_push_drsuapi_DsReplicaObject(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaObject
*r
)
2169 if (ndr_flags
& NDR_SCALARS
) {
2170 NDR_CHECK(ndr_push_align(ndr
, 4));
2171 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->identifier
));
2172 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectFlags(ndr
, NDR_SCALARS
, r
->flags
));
2173 NDR_CHECK(ndr_push_drsuapi_DsReplicaAttributeCtr(ndr
, NDR_SCALARS
, &r
->attribute_ctr
));
2175 if (ndr_flags
& NDR_BUFFERS
) {
2176 if (r
->identifier
) {
2177 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->identifier
));
2179 NDR_CHECK(ndr_push_drsuapi_DsReplicaAttributeCtr(ndr
, NDR_BUFFERS
, &r
->attribute_ctr
));
2181 return NDR_ERR_SUCCESS
;
2184 _PUBLIC_
enum ndr_err_code
ndr_pull_drsuapi_DsReplicaObject(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaObject
*r
)
2186 uint32_t _ptr_identifier
;
2187 TALLOC_CTX
*_mem_save_identifier_0
;
2188 if (ndr_flags
& NDR_SCALARS
) {
2189 NDR_CHECK(ndr_pull_align(ndr
, 4));
2190 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_identifier
));
2191 if (_ptr_identifier
) {
2192 NDR_PULL_ALLOC(ndr
, r
->identifier
);
2194 r
->identifier
= NULL
;
2196 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectFlags(ndr
, NDR_SCALARS
, &r
->flags
));
2197 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttributeCtr(ndr
, NDR_SCALARS
, &r
->attribute_ctr
));
2199 if (ndr_flags
& NDR_BUFFERS
) {
2200 if (r
->identifier
) {
2201 _mem_save_identifier_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2202 NDR_PULL_SET_MEM_CTX(ndr
, r
->identifier
, 0);
2203 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->identifier
));
2204 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_identifier_0
, 0);
2206 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttributeCtr(ndr
, NDR_BUFFERS
, &r
->attribute_ctr
));
2208 return NDR_ERR_SUCCESS
;
2211 _PUBLIC_
void ndr_print_drsuapi_DsReplicaObject(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaObject
*r
)
2213 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaObject");
2215 ndr_print_ptr(ndr
, "identifier", r
->identifier
);
2217 if (r
->identifier
) {
2218 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr
, "identifier", r
->identifier
);
2221 ndr_print_drsuapi_DsReplicaObjectFlags(ndr
, "flags", r
->flags
);
2222 ndr_print_drsuapi_DsReplicaAttributeCtr(ndr
, "attribute_ctr", &r
->attribute_ctr
);
2226 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaMetaData(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaMetaData
*r
)
2228 if (ndr_flags
& NDR_SCALARS
) {
2229 NDR_CHECK(ndr_push_align(ndr
, 8));
2230 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->version
));
2231 NDR_CHECK(ndr_push_NTTIME_1sec(ndr
, NDR_SCALARS
, r
->originating_change_time
));
2232 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->originating_invocation_id
));
2233 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->originating_usn
));
2235 if (ndr_flags
& NDR_BUFFERS
) {
2237 return NDR_ERR_SUCCESS
;
2240 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaMetaData(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaMetaData
*r
)
2242 if (ndr_flags
& NDR_SCALARS
) {
2243 NDR_CHECK(ndr_pull_align(ndr
, 8));
2244 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
2245 NDR_CHECK(ndr_pull_NTTIME_1sec(ndr
, NDR_SCALARS
, &r
->originating_change_time
));
2246 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->originating_invocation_id
));
2247 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->originating_usn
));
2249 if (ndr_flags
& NDR_BUFFERS
) {
2251 return NDR_ERR_SUCCESS
;
2254 _PUBLIC_
void ndr_print_drsuapi_DsReplicaMetaData(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaMetaData
*r
)
2256 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaMetaData");
2258 ndr_print_uint32(ndr
, "version", r
->version
);
2259 ndr_print_NTTIME_1sec(ndr
, "originating_change_time", r
->originating_change_time
);
2260 ndr_print_GUID(ndr
, "originating_invocation_id", &r
->originating_invocation_id
);
2261 ndr_print_hyper(ndr
, "originating_usn", r
->originating_usn
);
2265 _PUBLIC_
enum ndr_err_code
ndr_push_drsuapi_DsReplicaMetaDataCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaMetaDataCtr
*r
)
2267 uint32_t cntr_meta_data_0
;
2268 if (ndr_flags
& NDR_SCALARS
) {
2269 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
2270 NDR_CHECK(ndr_push_align(ndr
, 8));
2271 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
2272 for (cntr_meta_data_0
= 0; cntr_meta_data_0
< r
->count
; cntr_meta_data_0
++) {
2273 NDR_CHECK(ndr_push_drsuapi_DsReplicaMetaData(ndr
, NDR_SCALARS
, &r
->meta_data
[cntr_meta_data_0
]));
2276 if (ndr_flags
& NDR_BUFFERS
) {
2278 return NDR_ERR_SUCCESS
;
2281 _PUBLIC_
enum ndr_err_code
ndr_pull_drsuapi_DsReplicaMetaDataCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaMetaDataCtr
*r
)
2283 uint32_t cntr_meta_data_0
;
2284 TALLOC_CTX
*_mem_save_meta_data_0
;
2285 if (ndr_flags
& NDR_SCALARS
) {
2286 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->meta_data
));
2287 NDR_CHECK(ndr_pull_align(ndr
, 8));
2288 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
2289 if (r
->count
> 1048576) {
2290 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
2292 NDR_PULL_ALLOC_N(ndr
, r
->meta_data
, ndr_get_array_size(ndr
, &r
->meta_data
));
2293 _mem_save_meta_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2294 NDR_PULL_SET_MEM_CTX(ndr
, r
->meta_data
, 0);
2295 for (cntr_meta_data_0
= 0; cntr_meta_data_0
< r
->count
; cntr_meta_data_0
++) {
2296 NDR_CHECK(ndr_pull_drsuapi_DsReplicaMetaData(ndr
, NDR_SCALARS
, &r
->meta_data
[cntr_meta_data_0
]));
2298 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_meta_data_0
, 0);
2300 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->meta_data
, r
->count
));
2303 if (ndr_flags
& NDR_BUFFERS
) {
2305 return NDR_ERR_SUCCESS
;
2308 _PUBLIC_
void ndr_print_drsuapi_DsReplicaMetaDataCtr(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaMetaDataCtr
*r
)
2310 uint32_t cntr_meta_data_0
;
2311 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaMetaDataCtr");
2313 ndr_print_uint32(ndr
, "count", r
->count
);
2314 ndr
->print(ndr
, "%s: ARRAY(%d)", "meta_data", (int)r
->count
);
2316 for (cntr_meta_data_0
=0;cntr_meta_data_0
<r
->count
;cntr_meta_data_0
++) {
2318 if (asprintf(&idx_0
, "[%d]", cntr_meta_data_0
) != -1) {
2319 ndr_print_drsuapi_DsReplicaMetaData(ndr
, "meta_data", &r
->meta_data
[cntr_meta_data_0
]);
2327 _PUBLIC_
enum ndr_err_code
ndr_push_drsuapi_DsReplicaObjectListItemEx(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaObjectListItemEx
*r
)
2329 if (ndr_flags
& NDR_SCALARS
) {
2330 NDR_CHECK(ndr_push_align(ndr
, 4));
2331 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->next_object
));
2332 NDR_CHECK(ndr_push_drsuapi_DsReplicaObject(ndr
, NDR_SCALARS
, &r
->object
));
2333 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->is_nc_prefix
));
2334 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->parent_object_guid
));
2335 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->meta_data_ctr
));
2337 if (ndr_flags
& NDR_BUFFERS
) {
2338 if (r
->next_object
) {
2339 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectListItemEx(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->next_object
));
2341 NDR_CHECK(ndr_push_drsuapi_DsReplicaObject(ndr
, NDR_BUFFERS
, &r
->object
));
2342 if (r
->parent_object_guid
) {
2343 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, r
->parent_object_guid
));
2345 if (r
->meta_data_ctr
) {
2346 NDR_CHECK(ndr_push_drsuapi_DsReplicaMetaDataCtr(ndr
, NDR_SCALARS
, r
->meta_data_ctr
));
2349 return NDR_ERR_SUCCESS
;
2352 _PUBLIC_
enum ndr_err_code
ndr_pull_drsuapi_DsReplicaObjectListItemEx(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaObjectListItemEx
*r
)
2354 uint32_t _ptr_next_object
;
2355 TALLOC_CTX
*_mem_save_next_object_0
;
2356 uint32_t _ptr_parent_object_guid
;
2357 TALLOC_CTX
*_mem_save_parent_object_guid_0
;
2358 uint32_t _ptr_meta_data_ctr
;
2359 TALLOC_CTX
*_mem_save_meta_data_ctr_0
;
2360 if (ndr_flags
& NDR_SCALARS
) {
2361 NDR_CHECK(ndr_pull_align(ndr
, 4));
2362 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_next_object
));
2363 if (_ptr_next_object
) {
2364 NDR_PULL_ALLOC(ndr
, r
->next_object
);
2366 r
->next_object
= NULL
;
2368 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObject(ndr
, NDR_SCALARS
, &r
->object
));
2369 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->is_nc_prefix
));
2370 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parent_object_guid
));
2371 if (_ptr_parent_object_guid
) {
2372 NDR_PULL_ALLOC(ndr
, r
->parent_object_guid
);
2374 r
->parent_object_guid
= NULL
;
2376 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_meta_data_ctr
));
2377 if (_ptr_meta_data_ctr
) {
2378 NDR_PULL_ALLOC(ndr
, r
->meta_data_ctr
);
2380 r
->meta_data_ctr
= NULL
;
2383 if (ndr_flags
& NDR_BUFFERS
) {
2384 if (r
->next_object
) {
2385 _mem_save_next_object_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2386 NDR_PULL_SET_MEM_CTX(ndr
, r
->next_object
, 0);
2387 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectListItemEx(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->next_object
));
2388 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_next_object_0
, 0);
2390 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObject(ndr
, NDR_BUFFERS
, &r
->object
));
2391 if (r
->parent_object_guid
) {
2392 _mem_save_parent_object_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2393 NDR_PULL_SET_MEM_CTX(ndr
, r
->parent_object_guid
, 0);
2394 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, r
->parent_object_guid
));
2395 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parent_object_guid_0
, 0);
2397 if (r
->meta_data_ctr
) {
2398 _mem_save_meta_data_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2399 NDR_PULL_SET_MEM_CTX(ndr
, r
->meta_data_ctr
, 0);
2400 NDR_CHECK(ndr_pull_drsuapi_DsReplicaMetaDataCtr(ndr
, NDR_SCALARS
, r
->meta_data_ctr
));
2401 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_meta_data_ctr_0
, 0);
2404 return NDR_ERR_SUCCESS
;
2407 _PUBLIC_
enum ndr_err_code
ndr_push_drsuapi_DsGetNCChangesCtr1(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsGetNCChangesCtr1
*r
)
2409 if (ndr_flags
& NDR_SCALARS
) {
2410 NDR_CHECK(ndr_push_align(ndr
, 8));
2411 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->source_dsa_guid
));
2412 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->source_dsa_invocation_id
));
2413 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->naming_context
));
2414 NDR_CHECK(ndr_push_drsuapi_DsReplicaHighWaterMark(ndr
, NDR_SCALARS
, &r
->old_highwatermark
));
2415 NDR_CHECK(ndr_push_drsuapi_DsReplicaHighWaterMark(ndr
, NDR_SCALARS
, &r
->new_highwatermark
));
2416 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->uptodateness_vector
));
2417 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(ndr
, NDR_SCALARS
, &r
->mapping_ctr
));
2418 NDR_CHECK(ndr_push_drsuapi_DsExtendedError(ndr
, NDR_SCALARS
, r
->extended_ret
));
2419 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->object_count
));
2420 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_drsuapi_DsGetNCChangesCtr1(r
, ndr
->iconv_convenience
, ndr
->flags
) + 55));
2421 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->first_object
));
2422 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->more_data
));
2424 if (ndr_flags
& NDR_BUFFERS
) {
2425 if (r
->naming_context
) {
2426 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->naming_context
));
2428 if (r
->uptodateness_vector
) {
2429 NDR_CHECK(ndr_push_drsuapi_DsReplicaCursorCtrEx(ndr
, NDR_SCALARS
, r
->uptodateness_vector
));
2431 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(ndr
, NDR_BUFFERS
, &r
->mapping_ctr
));
2432 if (r
->first_object
) {
2433 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectListItemEx(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->first_object
));
2436 return NDR_ERR_SUCCESS
;
2439 _PUBLIC_
enum ndr_err_code
ndr_pull_drsuapi_DsGetNCChangesCtr1(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsGetNCChangesCtr1
*r
)
2441 uint32_t _ptr_naming_context
;
2442 TALLOC_CTX
*_mem_save_naming_context_0
;
2443 uint32_t _ptr_uptodateness_vector
;
2444 TALLOC_CTX
*_mem_save_uptodateness_vector_0
;
2445 uint32_t _ptr_first_object
;
2446 TALLOC_CTX
*_mem_save_first_object_0
;
2447 if (ndr_flags
& NDR_SCALARS
) {
2448 NDR_CHECK(ndr_pull_align(ndr
, 8));
2449 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->source_dsa_guid
));
2450 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->source_dsa_invocation_id
));
2451 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_naming_context
));
2452 if (_ptr_naming_context
) {
2453 NDR_PULL_ALLOC(ndr
, r
->naming_context
);
2455 r
->naming_context
= NULL
;
2457 NDR_CHECK(ndr_pull_drsuapi_DsReplicaHighWaterMark(ndr
, NDR_SCALARS
, &r
->old_highwatermark
));
2458 NDR_CHECK(ndr_pull_drsuapi_DsReplicaHighWaterMark(ndr
, NDR_SCALARS
, &r
->new_highwatermark
));
2459 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_uptodateness_vector
));
2460 if (_ptr_uptodateness_vector
) {
2461 NDR_PULL_ALLOC(ndr
, r
->uptodateness_vector
);
2463 r
->uptodateness_vector
= NULL
;
2465 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(ndr
, NDR_SCALARS
, &r
->mapping_ctr
));
2466 NDR_CHECK(ndr_pull_drsuapi_DsExtendedError(ndr
, NDR_SCALARS
, &r
->extended_ret
));
2467 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->object_count
));
2468 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->__ndr_size
));
2469 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_first_object
));
2470 if (_ptr_first_object
) {
2471 NDR_PULL_ALLOC(ndr
, r
->first_object
);
2473 r
->first_object
= NULL
;
2475 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->more_data
));
2477 if (ndr_flags
& NDR_BUFFERS
) {
2478 if (r
->naming_context
) {
2479 _mem_save_naming_context_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2480 NDR_PULL_SET_MEM_CTX(ndr
, r
->naming_context
, 0);
2481 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->naming_context
));
2482 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_naming_context_0
, 0);
2484 if (r
->uptodateness_vector
) {
2485 _mem_save_uptodateness_vector_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2486 NDR_PULL_SET_MEM_CTX(ndr
, r
->uptodateness_vector
, 0);
2487 NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursorCtrEx(ndr
, NDR_SCALARS
, r
->uptodateness_vector
));
2488 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_uptodateness_vector_0
, 0);
2490 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(ndr
, NDR_BUFFERS
, &r
->mapping_ctr
));
2491 if (r
->first_object
) {
2492 _mem_save_first_object_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2493 NDR_PULL_SET_MEM_CTX(ndr
, r
->first_object
, 0);
2494 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectListItemEx(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->first_object
));
2495 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_first_object_0
, 0);
2498 return NDR_ERR_SUCCESS
;
2501 _PUBLIC_
void ndr_print_drsuapi_DsGetNCChangesCtr1(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsGetNCChangesCtr1
*r
)
2503 ndr_print_struct(ndr
, name
, "drsuapi_DsGetNCChangesCtr1");
2505 ndr_print_GUID(ndr
, "source_dsa_guid", &r
->source_dsa_guid
);
2506 ndr_print_GUID(ndr
, "source_dsa_invocation_id", &r
->source_dsa_invocation_id
);
2507 ndr_print_ptr(ndr
, "naming_context", r
->naming_context
);
2509 if (r
->naming_context
) {
2510 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr
, "naming_context", r
->naming_context
);
2513 ndr_print_drsuapi_DsReplicaHighWaterMark(ndr
, "old_highwatermark", &r
->old_highwatermark
);
2514 ndr_print_drsuapi_DsReplicaHighWaterMark(ndr
, "new_highwatermark", &r
->new_highwatermark
);
2515 ndr_print_ptr(ndr
, "uptodateness_vector", r
->uptodateness_vector
);
2517 if (r
->uptodateness_vector
) {
2518 ndr_print_drsuapi_DsReplicaCursorCtrEx(ndr
, "uptodateness_vector", r
->uptodateness_vector
);
2521 ndr_print_drsuapi_DsReplicaOIDMapping_Ctr(ndr
, "mapping_ctr", &r
->mapping_ctr
);
2522 ndr_print_drsuapi_DsExtendedError(ndr
, "extended_ret", r
->extended_ret
);
2523 ndr_print_uint32(ndr
, "object_count", r
->object_count
);
2524 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
);
2525 ndr_print_ptr(ndr
, "first_object", r
->first_object
);
2527 if (r
->first_object
) {
2528 ndr_print_drsuapi_DsReplicaObjectListItemEx(ndr
, "first_object", r
->first_object
);
2531 ndr_print_uint32(ndr
, "more_data", r
->more_data
);
2535 _PUBLIC_
size_t ndr_size_drsuapi_DsGetNCChangesCtr1(const struct drsuapi_DsGetNCChangesCtr1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2537 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_drsuapi_DsGetNCChangesCtr1
, ic
);
2540 _PUBLIC_
enum ndr_err_code
ndr_push_drsuapi_DsLinkedAttributeFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
2542 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
2543 return NDR_ERR_SUCCESS
;
2546 _PUBLIC_
enum ndr_err_code
ndr_pull_drsuapi_DsLinkedAttributeFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
2549 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
2551 return NDR_ERR_SUCCESS
;
2554 _PUBLIC_
void ndr_print_drsuapi_DsLinkedAttributeFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
2556 ndr_print_uint32(ndr
, name
, r
);
2558 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_LINKED_ATTRIBUTE_FLAG_ACTIVE", DRSUAPI_DS_LINKED_ATTRIBUTE_FLAG_ACTIVE
, r
);
2562 _PUBLIC_
enum ndr_err_code
ndr_push_drsuapi_DsReplicaLinkedAttribute(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaLinkedAttribute
*r
)
2564 if (ndr_flags
& NDR_SCALARS
) {
2565 NDR_CHECK(ndr_push_align(ndr
, 8));
2566 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->identifier
));
2567 NDR_CHECK(ndr_push_drsuapi_DsAttributeId(ndr
, NDR_SCALARS
, r
->attid
));
2568 NDR_CHECK(ndr_push_drsuapi_DsAttributeValue(ndr
, NDR_SCALARS
, &r
->value
));
2569 NDR_CHECK(ndr_push_drsuapi_DsLinkedAttributeFlags(ndr
, NDR_SCALARS
, r
->flags
));
2570 NDR_CHECK(ndr_push_NTTIME_1sec(ndr
, NDR_SCALARS
, r
->originating_add_time
));
2571 NDR_CHECK(ndr_push_drsuapi_DsReplicaMetaData(ndr
, NDR_SCALARS
, &r
->meta_data
));
2573 if (ndr_flags
& NDR_BUFFERS
) {
2574 if (r
->identifier
) {
2575 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->identifier
));
2577 NDR_CHECK(ndr_push_drsuapi_DsAttributeValue(ndr
, NDR_BUFFERS
, &r
->value
));
2579 return NDR_ERR_SUCCESS
;
2582 _PUBLIC_
enum ndr_err_code
ndr_pull_drsuapi_DsReplicaLinkedAttribute(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaLinkedAttribute
*r
)
2584 uint32_t _ptr_identifier
;
2585 TALLOC_CTX
*_mem_save_identifier_0
;
2586 if (ndr_flags
& NDR_SCALARS
) {
2587 NDR_CHECK(ndr_pull_align(ndr
, 8));
2588 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_identifier
));
2589 if (_ptr_identifier
) {
2590 NDR_PULL_ALLOC(ndr
, r
->identifier
);
2592 r
->identifier
= NULL
;
2594 NDR_CHECK(ndr_pull_drsuapi_DsAttributeId(ndr
, NDR_SCALARS
, &r
->attid
));
2595 NDR_CHECK(ndr_pull_drsuapi_DsAttributeValue(ndr
, NDR_SCALARS
, &r
->value
));
2596 NDR_CHECK(ndr_pull_drsuapi_DsLinkedAttributeFlags(ndr
, NDR_SCALARS
, &r
->flags
));
2597 NDR_CHECK(ndr_pull_NTTIME_1sec(ndr
, NDR_SCALARS
, &r
->originating_add_time
));
2598 NDR_CHECK(ndr_pull_drsuapi_DsReplicaMetaData(ndr
, NDR_SCALARS
, &r
->meta_data
));
2600 if (ndr_flags
& NDR_BUFFERS
) {
2601 if (r
->identifier
) {
2602 _mem_save_identifier_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2603 NDR_PULL_SET_MEM_CTX(ndr
, r
->identifier
, 0);
2604 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->identifier
));
2605 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_identifier_0
, 0);
2607 NDR_CHECK(ndr_pull_drsuapi_DsAttributeValue(ndr
, NDR_BUFFERS
, &r
->value
));
2609 return NDR_ERR_SUCCESS
;
2612 _PUBLIC_
void ndr_print_drsuapi_DsReplicaLinkedAttribute(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaLinkedAttribute
*r
)
2614 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaLinkedAttribute");
2616 ndr_print_ptr(ndr
, "identifier", r
->identifier
);
2618 if (r
->identifier
) {
2619 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr
, "identifier", r
->identifier
);
2622 ndr_print_drsuapi_DsAttributeId(ndr
, "attid", r
->attid
);
2623 ndr_print_drsuapi_DsAttributeValue(ndr
, "value", &r
->value
);
2624 ndr_print_drsuapi_DsLinkedAttributeFlags(ndr
, "flags", r
->flags
);
2625 ndr_print_NTTIME_1sec(ndr
, "originating_add_time", r
->originating_add_time
);
2626 ndr_print_drsuapi_DsReplicaMetaData(ndr
, "meta_data", &r
->meta_data
);
2630 _PUBLIC_
enum ndr_err_code
ndr_push_drsuapi_DsGetNCChangesCtr6(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsGetNCChangesCtr6
*r
)
2632 uint32_t cntr_linked_attributes_1
;
2633 if (ndr_flags
& NDR_SCALARS
) {
2634 NDR_CHECK(ndr_push_align(ndr
, 8));
2635 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->source_dsa_guid
));
2636 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->source_dsa_invocation_id
));
2637 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->naming_context
));
2638 NDR_CHECK(ndr_push_drsuapi_DsReplicaHighWaterMark(ndr
, NDR_SCALARS
, &r
->old_highwatermark
));
2639 NDR_CHECK(ndr_push_drsuapi_DsReplicaHighWaterMark(ndr
, NDR_SCALARS
, &r
->new_highwatermark
));
2640 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->uptodateness_vector
));
2641 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(ndr
, NDR_SCALARS
, &r
->mapping_ctr
));
2642 NDR_CHECK(ndr_push_drsuapi_DsExtendedError(ndr
, NDR_SCALARS
, r
->extended_ret
));
2643 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->object_count
));
2644 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_drsuapi_DsGetNCChangesCtr6(r
, ndr
->iconv_convenience
, ndr
->flags
) + 55));
2645 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->first_object
));
2646 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->more_data
));
2647 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->nc_object_count
));
2648 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->nc_linked_attributes_count
));
2649 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->linked_attributes_count
));
2650 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->linked_attributes
));
2651 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->drs_error
));
2653 if (ndr_flags
& NDR_BUFFERS
) {
2654 if (r
->naming_context
) {
2655 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->naming_context
));
2657 if (r
->uptodateness_vector
) {
2658 NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor2CtrEx(ndr
, NDR_SCALARS
, r
->uptodateness_vector
));
2660 NDR_CHECK(ndr_push_drsuapi_DsReplicaOIDMapping_Ctr(ndr
, NDR_BUFFERS
, &r
->mapping_ctr
));
2661 if (r
->first_object
) {
2662 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectListItemEx(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->first_object
));
2664 if (r
->linked_attributes
) {
2665 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->linked_attributes_count
));
2666 for (cntr_linked_attributes_1
= 0; cntr_linked_attributes_1
< r
->linked_attributes_count
; cntr_linked_attributes_1
++) {
2667 NDR_CHECK(ndr_push_drsuapi_DsReplicaLinkedAttribute(ndr
, NDR_SCALARS
, &r
->linked_attributes
[cntr_linked_attributes_1
]));
2669 for (cntr_linked_attributes_1
= 0; cntr_linked_attributes_1
< r
->linked_attributes_count
; cntr_linked_attributes_1
++) {
2670 NDR_CHECK(ndr_push_drsuapi_DsReplicaLinkedAttribute(ndr
, NDR_BUFFERS
, &r
->linked_attributes
[cntr_linked_attributes_1
]));
2674 return NDR_ERR_SUCCESS
;
2677 _PUBLIC_
enum ndr_err_code
ndr_pull_drsuapi_DsGetNCChangesCtr6(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsGetNCChangesCtr6
*r
)
2679 uint32_t _ptr_naming_context
;
2680 TALLOC_CTX
*_mem_save_naming_context_0
;
2681 uint32_t _ptr_uptodateness_vector
;
2682 TALLOC_CTX
*_mem_save_uptodateness_vector_0
;
2683 uint32_t _ptr_first_object
;
2684 TALLOC_CTX
*_mem_save_first_object_0
;
2685 uint32_t _ptr_linked_attributes
;
2686 uint32_t cntr_linked_attributes_1
;
2687 TALLOC_CTX
*_mem_save_linked_attributes_0
;
2688 TALLOC_CTX
*_mem_save_linked_attributes_1
;
2689 if (ndr_flags
& NDR_SCALARS
) {
2690 NDR_CHECK(ndr_pull_align(ndr
, 8));
2691 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->source_dsa_guid
));
2692 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->source_dsa_invocation_id
));
2693 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_naming_context
));
2694 if (_ptr_naming_context
) {
2695 NDR_PULL_ALLOC(ndr
, r
->naming_context
);
2697 r
->naming_context
= NULL
;
2699 NDR_CHECK(ndr_pull_drsuapi_DsReplicaHighWaterMark(ndr
, NDR_SCALARS
, &r
->old_highwatermark
));
2700 NDR_CHECK(ndr_pull_drsuapi_DsReplicaHighWaterMark(ndr
, NDR_SCALARS
, &r
->new_highwatermark
));
2701 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_uptodateness_vector
));
2702 if (_ptr_uptodateness_vector
) {
2703 NDR_PULL_ALLOC(ndr
, r
->uptodateness_vector
);
2705 r
->uptodateness_vector
= NULL
;
2707 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOIDMapping_Ctr(ndr
, NDR_SCALARS
, &r
->mapping_ctr
));
2708 NDR_CHECK(ndr_pull_drsuapi_DsExtendedError(ndr
, NDR_SCALARS
, &r
->extended_ret
));
2709 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->object_count
));
2710 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->__ndr_size
));
2711 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_first_object
));
2712 if (_ptr_first_object
) {
2713 NDR_PULL_ALLOC(ndr
, r
->first_object
);
2715 r
->first_object
= NULL
;
2717 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->more_data
));
2718 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->nc_object_count
));
2719 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->nc_linked_attributes_count
));
2720 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->linked_attributes_count
));
2721 if (r
->linked_attributes_count
> 1048576) {
2722 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
2724 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_linked_attributes
));
2725 if (_ptr_linked_attributes
) {
2726 NDR_PULL_ALLOC(ndr
, r
->linked_attributes
);
2728 r
->linked_attributes
= NULL
;
2730 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->drs_error
));
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_DsReplicaCursor2CtrEx(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);
2752 if (r
->linked_attributes
) {
2753 _mem_save_linked_attributes_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2754 NDR_PULL_SET_MEM_CTX(ndr
, r
->linked_attributes
, 0);
2755 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->linked_attributes
));
2756 NDR_PULL_ALLOC_N(ndr
, r
->linked_attributes
, ndr_get_array_size(ndr
, &r
->linked_attributes
));
2757 _mem_save_linked_attributes_1
= NDR_PULL_GET_MEM_CTX(ndr
);
2758 NDR_PULL_SET_MEM_CTX(ndr
, r
->linked_attributes
, 0);
2759 for (cntr_linked_attributes_1
= 0; cntr_linked_attributes_1
< r
->linked_attributes_count
; cntr_linked_attributes_1
++) {
2760 NDR_CHECK(ndr_pull_drsuapi_DsReplicaLinkedAttribute(ndr
, NDR_SCALARS
, &r
->linked_attributes
[cntr_linked_attributes_1
]));
2762 for (cntr_linked_attributes_1
= 0; cntr_linked_attributes_1
< r
->linked_attributes_count
; cntr_linked_attributes_1
++) {
2763 NDR_CHECK(ndr_pull_drsuapi_DsReplicaLinkedAttribute(ndr
, NDR_BUFFERS
, &r
->linked_attributes
[cntr_linked_attributes_1
]));
2765 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_linked_attributes_1
, 0);
2766 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_linked_attributes_0
, 0);
2768 if (r
->linked_attributes
) {
2769 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->linked_attributes
, r
->linked_attributes_count
));
2772 return NDR_ERR_SUCCESS
;
2775 _PUBLIC_
void ndr_print_drsuapi_DsGetNCChangesCtr6(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsGetNCChangesCtr6
*r
)
2777 uint32_t cntr_linked_attributes_1
;
2778 ndr_print_struct(ndr
, name
, "drsuapi_DsGetNCChangesCtr6");
2780 ndr_print_GUID(ndr
, "source_dsa_guid", &r
->source_dsa_guid
);
2781 ndr_print_GUID(ndr
, "source_dsa_invocation_id", &r
->source_dsa_invocation_id
);
2782 ndr_print_ptr(ndr
, "naming_context", r
->naming_context
);
2784 if (r
->naming_context
) {
2785 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr
, "naming_context", r
->naming_context
);
2788 ndr_print_drsuapi_DsReplicaHighWaterMark(ndr
, "old_highwatermark", &r
->old_highwatermark
);
2789 ndr_print_drsuapi_DsReplicaHighWaterMark(ndr
, "new_highwatermark", &r
->new_highwatermark
);
2790 ndr_print_ptr(ndr
, "uptodateness_vector", r
->uptodateness_vector
);
2792 if (r
->uptodateness_vector
) {
2793 ndr_print_drsuapi_DsReplicaCursor2CtrEx(ndr
, "uptodateness_vector", r
->uptodateness_vector
);
2796 ndr_print_drsuapi_DsReplicaOIDMapping_Ctr(ndr
, "mapping_ctr", &r
->mapping_ctr
);
2797 ndr_print_drsuapi_DsExtendedError(ndr
, "extended_ret", r
->extended_ret
);
2798 ndr_print_uint32(ndr
, "object_count", r
->object_count
);
2799 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
);
2800 ndr_print_ptr(ndr
, "first_object", r
->first_object
);
2802 if (r
->first_object
) {
2803 ndr_print_drsuapi_DsReplicaObjectListItemEx(ndr
, "first_object", r
->first_object
);
2806 ndr_print_uint32(ndr
, "more_data", r
->more_data
);
2807 ndr_print_uint32(ndr
, "nc_object_count", r
->nc_object_count
);
2808 ndr_print_uint32(ndr
, "nc_linked_attributes_count", r
->nc_linked_attributes_count
);
2809 ndr_print_uint32(ndr
, "linked_attributes_count", r
->linked_attributes_count
);
2810 ndr_print_ptr(ndr
, "linked_attributes", r
->linked_attributes
);
2812 if (r
->linked_attributes
) {
2813 ndr
->print(ndr
, "%s: ARRAY(%d)", "linked_attributes", (int)r
->linked_attributes_count
);
2815 for (cntr_linked_attributes_1
=0;cntr_linked_attributes_1
<r
->linked_attributes_count
;cntr_linked_attributes_1
++) {
2817 if (asprintf(&idx_1
, "[%d]", cntr_linked_attributes_1
) != -1) {
2818 ndr_print_drsuapi_DsReplicaLinkedAttribute(ndr
, "linked_attributes", &r
->linked_attributes
[cntr_linked_attributes_1
]);
2825 ndr_print_WERROR(ndr
, "drs_error", r
->drs_error
);
2829 _PUBLIC_
size_t ndr_size_drsuapi_DsGetNCChangesCtr6(const struct drsuapi_DsGetNCChangesCtr6
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2831 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_drsuapi_DsGetNCChangesCtr6
, ic
);
2834 _PUBLIC_
enum ndr_err_code
ndr_push_drsuapi_DsGetNCChangesCtr1TS(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsGetNCChangesCtr1TS
*r
)
2836 if (ndr_flags
& NDR_SCALARS
) {
2837 NDR_CHECK(ndr_push_align(ndr
, 1));
2839 struct ndr_push
*_ndr_ctr1
;
2840 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_ctr1
, 0xFFFFFC01, -1));
2841 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr1(_ndr_ctr1
, NDR_SCALARS
|NDR_BUFFERS
, &r
->ctr1
));
2842 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_ctr1
, 0xFFFFFC01, -1));
2845 if (ndr_flags
& NDR_BUFFERS
) {
2847 return NDR_ERR_SUCCESS
;
2850 _PUBLIC_
enum ndr_err_code
ndr_pull_drsuapi_DsGetNCChangesCtr1TS(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsGetNCChangesCtr1TS
*r
)
2852 if (ndr_flags
& NDR_SCALARS
) {
2853 NDR_CHECK(ndr_pull_align(ndr
, 1));
2855 struct ndr_pull
*_ndr_ctr1
;
2856 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_ctr1
, 0xFFFFFC01, -1));
2857 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr1(_ndr_ctr1
, NDR_SCALARS
|NDR_BUFFERS
, &r
->ctr1
));
2858 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_ctr1
, 0xFFFFFC01, -1));
2861 if (ndr_flags
& NDR_BUFFERS
) {
2863 return NDR_ERR_SUCCESS
;
2866 _PUBLIC_
void ndr_print_drsuapi_DsGetNCChangesCtr1TS(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsGetNCChangesCtr1TS
*r
)
2868 ndr_print_struct(ndr
, name
, "drsuapi_DsGetNCChangesCtr1TS");
2870 ndr_print_drsuapi_DsGetNCChangesCtr1(ndr
, "ctr1", &r
->ctr1
);
2874 _PUBLIC_
enum ndr_err_code
ndr_push_drsuapi_DsGetNCChangesCtr6TS(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsGetNCChangesCtr6TS
*r
)
2876 if (ndr_flags
& NDR_SCALARS
) {
2877 NDR_CHECK(ndr_push_align(ndr
, 1));
2879 struct ndr_push
*_ndr_ctr6
;
2880 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_ctr6
, 0xFFFFFC01, -1));
2881 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr6(_ndr_ctr6
, NDR_SCALARS
|NDR_BUFFERS
, &r
->ctr6
));
2882 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_ctr6
, 0xFFFFFC01, -1));
2885 if (ndr_flags
& NDR_BUFFERS
) {
2887 return NDR_ERR_SUCCESS
;
2890 _PUBLIC_
enum ndr_err_code
ndr_pull_drsuapi_DsGetNCChangesCtr6TS(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsGetNCChangesCtr6TS
*r
)
2892 if (ndr_flags
& NDR_SCALARS
) {
2893 NDR_CHECK(ndr_pull_align(ndr
, 1));
2895 struct ndr_pull
*_ndr_ctr6
;
2896 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_ctr6
, 0xFFFFFC01, -1));
2897 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr6(_ndr_ctr6
, NDR_SCALARS
|NDR_BUFFERS
, &r
->ctr6
));
2898 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_ctr6
, 0xFFFFFC01, -1));
2901 if (ndr_flags
& NDR_BUFFERS
) {
2903 return NDR_ERR_SUCCESS
;
2906 _PUBLIC_
void ndr_print_drsuapi_DsGetNCChangesCtr6TS(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsGetNCChangesCtr6TS
*r
)
2908 ndr_print_struct(ndr
, name
, "drsuapi_DsGetNCChangesCtr6TS");
2910 ndr_print_drsuapi_DsGetNCChangesCtr6(ndr
, "ctr6", &r
->ctr6
);
2914 static enum ndr_err_code
ndr_pull_drsuapi_DsGetNCChangesMSZIPCtr1(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsGetNCChangesMSZIPCtr1
*r
)
2917 TALLOC_CTX
*_mem_save_ts_0
;
2918 if (ndr_flags
& NDR_SCALARS
) {
2919 NDR_CHECK(ndr_pull_align(ndr
, 4));
2920 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->decompressed_length
));
2921 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->compressed_length
));
2922 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_ts
));
2924 NDR_PULL_ALLOC(ndr
, r
->ts
);
2929 if (ndr_flags
& NDR_BUFFERS
) {
2931 _mem_save_ts_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2932 NDR_PULL_SET_MEM_CTX(ndr
, r
->ts
, 0);
2934 struct ndr_pull
*_ndr_ts
;
2935 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_ts
, 4, r
->compressed_length
));
2937 struct ndr_pull
*_ndr_ts_compressed
;
2938 NDR_CHECK(ndr_pull_compression_start(_ndr_ts
, &_ndr_ts_compressed
, NDR_COMPRESSION_MSZIP
, r
->decompressed_length
));
2939 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr1TS(_ndr_ts_compressed
, NDR_SCALARS
|NDR_BUFFERS
, r
->ts
));
2940 NDR_CHECK(ndr_pull_compression_end(_ndr_ts
, _ndr_ts_compressed
, NDR_COMPRESSION_MSZIP
, r
->decompressed_length
));
2942 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_ts
, 4, r
->compressed_length
));
2944 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ts_0
, 0);
2947 return NDR_ERR_SUCCESS
;
2950 _PUBLIC_
void ndr_print_drsuapi_DsGetNCChangesMSZIPCtr1(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsGetNCChangesMSZIPCtr1
*r
)
2952 ndr_print_struct(ndr
, name
, "drsuapi_DsGetNCChangesMSZIPCtr1");
2954 ndr_print_uint32(ndr
, "decompressed_length", r
->decompressed_length
);
2955 ndr_print_uint32(ndr
, "compressed_length", r
->compressed_length
);
2956 ndr_print_ptr(ndr
, "ts", r
->ts
);
2959 ndr_print_drsuapi_DsGetNCChangesCtr1TS(ndr
, "ts", r
->ts
);
2965 static enum ndr_err_code
ndr_pull_drsuapi_DsGetNCChangesMSZIPCtr6(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsGetNCChangesMSZIPCtr6
*r
)
2968 TALLOC_CTX
*_mem_save_ts_0
;
2969 if (ndr_flags
& NDR_SCALARS
) {
2970 NDR_CHECK(ndr_pull_align(ndr
, 4));
2971 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->decompressed_length
));
2972 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->compressed_length
));
2973 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_ts
));
2975 NDR_PULL_ALLOC(ndr
, r
->ts
);
2980 if (ndr_flags
& NDR_BUFFERS
) {
2982 _mem_save_ts_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2983 NDR_PULL_SET_MEM_CTX(ndr
, r
->ts
, 0);
2985 struct ndr_pull
*_ndr_ts
;
2986 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_ts
, 4, r
->compressed_length
));
2988 struct ndr_pull
*_ndr_ts_compressed
;
2989 NDR_CHECK(ndr_pull_compression_start(_ndr_ts
, &_ndr_ts_compressed
, NDR_COMPRESSION_MSZIP
, r
->decompressed_length
));
2990 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr6TS(_ndr_ts_compressed
, NDR_SCALARS
|NDR_BUFFERS
, r
->ts
));
2991 NDR_CHECK(ndr_pull_compression_end(_ndr_ts
, _ndr_ts_compressed
, NDR_COMPRESSION_MSZIP
, r
->decompressed_length
));
2993 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_ts
, 4, r
->compressed_length
));
2995 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ts_0
, 0);
2998 return NDR_ERR_SUCCESS
;
3001 _PUBLIC_
void ndr_print_drsuapi_DsGetNCChangesMSZIPCtr6(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsGetNCChangesMSZIPCtr6
*r
)
3003 ndr_print_struct(ndr
, name
, "drsuapi_DsGetNCChangesMSZIPCtr6");
3005 ndr_print_uint32(ndr
, "decompressed_length", r
->decompressed_length
);
3006 ndr_print_uint32(ndr
, "compressed_length", r
->compressed_length
);
3007 ndr_print_ptr(ndr
, "ts", r
->ts
);
3010 ndr_print_drsuapi_DsGetNCChangesCtr6TS(ndr
, "ts", r
->ts
);
3016 static enum ndr_err_code
ndr_pull_drsuapi_DsGetNCChangesXPRESSCtr1(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsGetNCChangesXPRESSCtr1
*r
)
3019 TALLOC_CTX
*_mem_save_ts_0
;
3020 if (ndr_flags
& NDR_SCALARS
) {
3021 NDR_CHECK(ndr_pull_align(ndr
, 4));
3022 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->decompressed_length
));
3023 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->compressed_length
));
3024 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_ts
));
3026 NDR_PULL_ALLOC(ndr
, r
->ts
);
3031 if (ndr_flags
& NDR_BUFFERS
) {
3033 _mem_save_ts_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3034 NDR_PULL_SET_MEM_CTX(ndr
, r
->ts
, 0);
3036 struct ndr_pull
*_ndr_ts
;
3037 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_ts
, 4, r
->compressed_length
));
3039 struct ndr_pull
*_ndr_ts_compressed
;
3040 NDR_CHECK(ndr_pull_compression_start(_ndr_ts
, &_ndr_ts_compressed
, NDR_COMPRESSION_XPRESS
, r
->decompressed_length
));
3041 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr1TS(_ndr_ts_compressed
, NDR_SCALARS
|NDR_BUFFERS
, r
->ts
));
3042 NDR_CHECK(ndr_pull_compression_end(_ndr_ts
, _ndr_ts_compressed
, NDR_COMPRESSION_XPRESS
, r
->decompressed_length
));
3044 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_ts
, 4, r
->compressed_length
));
3046 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ts_0
, 0);
3049 return NDR_ERR_SUCCESS
;
3052 _PUBLIC_
void ndr_print_drsuapi_DsGetNCChangesXPRESSCtr1(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsGetNCChangesXPRESSCtr1
*r
)
3054 ndr_print_struct(ndr
, name
, "drsuapi_DsGetNCChangesXPRESSCtr1");
3056 ndr_print_uint32(ndr
, "decompressed_length", r
->decompressed_length
);
3057 ndr_print_uint32(ndr
, "compressed_length", r
->compressed_length
);
3058 ndr_print_ptr(ndr
, "ts", r
->ts
);
3061 ndr_print_drsuapi_DsGetNCChangesCtr1TS(ndr
, "ts", r
->ts
);
3067 static enum ndr_err_code
ndr_pull_drsuapi_DsGetNCChangesXPRESSCtr6(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsGetNCChangesXPRESSCtr6
*r
)
3070 TALLOC_CTX
*_mem_save_ts_0
;
3071 if (ndr_flags
& NDR_SCALARS
) {
3072 NDR_CHECK(ndr_pull_align(ndr
, 4));
3073 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->decompressed_length
));
3074 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->compressed_length
));
3075 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_ts
));
3077 NDR_PULL_ALLOC(ndr
, r
->ts
);
3082 if (ndr_flags
& NDR_BUFFERS
) {
3084 _mem_save_ts_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3085 NDR_PULL_SET_MEM_CTX(ndr
, r
->ts
, 0);
3087 struct ndr_pull
*_ndr_ts
;
3088 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_ts
, 4, r
->compressed_length
));
3090 struct ndr_pull
*_ndr_ts_compressed
;
3091 NDR_CHECK(ndr_pull_compression_start(_ndr_ts
, &_ndr_ts_compressed
, NDR_COMPRESSION_XPRESS
, r
->decompressed_length
));
3092 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr6TS(_ndr_ts_compressed
, NDR_SCALARS
|NDR_BUFFERS
, r
->ts
));
3093 NDR_CHECK(ndr_pull_compression_end(_ndr_ts
, _ndr_ts_compressed
, NDR_COMPRESSION_XPRESS
, r
->decompressed_length
));
3095 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_ts
, 4, r
->compressed_length
));
3097 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ts_0
, 0);
3100 return NDR_ERR_SUCCESS
;
3103 _PUBLIC_
void ndr_print_drsuapi_DsGetNCChangesXPRESSCtr6(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsGetNCChangesXPRESSCtr6
*r
)
3105 ndr_print_struct(ndr
, name
, "drsuapi_DsGetNCChangesXPRESSCtr6");
3107 ndr_print_uint32(ndr
, "decompressed_length", r
->decompressed_length
);
3108 ndr_print_uint32(ndr
, "compressed_length", r
->compressed_length
);
3109 ndr_print_ptr(ndr
, "ts", r
->ts
);
3112 ndr_print_drsuapi_DsGetNCChangesCtr6TS(ndr
, "ts", r
->ts
);
3118 static enum ndr_err_code
ndr_push_drsuapi_DsGetNCChangesCompressionType(struct ndr_push
*ndr
, int ndr_flags
, enum drsuapi_DsGetNCChangesCompressionType r
)
3120 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
3121 return NDR_ERR_SUCCESS
;
3124 static enum ndr_err_code
ndr_pull_drsuapi_DsGetNCChangesCompressionType(struct ndr_pull
*ndr
, int ndr_flags
, enum drsuapi_DsGetNCChangesCompressionType
*r
)
3127 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
3129 return NDR_ERR_SUCCESS
;
3132 _PUBLIC_
void ndr_print_drsuapi_DsGetNCChangesCompressionType(struct ndr_print
*ndr
, const char *name
, enum drsuapi_DsGetNCChangesCompressionType r
)
3134 const char *val
= NULL
;
3137 case DRSUAPI_COMPRESSION_TYPE_MSZIP
: val
= "DRSUAPI_COMPRESSION_TYPE_MSZIP"; break;
3138 case DRSUAPI_COMPRESSION_TYPE_XPRESS
: val
= "DRSUAPI_COMPRESSION_TYPE_XPRESS"; break;
3140 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
3143 static enum ndr_err_code
ndr_push_drsuapi_DsGetNCChangesCompressedCtr(struct ndr_push
*ndr
, int ndr_flags
, const union drsuapi_DsGetNCChangesCompressedCtr
*r
)
3146 uint32_t _flags_save_UNION
= ndr
->flags
;
3147 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
3148 if (ndr_flags
& NDR_SCALARS
) {
3149 int level
= ndr_push_get_switch_value(ndr
, r
);
3151 case 1|(DRSUAPI_COMPRESSION_TYPE_MSZIP
<<16): {
3152 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesMSZIPCtr1(ndr
, NDR_SCALARS
, &r
->mszip1
));
3155 case 6|(DRSUAPI_COMPRESSION_TYPE_MSZIP
<<16): {
3156 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesMSZIPCtr6(ndr
, NDR_SCALARS
, &r
->mszip6
));
3159 case 1|(DRSUAPI_COMPRESSION_TYPE_XPRESS
<<16): {
3160 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesXPRESSCtr1(ndr
, NDR_SCALARS
, &r
->xpress1
));
3163 case 6|(DRSUAPI_COMPRESSION_TYPE_XPRESS
<<16): {
3164 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesXPRESSCtr6(ndr
, NDR_SCALARS
, &r
->xpress6
));
3168 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
3171 if (ndr_flags
& NDR_BUFFERS
) {
3172 int level
= ndr_push_get_switch_value(ndr
, r
);
3174 case 1|(DRSUAPI_COMPRESSION_TYPE_MSZIP
<<16):
3175 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesMSZIPCtr1(ndr
, NDR_BUFFERS
, &r
->mszip1
));
3178 case 6|(DRSUAPI_COMPRESSION_TYPE_MSZIP
<<16):
3179 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesMSZIPCtr6(ndr
, NDR_BUFFERS
, &r
->mszip6
));
3182 case 1|(DRSUAPI_COMPRESSION_TYPE_XPRESS
<<16):
3183 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesXPRESSCtr1(ndr
, NDR_BUFFERS
, &r
->xpress1
));
3186 case 6|(DRSUAPI_COMPRESSION_TYPE_XPRESS
<<16):
3187 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesXPRESSCtr6(ndr
, NDR_BUFFERS
, &r
->xpress6
));
3191 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
3194 ndr
->flags
= _flags_save_UNION
;
3196 return NDR_ERR_SUCCESS
;
3199 static enum ndr_err_code
ndr_pull_drsuapi_DsGetNCChangesCompressedCtr(struct ndr_pull
*ndr
, int ndr_flags
, union drsuapi_DsGetNCChangesCompressedCtr
*r
)
3203 uint32_t _flags_save_UNION
= ndr
->flags
;
3204 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
3205 level
= ndr_pull_get_switch_value(ndr
, r
);
3206 if (ndr_flags
& NDR_SCALARS
) {
3208 case 1|(DRSUAPI_COMPRESSION_TYPE_MSZIP
<<16): {
3209 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesMSZIPCtr1(ndr
, NDR_SCALARS
, &r
->mszip1
));
3212 case 6|(DRSUAPI_COMPRESSION_TYPE_MSZIP
<<16): {
3213 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesMSZIPCtr6(ndr
, NDR_SCALARS
, &r
->mszip6
));
3216 case 1|(DRSUAPI_COMPRESSION_TYPE_XPRESS
<<16): {
3217 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesXPRESSCtr1(ndr
, NDR_SCALARS
, &r
->xpress1
));
3220 case 6|(DRSUAPI_COMPRESSION_TYPE_XPRESS
<<16): {
3221 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesXPRESSCtr6(ndr
, NDR_SCALARS
, &r
->xpress6
));
3225 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
3228 if (ndr_flags
& NDR_BUFFERS
) {
3230 case 1|(DRSUAPI_COMPRESSION_TYPE_MSZIP
<<16):
3231 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesMSZIPCtr1(ndr
, NDR_BUFFERS
, &r
->mszip1
));
3234 case 6|(DRSUAPI_COMPRESSION_TYPE_MSZIP
<<16):
3235 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesMSZIPCtr6(ndr
, NDR_BUFFERS
, &r
->mszip6
));
3238 case 1|(DRSUAPI_COMPRESSION_TYPE_XPRESS
<<16):
3239 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesXPRESSCtr1(ndr
, NDR_BUFFERS
, &r
->xpress1
));
3242 case 6|(DRSUAPI_COMPRESSION_TYPE_XPRESS
<<16):
3243 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesXPRESSCtr6(ndr
, NDR_BUFFERS
, &r
->xpress6
));
3247 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
3250 ndr
->flags
= _flags_save_UNION
;
3252 return NDR_ERR_SUCCESS
;
3255 _PUBLIC_
void ndr_print_drsuapi_DsGetNCChangesCompressedCtr(struct ndr_print
*ndr
, const char *name
, const union drsuapi_DsGetNCChangesCompressedCtr
*r
)
3259 uint32_t _flags_save_UNION
= ndr
->flags
;
3260 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
3261 level
= ndr_print_get_switch_value(ndr
, r
);
3262 ndr_print_union(ndr
, name
, level
, "drsuapi_DsGetNCChangesCompressedCtr");
3264 case 1|(DRSUAPI_COMPRESSION_TYPE_MSZIP
<<16):
3265 ndr_print_drsuapi_DsGetNCChangesMSZIPCtr1(ndr
, "mszip1", &r
->mszip1
);
3268 case 6|(DRSUAPI_COMPRESSION_TYPE_MSZIP
<<16):
3269 ndr_print_drsuapi_DsGetNCChangesMSZIPCtr6(ndr
, "mszip6", &r
->mszip6
);
3272 case 1|(DRSUAPI_COMPRESSION_TYPE_XPRESS
<<16):
3273 ndr_print_drsuapi_DsGetNCChangesXPRESSCtr1(ndr
, "xpress1", &r
->xpress1
);
3276 case 6|(DRSUAPI_COMPRESSION_TYPE_XPRESS
<<16):
3277 ndr_print_drsuapi_DsGetNCChangesXPRESSCtr6(ndr
, "xpress6", &r
->xpress6
);
3281 ndr_print_bad_level(ndr
, name
, level
);
3283 ndr
->flags
= _flags_save_UNION
;
3287 static enum ndr_err_code
ndr_push_drsuapi_DsGetNCChangesCtr2(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsGetNCChangesCtr2
*r
)
3289 if (ndr_flags
& NDR_SCALARS
) {
3290 NDR_CHECK(ndr_push_align(ndr
, 4));
3291 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesMSZIPCtr1(ndr
, NDR_SCALARS
, &r
->mszip1
));
3293 if (ndr_flags
& NDR_BUFFERS
) {
3294 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesMSZIPCtr1(ndr
, NDR_BUFFERS
, &r
->mszip1
));
3296 return NDR_ERR_SUCCESS
;
3299 static enum ndr_err_code
ndr_pull_drsuapi_DsGetNCChangesCtr2(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsGetNCChangesCtr2
*r
)
3301 if (ndr_flags
& NDR_SCALARS
) {
3302 NDR_CHECK(ndr_pull_align(ndr
, 4));
3303 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesMSZIPCtr1(ndr
, NDR_SCALARS
, &r
->mszip1
));
3305 if (ndr_flags
& NDR_BUFFERS
) {
3306 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesMSZIPCtr1(ndr
, NDR_BUFFERS
, &r
->mszip1
));
3308 return NDR_ERR_SUCCESS
;
3311 _PUBLIC_
void ndr_print_drsuapi_DsGetNCChangesCtr2(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsGetNCChangesCtr2
*r
)
3313 ndr_print_struct(ndr
, name
, "drsuapi_DsGetNCChangesCtr2");
3315 ndr_print_drsuapi_DsGetNCChangesMSZIPCtr1(ndr
, "mszip1", &r
->mszip1
);
3319 static enum ndr_err_code
ndr_push_drsuapi_DsGetNCChangesCtr7(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsGetNCChangesCtr7
*r
)
3321 if (ndr_flags
& NDR_SCALARS
) {
3322 NDR_CHECK(ndr_push_align(ndr
, 4));
3323 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, r
->level
));
3324 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCompressionType(ndr
, NDR_SCALARS
, r
->type
));
3325 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->ctr
, r
->level
| (r
->type
<< 16)));
3326 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCompressedCtr(ndr
, NDR_SCALARS
, &r
->ctr
));
3328 if (ndr_flags
& NDR_BUFFERS
) {
3329 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCompressedCtr(ndr
, NDR_BUFFERS
, &r
->ctr
));
3331 return NDR_ERR_SUCCESS
;
3334 static enum ndr_err_code
ndr_pull_drsuapi_DsGetNCChangesCtr7(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsGetNCChangesCtr7
*r
)
3336 if (ndr_flags
& NDR_SCALARS
) {
3337 NDR_CHECK(ndr_pull_align(ndr
, 4));
3338 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &r
->level
));
3339 if (r
->level
< 0 || r
->level
> 6) {
3340 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
3342 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCompressionType(ndr
, NDR_SCALARS
, &r
->type
));
3343 if (r
->type
< 2 || r
->type
> 3) {
3344 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
3346 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->ctr
, r
->level
| (r
->type
<< 16)));
3347 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCompressedCtr(ndr
, NDR_SCALARS
, &r
->ctr
));
3349 if (ndr_flags
& NDR_BUFFERS
) {
3350 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCompressedCtr(ndr
, NDR_BUFFERS
, &r
->ctr
));
3352 return NDR_ERR_SUCCESS
;
3355 _PUBLIC_
void ndr_print_drsuapi_DsGetNCChangesCtr7(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsGetNCChangesCtr7
*r
)
3357 ndr_print_struct(ndr
, name
, "drsuapi_DsGetNCChangesCtr7");
3359 ndr_print_int32(ndr
, "level", r
->level
);
3360 ndr_print_drsuapi_DsGetNCChangesCompressionType(ndr
, "type", r
->type
);
3361 ndr_print_set_switch_value(ndr
, &r
->ctr
, r
->level
| (r
->type
<< 16));
3362 ndr_print_drsuapi_DsGetNCChangesCompressedCtr(ndr
, "ctr", &r
->ctr
);
3366 static enum ndr_err_code
ndr_push_drsuapi_DsGetNCChangesCtr(struct ndr_push
*ndr
, int ndr_flags
, const union drsuapi_DsGetNCChangesCtr
*r
)
3368 if (ndr_flags
& NDR_SCALARS
) {
3369 int level
= ndr_push_get_switch_value(ndr
, r
);
3370 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, level
));
3373 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr1(ndr
, NDR_SCALARS
, &r
->ctr1
));
3377 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr2(ndr
, NDR_SCALARS
, &r
->ctr2
));
3381 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr6(ndr
, NDR_SCALARS
, &r
->ctr6
));
3385 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr7(ndr
, NDR_SCALARS
, &r
->ctr7
));
3389 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
3392 if (ndr_flags
& NDR_BUFFERS
) {
3393 int level
= ndr_push_get_switch_value(ndr
, r
);
3396 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr1(ndr
, NDR_BUFFERS
, &r
->ctr1
));
3400 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr2(ndr
, NDR_BUFFERS
, &r
->ctr2
));
3404 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr6(ndr
, NDR_BUFFERS
, &r
->ctr6
));
3408 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr7(ndr
, NDR_BUFFERS
, &r
->ctr7
));
3412 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
3415 return NDR_ERR_SUCCESS
;
3418 static enum ndr_err_code
ndr_pull_drsuapi_DsGetNCChangesCtr(struct ndr_pull
*ndr
, int ndr_flags
, union drsuapi_DsGetNCChangesCtr
*r
)
3422 level
= ndr_pull_get_switch_value(ndr
, r
);
3423 if (ndr_flags
& NDR_SCALARS
) {
3424 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &_level
));
3425 if (_level
!= level
) {
3426 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
3430 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr1(ndr
, NDR_SCALARS
, &r
->ctr1
));
3434 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr2(ndr
, NDR_SCALARS
, &r
->ctr2
));
3438 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr6(ndr
, NDR_SCALARS
, &r
->ctr6
));
3442 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr7(ndr
, NDR_SCALARS
, &r
->ctr7
));
3446 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
3449 if (ndr_flags
& NDR_BUFFERS
) {
3452 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr1(ndr
, NDR_BUFFERS
, &r
->ctr1
));
3456 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr2(ndr
, NDR_BUFFERS
, &r
->ctr2
));
3460 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr6(ndr
, NDR_BUFFERS
, &r
->ctr6
));
3464 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr7(ndr
, NDR_BUFFERS
, &r
->ctr7
));
3468 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
3471 return NDR_ERR_SUCCESS
;
3474 _PUBLIC_
void ndr_print_drsuapi_DsGetNCChangesCtr(struct ndr_print
*ndr
, const char *name
, const union drsuapi_DsGetNCChangesCtr
*r
)
3477 level
= ndr_print_get_switch_value(ndr
, r
);
3478 ndr_print_union(ndr
, name
, level
, "drsuapi_DsGetNCChangesCtr");
3481 ndr_print_drsuapi_DsGetNCChangesCtr1(ndr
, "ctr1", &r
->ctr1
);
3485 ndr_print_drsuapi_DsGetNCChangesCtr2(ndr
, "ctr2", &r
->ctr2
);
3489 ndr_print_drsuapi_DsGetNCChangesCtr6(ndr
, "ctr6", &r
->ctr6
);
3493 ndr_print_drsuapi_DsGetNCChangesCtr7(ndr
, "ctr7", &r
->ctr7
);
3497 ndr_print_bad_level(ndr
, name
, level
);
3501 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaUpdateRefsOptions(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
3503 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
3504 return NDR_ERR_SUCCESS
;
3507 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaUpdateRefsOptions(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
3510 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
3512 return NDR_ERR_SUCCESS
;
3515 _PUBLIC_
void ndr_print_drsuapi_DsReplicaUpdateRefsOptions(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
3517 ndr_print_uint32(ndr
, name
, r
);
3519 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_UPDATE_ASYNCHRONOUS_OPERATION", DRSUAPI_DS_REPLICA_UPDATE_ASYNCHRONOUS_OPERATION
, r
);
3520 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_UPDATE_GETCHG_CHECK", DRSUAPI_DS_REPLICA_UPDATE_GETCHG_CHECK
, r
);
3521 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_UPDATE_ADD_REFERENCE", DRSUAPI_DS_REPLICA_UPDATE_ADD_REFERENCE
, r
);
3522 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_UPDATE_DELETE_REFERENCE", DRSUAPI_DS_REPLICA_UPDATE_DELETE_REFERENCE
, r
);
3523 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_UPDATE_WRITEABLE", DRSUAPI_DS_REPLICA_UPDATE_WRITEABLE
, r
);
3527 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaUpdateRefsRequest1(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaUpdateRefsRequest1
*r
)
3529 if (ndr_flags
& NDR_SCALARS
) {
3530 NDR_CHECK(ndr_push_align(ndr
, 4));
3531 if (r
->naming_context
== NULL
) {
3532 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3534 NDR_CHECK(ndr_push_ref_ptr(ndr
));
3535 if (r
->dest_dsa_dns_name
== NULL
) {
3536 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3538 NDR_CHECK(ndr_push_ref_ptr(ndr
));
3539 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->dest_dsa_guid
));
3540 NDR_CHECK(ndr_push_drsuapi_DsReplicaUpdateRefsOptions(ndr
, NDR_SCALARS
, r
->options
));
3542 if (ndr_flags
& NDR_BUFFERS
) {
3543 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->naming_context
));
3544 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dest_dsa_dns_name
, CH_DOS
)));
3545 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
3546 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dest_dsa_dns_name
, CH_DOS
)));
3547 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
));
3549 return NDR_ERR_SUCCESS
;
3552 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaUpdateRefsRequest1(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaUpdateRefsRequest1
*r
)
3554 uint32_t _ptr_naming_context
;
3555 TALLOC_CTX
*_mem_save_naming_context_0
;
3556 uint32_t _ptr_dest_dsa_dns_name
;
3557 if (ndr_flags
& NDR_SCALARS
) {
3558 NDR_CHECK(ndr_pull_align(ndr
, 4));
3559 NDR_CHECK(ndr_pull_ref_ptr(ndr
, &_ptr_naming_context
));
3560 if (_ptr_naming_context
) {
3561 NDR_PULL_ALLOC(ndr
, r
->naming_context
);
3563 r
->naming_context
= NULL
;
3565 NDR_CHECK(ndr_pull_ref_ptr(ndr
, &_ptr_dest_dsa_dns_name
));
3566 if (_ptr_dest_dsa_dns_name
) {
3567 NDR_PULL_ALLOC(ndr
, r
->dest_dsa_dns_name
);
3569 r
->dest_dsa_dns_name
= NULL
;
3571 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->dest_dsa_guid
));
3572 NDR_CHECK(ndr_pull_drsuapi_DsReplicaUpdateRefsOptions(ndr
, NDR_SCALARS
, &r
->options
));
3574 if (ndr_flags
& NDR_BUFFERS
) {
3575 _mem_save_naming_context_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3576 NDR_PULL_SET_MEM_CTX(ndr
, r
->naming_context
, 0);
3577 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->naming_context
));
3578 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_naming_context_0
, 0);
3579 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dest_dsa_dns_name
));
3580 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dest_dsa_dns_name
));
3581 if (ndr_get_array_length(ndr
, &r
->dest_dsa_dns_name
) > ndr_get_array_size(ndr
, &r
->dest_dsa_dns_name
)) {
3582 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->dest_dsa_dns_name
), ndr_get_array_length(ndr
, &r
->dest_dsa_dns_name
));
3584 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dest_dsa_dns_name
), sizeof(uint8_t)));
3585 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dest_dsa_dns_name
, ndr_get_array_length(ndr
, &r
->dest_dsa_dns_name
), sizeof(uint8_t), CH_DOS
));
3587 return NDR_ERR_SUCCESS
;
3590 _PUBLIC_
void ndr_print_drsuapi_DsReplicaUpdateRefsRequest1(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaUpdateRefsRequest1
*r
)
3592 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaUpdateRefsRequest1");
3594 ndr_print_ptr(ndr
, "naming_context", r
->naming_context
);
3596 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr
, "naming_context", r
->naming_context
);
3598 ndr_print_ptr(ndr
, "dest_dsa_dns_name", r
->dest_dsa_dns_name
);
3600 ndr_print_string(ndr
, "dest_dsa_dns_name", r
->dest_dsa_dns_name
);
3602 ndr_print_GUID(ndr
, "dest_dsa_guid", &r
->dest_dsa_guid
);
3603 ndr_print_drsuapi_DsReplicaUpdateRefsOptions(ndr
, "options", r
->options
);
3607 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaUpdateRefsRequest(struct ndr_push
*ndr
, int ndr_flags
, const union drsuapi_DsReplicaUpdateRefsRequest
*r
)
3609 if (ndr_flags
& NDR_SCALARS
) {
3610 int level
= ndr_push_get_switch_value(ndr
, r
);
3611 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, level
));
3614 NDR_CHECK(ndr_push_drsuapi_DsReplicaUpdateRefsRequest1(ndr
, NDR_SCALARS
, &r
->req1
));
3618 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
3621 if (ndr_flags
& NDR_BUFFERS
) {
3622 int level
= ndr_push_get_switch_value(ndr
, r
);
3625 NDR_CHECK(ndr_push_drsuapi_DsReplicaUpdateRefsRequest1(ndr
, NDR_BUFFERS
, &r
->req1
));
3629 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
3632 return NDR_ERR_SUCCESS
;
3635 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaUpdateRefsRequest(struct ndr_pull
*ndr
, int ndr_flags
, union drsuapi_DsReplicaUpdateRefsRequest
*r
)
3639 level
= ndr_pull_get_switch_value(ndr
, r
);
3640 if (ndr_flags
& NDR_SCALARS
) {
3641 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &_level
));
3642 if (_level
!= level
) {
3643 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
3647 NDR_CHECK(ndr_pull_drsuapi_DsReplicaUpdateRefsRequest1(ndr
, NDR_SCALARS
, &r
->req1
));
3651 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
3654 if (ndr_flags
& NDR_BUFFERS
) {
3657 NDR_CHECK(ndr_pull_drsuapi_DsReplicaUpdateRefsRequest1(ndr
, NDR_BUFFERS
, &r
->req1
));
3661 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
3664 return NDR_ERR_SUCCESS
;
3667 _PUBLIC_
void ndr_print_drsuapi_DsReplicaUpdateRefsRequest(struct ndr_print
*ndr
, const char *name
, const union drsuapi_DsReplicaUpdateRefsRequest
*r
)
3670 level
= ndr_print_get_switch_value(ndr
, r
);
3671 ndr_print_union(ndr
, name
, level
, "drsuapi_DsReplicaUpdateRefsRequest");
3674 ndr_print_drsuapi_DsReplicaUpdateRefsRequest1(ndr
, "req1", &r
->req1
);
3678 ndr_print_bad_level(ndr
, name
, level
);
3682 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaAddOptions(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
3684 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
3685 return NDR_ERR_SUCCESS
;
3688 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaAddOptions(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
3691 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
3693 return NDR_ERR_SUCCESS
;
3696 _PUBLIC_
void ndr_print_drsuapi_DsReplicaAddOptions(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
3698 ndr_print_uint32(ndr
, name
, r
);
3700 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION", DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION
, r
);
3701 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_ADD_WRITEABLE", DRSUAPI_DS_REPLICA_ADD_WRITEABLE
, r
);
3705 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaAddRequest1(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaAddRequest1
*r
)
3707 if (ndr_flags
& NDR_SCALARS
) {
3708 NDR_CHECK(ndr_push_align(ndr
, 4));
3709 if (r
->naming_context
== NULL
) {
3710 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3712 NDR_CHECK(ndr_push_ref_ptr(ndr
));
3713 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->source_dsa_address
));
3714 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->schedule
, 84));
3715 NDR_CHECK(ndr_push_drsuapi_DsReplicaAddOptions(ndr
, NDR_SCALARS
, r
->options
));
3717 if (ndr_flags
& NDR_BUFFERS
) {
3718 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->naming_context
));
3719 if (r
->source_dsa_address
) {
3720 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->source_dsa_address
, CH_UTF16
)));
3721 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
3722 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->source_dsa_address
, CH_UTF16
)));
3723 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
));
3726 return NDR_ERR_SUCCESS
;
3729 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaAddRequest1(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaAddRequest1
*r
)
3731 uint32_t _ptr_naming_context
;
3732 TALLOC_CTX
*_mem_save_naming_context_0
;
3733 uint32_t _ptr_source_dsa_address
;
3734 TALLOC_CTX
*_mem_save_source_dsa_address_0
;
3735 if (ndr_flags
& NDR_SCALARS
) {
3736 NDR_CHECK(ndr_pull_align(ndr
, 4));
3737 NDR_CHECK(ndr_pull_ref_ptr(ndr
, &_ptr_naming_context
));
3738 if (_ptr_naming_context
) {
3739 NDR_PULL_ALLOC(ndr
, r
->naming_context
);
3741 r
->naming_context
= NULL
;
3743 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_source_dsa_address
));
3744 if (_ptr_source_dsa_address
) {
3745 NDR_PULL_ALLOC(ndr
, r
->source_dsa_address
);
3747 r
->source_dsa_address
= NULL
;
3749 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->schedule
, 84));
3750 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAddOptions(ndr
, NDR_SCALARS
, &r
->options
));
3752 if (ndr_flags
& NDR_BUFFERS
) {
3753 _mem_save_naming_context_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3754 NDR_PULL_SET_MEM_CTX(ndr
, r
->naming_context
, 0);
3755 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->naming_context
));
3756 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_naming_context_0
, 0);
3757 if (r
->source_dsa_address
) {
3758 _mem_save_source_dsa_address_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3759 NDR_PULL_SET_MEM_CTX(ndr
, r
->source_dsa_address
, 0);
3760 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->source_dsa_address
));
3761 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->source_dsa_address
));
3762 if (ndr_get_array_length(ndr
, &r
->source_dsa_address
) > ndr_get_array_size(ndr
, &r
->source_dsa_address
)) {
3763 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->source_dsa_address
), ndr_get_array_length(ndr
, &r
->source_dsa_address
));
3765 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->source_dsa_address
), sizeof(uint16_t)));
3766 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->source_dsa_address
, ndr_get_array_length(ndr
, &r
->source_dsa_address
), sizeof(uint16_t), CH_UTF16
));
3767 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_source_dsa_address_0
, 0);
3770 return NDR_ERR_SUCCESS
;
3773 _PUBLIC_
void ndr_print_drsuapi_DsReplicaAddRequest1(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaAddRequest1
*r
)
3775 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaAddRequest1");
3777 ndr_print_ptr(ndr
, "naming_context", r
->naming_context
);
3779 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr
, "naming_context", r
->naming_context
);
3781 ndr_print_ptr(ndr
, "source_dsa_address", r
->source_dsa_address
);
3783 if (r
->source_dsa_address
) {
3784 ndr_print_string(ndr
, "source_dsa_address", r
->source_dsa_address
);
3787 ndr_print_array_uint8(ndr
, "schedule", r
->schedule
, 84);
3788 ndr_print_drsuapi_DsReplicaAddOptions(ndr
, "options", r
->options
);
3792 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaAddRequest2(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaAddRequest2
*r
)
3794 if (ndr_flags
& NDR_SCALARS
) {
3795 NDR_CHECK(ndr_push_align(ndr
, 4));
3796 if (r
->naming_context
== NULL
) {
3797 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
3799 NDR_CHECK(ndr_push_ref_ptr(ndr
));
3800 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->source_dsa_dn
));
3801 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->transport_dn
));
3802 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->source_dsa_address
));
3803 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->schedule
, 84));
3804 NDR_CHECK(ndr_push_drsuapi_DsReplicaAddOptions(ndr
, NDR_SCALARS
, r
->options
));
3806 if (ndr_flags
& NDR_BUFFERS
) {
3807 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->naming_context
));
3808 if (r
->source_dsa_dn
) {
3809 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->source_dsa_dn
));
3811 if (r
->transport_dn
) {
3812 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->transport_dn
));
3814 if (r
->source_dsa_address
) {
3815 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->source_dsa_address
, CH_UTF16
)));
3816 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
3817 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->source_dsa_address
, CH_UTF16
)));
3818 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
));
3821 return NDR_ERR_SUCCESS
;
3824 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaAddRequest2(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaAddRequest2
*r
)
3826 uint32_t _ptr_naming_context
;
3827 TALLOC_CTX
*_mem_save_naming_context_0
;
3828 uint32_t _ptr_source_dsa_dn
;
3829 TALLOC_CTX
*_mem_save_source_dsa_dn_0
;
3830 uint32_t _ptr_transport_dn
;
3831 TALLOC_CTX
*_mem_save_transport_dn_0
;
3832 uint32_t _ptr_source_dsa_address
;
3833 TALLOC_CTX
*_mem_save_source_dsa_address_0
;
3834 if (ndr_flags
& NDR_SCALARS
) {
3835 NDR_CHECK(ndr_pull_align(ndr
, 4));
3836 NDR_CHECK(ndr_pull_ref_ptr(ndr
, &_ptr_naming_context
));
3837 if (_ptr_naming_context
) {
3838 NDR_PULL_ALLOC(ndr
, r
->naming_context
);
3840 r
->naming_context
= NULL
;
3842 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_source_dsa_dn
));
3843 if (_ptr_source_dsa_dn
) {
3844 NDR_PULL_ALLOC(ndr
, r
->source_dsa_dn
);
3846 r
->source_dsa_dn
= NULL
;
3848 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_transport_dn
));
3849 if (_ptr_transport_dn
) {
3850 NDR_PULL_ALLOC(ndr
, r
->transport_dn
);
3852 r
->transport_dn
= NULL
;
3854 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_source_dsa_address
));
3855 if (_ptr_source_dsa_address
) {
3856 NDR_PULL_ALLOC(ndr
, r
->source_dsa_address
);
3858 r
->source_dsa_address
= NULL
;
3860 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->schedule
, 84));
3861 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAddOptions(ndr
, NDR_SCALARS
, &r
->options
));
3863 if (ndr_flags
& NDR_BUFFERS
) {
3864 _mem_save_naming_context_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3865 NDR_PULL_SET_MEM_CTX(ndr
, r
->naming_context
, 0);
3866 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->naming_context
));
3867 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_naming_context_0
, 0);
3868 if (r
->source_dsa_dn
) {
3869 _mem_save_source_dsa_dn_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3870 NDR_PULL_SET_MEM_CTX(ndr
, r
->source_dsa_dn
, 0);
3871 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->source_dsa_dn
));
3872 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_source_dsa_dn_0
, 0);
3874 if (r
->transport_dn
) {
3875 _mem_save_transport_dn_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3876 NDR_PULL_SET_MEM_CTX(ndr
, r
->transport_dn
, 0);
3877 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->transport_dn
));
3878 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_transport_dn_0
, 0);
3880 if (r
->source_dsa_address
) {
3881 _mem_save_source_dsa_address_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3882 NDR_PULL_SET_MEM_CTX(ndr
, r
->source_dsa_address
, 0);
3883 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->source_dsa_address
));
3884 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->source_dsa_address
));
3885 if (ndr_get_array_length(ndr
, &r
->source_dsa_address
) > ndr_get_array_size(ndr
, &r
->source_dsa_address
)) {
3886 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->source_dsa_address
), ndr_get_array_length(ndr
, &r
->source_dsa_address
));
3888 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->source_dsa_address
), sizeof(uint16_t)));
3889 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->source_dsa_address
, ndr_get_array_length(ndr
, &r
->source_dsa_address
), sizeof(uint16_t), CH_UTF16
));
3890 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_source_dsa_address_0
, 0);
3893 return NDR_ERR_SUCCESS
;
3896 _PUBLIC_
void ndr_print_drsuapi_DsReplicaAddRequest2(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaAddRequest2
*r
)
3898 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaAddRequest2");
3900 ndr_print_ptr(ndr
, "naming_context", r
->naming_context
);
3902 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr
, "naming_context", r
->naming_context
);
3904 ndr_print_ptr(ndr
, "source_dsa_dn", r
->source_dsa_dn
);
3906 if (r
->source_dsa_dn
) {
3907 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr
, "source_dsa_dn", r
->source_dsa_dn
);
3910 ndr_print_ptr(ndr
, "transport_dn", r
->transport_dn
);
3912 if (r
->transport_dn
) {
3913 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr
, "transport_dn", r
->transport_dn
);
3916 ndr_print_ptr(ndr
, "source_dsa_address", r
->source_dsa_address
);
3918 if (r
->source_dsa_address
) {
3919 ndr_print_string(ndr
, "source_dsa_address", r
->source_dsa_address
);
3922 ndr_print_array_uint8(ndr
, "schedule", r
->schedule
, 84);
3923 ndr_print_drsuapi_DsReplicaAddOptions(ndr
, "options", r
->options
);
3927 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaAddRequest(struct ndr_push
*ndr
, int ndr_flags
, const union drsuapi_DsReplicaAddRequest
*r
)
3929 if (ndr_flags
& NDR_SCALARS
) {
3930 int level
= ndr_push_get_switch_value(ndr
, r
);
3931 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, level
));
3934 NDR_CHECK(ndr_push_drsuapi_DsReplicaAddRequest1(ndr
, NDR_SCALARS
, &r
->req1
));
3938 NDR_CHECK(ndr_push_drsuapi_DsReplicaAddRequest2(ndr
, NDR_SCALARS
, &r
->req2
));
3942 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
3945 if (ndr_flags
& NDR_BUFFERS
) {
3946 int level
= ndr_push_get_switch_value(ndr
, r
);
3949 NDR_CHECK(ndr_push_drsuapi_DsReplicaAddRequest1(ndr
, NDR_BUFFERS
, &r
->req1
));
3953 NDR_CHECK(ndr_push_drsuapi_DsReplicaAddRequest2(ndr
, NDR_BUFFERS
, &r
->req2
));
3957 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
3960 return NDR_ERR_SUCCESS
;
3963 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaAddRequest(struct ndr_pull
*ndr
, int ndr_flags
, union drsuapi_DsReplicaAddRequest
*r
)
3967 level
= ndr_pull_get_switch_value(ndr
, r
);
3968 if (ndr_flags
& NDR_SCALARS
) {
3969 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &_level
));
3970 if (_level
!= level
) {
3971 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
3975 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAddRequest1(ndr
, NDR_SCALARS
, &r
->req1
));
3979 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAddRequest2(ndr
, NDR_SCALARS
, &r
->req2
));
3983 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
3986 if (ndr_flags
& NDR_BUFFERS
) {
3989 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAddRequest1(ndr
, NDR_BUFFERS
, &r
->req1
));
3993 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAddRequest2(ndr
, NDR_BUFFERS
, &r
->req2
));
3997 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
4000 return NDR_ERR_SUCCESS
;
4003 _PUBLIC_
void ndr_print_drsuapi_DsReplicaAddRequest(struct ndr_print
*ndr
, const char *name
, const union drsuapi_DsReplicaAddRequest
*r
)
4006 level
= ndr_print_get_switch_value(ndr
, r
);
4007 ndr_print_union(ndr
, name
, level
, "drsuapi_DsReplicaAddRequest");
4010 ndr_print_drsuapi_DsReplicaAddRequest1(ndr
, "req1", &r
->req1
);
4014 ndr_print_drsuapi_DsReplicaAddRequest2(ndr
, "req2", &r
->req2
);
4018 ndr_print_bad_level(ndr
, name
, level
);
4022 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaDeleteOptions(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
4024 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
4025 return NDR_ERR_SUCCESS
;
4028 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaDeleteOptions(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
4031 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
4033 return NDR_ERR_SUCCESS
;
4036 _PUBLIC_
void ndr_print_drsuapi_DsReplicaDeleteOptions(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
4038 ndr_print_uint32(ndr
, name
, r
);
4040 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION", DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION
, r
);
4041 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_ADD_WRITEABLE", DRSUAPI_DS_REPLICA_ADD_WRITEABLE
, r
);
4045 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaDelRequest1(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaDelRequest1
*r
)
4047 if (ndr_flags
& NDR_SCALARS
) {
4048 NDR_CHECK(ndr_push_align(ndr
, 4));
4049 if (r
->naming_context
== NULL
) {
4050 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
4052 NDR_CHECK(ndr_push_ref_ptr(ndr
));
4053 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->source_dsa_address
));
4054 NDR_CHECK(ndr_push_drsuapi_DsReplicaDeleteOptions(ndr
, NDR_SCALARS
, r
->options
));
4056 if (ndr_flags
& NDR_BUFFERS
) {
4057 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->naming_context
));
4058 if (r
->source_dsa_address
) {
4059 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->source_dsa_address
, CH_UTF16
)));
4060 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4061 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->source_dsa_address
, CH_UTF16
)));
4062 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
));
4065 return NDR_ERR_SUCCESS
;
4068 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaDelRequest1(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaDelRequest1
*r
)
4070 uint32_t _ptr_naming_context
;
4071 TALLOC_CTX
*_mem_save_naming_context_0
;
4072 uint32_t _ptr_source_dsa_address
;
4073 TALLOC_CTX
*_mem_save_source_dsa_address_0
;
4074 if (ndr_flags
& NDR_SCALARS
) {
4075 NDR_CHECK(ndr_pull_align(ndr
, 4));
4076 NDR_CHECK(ndr_pull_ref_ptr(ndr
, &_ptr_naming_context
));
4077 if (_ptr_naming_context
) {
4078 NDR_PULL_ALLOC(ndr
, r
->naming_context
);
4080 r
->naming_context
= NULL
;
4082 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_source_dsa_address
));
4083 if (_ptr_source_dsa_address
) {
4084 NDR_PULL_ALLOC(ndr
, r
->source_dsa_address
);
4086 r
->source_dsa_address
= NULL
;
4088 NDR_CHECK(ndr_pull_drsuapi_DsReplicaDeleteOptions(ndr
, NDR_SCALARS
, &r
->options
));
4090 if (ndr_flags
& NDR_BUFFERS
) {
4091 _mem_save_naming_context_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4092 NDR_PULL_SET_MEM_CTX(ndr
, r
->naming_context
, 0);
4093 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->naming_context
));
4094 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_naming_context_0
, 0);
4095 if (r
->source_dsa_address
) {
4096 _mem_save_source_dsa_address_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4097 NDR_PULL_SET_MEM_CTX(ndr
, r
->source_dsa_address
, 0);
4098 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->source_dsa_address
));
4099 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->source_dsa_address
));
4100 if (ndr_get_array_length(ndr
, &r
->source_dsa_address
) > ndr_get_array_size(ndr
, &r
->source_dsa_address
)) {
4101 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->source_dsa_address
), ndr_get_array_length(ndr
, &r
->source_dsa_address
));
4103 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->source_dsa_address
), sizeof(uint16_t)));
4104 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->source_dsa_address
, ndr_get_array_length(ndr
, &r
->source_dsa_address
), sizeof(uint16_t), CH_UTF16
));
4105 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_source_dsa_address_0
, 0);
4108 return NDR_ERR_SUCCESS
;
4111 _PUBLIC_
void ndr_print_drsuapi_DsReplicaDelRequest1(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaDelRequest1
*r
)
4113 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaDelRequest1");
4115 ndr_print_ptr(ndr
, "naming_context", r
->naming_context
);
4117 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr
, "naming_context", r
->naming_context
);
4119 ndr_print_ptr(ndr
, "source_dsa_address", r
->source_dsa_address
);
4121 if (r
->source_dsa_address
) {
4122 ndr_print_string(ndr
, "source_dsa_address", r
->source_dsa_address
);
4125 ndr_print_drsuapi_DsReplicaDeleteOptions(ndr
, "options", r
->options
);
4129 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaDelRequest(struct ndr_push
*ndr
, int ndr_flags
, const union drsuapi_DsReplicaDelRequest
*r
)
4131 if (ndr_flags
& NDR_SCALARS
) {
4132 int level
= ndr_push_get_switch_value(ndr
, r
);
4133 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, level
));
4136 NDR_CHECK(ndr_push_drsuapi_DsReplicaDelRequest1(ndr
, NDR_SCALARS
, &r
->req1
));
4140 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
4143 if (ndr_flags
& NDR_BUFFERS
) {
4144 int level
= ndr_push_get_switch_value(ndr
, r
);
4147 NDR_CHECK(ndr_push_drsuapi_DsReplicaDelRequest1(ndr
, NDR_BUFFERS
, &r
->req1
));
4151 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
4154 return NDR_ERR_SUCCESS
;
4157 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaDelRequest(struct ndr_pull
*ndr
, int ndr_flags
, union drsuapi_DsReplicaDelRequest
*r
)
4161 level
= ndr_pull_get_switch_value(ndr
, r
);
4162 if (ndr_flags
& NDR_SCALARS
) {
4163 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &_level
));
4164 if (_level
!= level
) {
4165 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
4169 NDR_CHECK(ndr_pull_drsuapi_DsReplicaDelRequest1(ndr
, NDR_SCALARS
, &r
->req1
));
4173 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
4176 if (ndr_flags
& NDR_BUFFERS
) {
4179 NDR_CHECK(ndr_pull_drsuapi_DsReplicaDelRequest1(ndr
, NDR_BUFFERS
, &r
->req1
));
4183 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
4186 return NDR_ERR_SUCCESS
;
4189 _PUBLIC_
void ndr_print_drsuapi_DsReplicaDelRequest(struct ndr_print
*ndr
, const char *name
, const union drsuapi_DsReplicaDelRequest
*r
)
4192 level
= ndr_print_get_switch_value(ndr
, r
);
4193 ndr_print_union(ndr
, name
, level
, "drsuapi_DsReplicaDelRequest");
4196 ndr_print_drsuapi_DsReplicaDelRequest1(ndr
, "req1", &r
->req1
);
4200 ndr_print_bad_level(ndr
, name
, level
);
4204 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaModifyOptions(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
4206 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
4207 return NDR_ERR_SUCCESS
;
4210 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaModifyOptions(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
4213 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
4215 return NDR_ERR_SUCCESS
;
4218 _PUBLIC_
void ndr_print_drsuapi_DsReplicaModifyOptions(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
4220 ndr_print_uint32(ndr
, name
, r
);
4222 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION", DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION
, r
);
4223 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DRSUAPI_DS_REPLICA_ADD_WRITEABLE", DRSUAPI_DS_REPLICA_ADD_WRITEABLE
, r
);
4227 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaModRequest1(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaModRequest1
*r
)
4229 if (ndr_flags
& NDR_SCALARS
) {
4230 NDR_CHECK(ndr_push_align(ndr
, 4));
4231 if (r
->naming_context
== NULL
) {
4232 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
4234 NDR_CHECK(ndr_push_ref_ptr(ndr
));
4235 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->source_dra
));
4236 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->source_dra_address
));
4237 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->schedule
, 84));
4238 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->replica_flags
));
4239 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->modify_fields
));
4240 NDR_CHECK(ndr_push_drsuapi_DsReplicaModifyOptions(ndr
, NDR_SCALARS
, r
->options
));
4242 if (ndr_flags
& NDR_BUFFERS
) {
4243 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->naming_context
));
4244 if (r
->source_dra_address
) {
4245 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->source_dra_address
, CH_UTF16
)));
4246 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4247 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->source_dra_address
, CH_UTF16
)));
4248 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
));
4251 return NDR_ERR_SUCCESS
;
4254 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaModRequest1(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaModRequest1
*r
)
4256 uint32_t _ptr_naming_context
;
4257 TALLOC_CTX
*_mem_save_naming_context_0
;
4258 uint32_t _ptr_source_dra_address
;
4259 TALLOC_CTX
*_mem_save_source_dra_address_0
;
4260 if (ndr_flags
& NDR_SCALARS
) {
4261 NDR_CHECK(ndr_pull_align(ndr
, 4));
4262 NDR_CHECK(ndr_pull_ref_ptr(ndr
, &_ptr_naming_context
));
4263 if (_ptr_naming_context
) {
4264 NDR_PULL_ALLOC(ndr
, r
->naming_context
);
4266 r
->naming_context
= NULL
;
4268 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->source_dra
));
4269 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_source_dra_address
));
4270 if (_ptr_source_dra_address
) {
4271 NDR_PULL_ALLOC(ndr
, r
->source_dra_address
);
4273 r
->source_dra_address
= NULL
;
4275 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->schedule
, 84));
4276 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->replica_flags
));
4277 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->modify_fields
));
4278 NDR_CHECK(ndr_pull_drsuapi_DsReplicaModifyOptions(ndr
, NDR_SCALARS
, &r
->options
));
4280 if (ndr_flags
& NDR_BUFFERS
) {
4281 _mem_save_naming_context_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4282 NDR_PULL_SET_MEM_CTX(ndr
, r
->naming_context
, 0);
4283 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->naming_context
));
4284 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_naming_context_0
, 0);
4285 if (r
->source_dra_address
) {
4286 _mem_save_source_dra_address_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4287 NDR_PULL_SET_MEM_CTX(ndr
, r
->source_dra_address
, 0);
4288 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->source_dra_address
));
4289 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->source_dra_address
));
4290 if (ndr_get_array_length(ndr
, &r
->source_dra_address
) > ndr_get_array_size(ndr
, &r
->source_dra_address
)) {
4291 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->source_dra_address
), ndr_get_array_length(ndr
, &r
->source_dra_address
));
4293 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->source_dra_address
), sizeof(uint16_t)));
4294 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->source_dra_address
, ndr_get_array_length(ndr
, &r
->source_dra_address
), sizeof(uint16_t), CH_UTF16
));
4295 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_source_dra_address_0
, 0);
4298 return NDR_ERR_SUCCESS
;
4301 _PUBLIC_
void ndr_print_drsuapi_DsReplicaModRequest1(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaModRequest1
*r
)
4303 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaModRequest1");
4305 ndr_print_ptr(ndr
, "naming_context", r
->naming_context
);
4307 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr
, "naming_context", r
->naming_context
);
4309 ndr_print_GUID(ndr
, "source_dra", &r
->source_dra
);
4310 ndr_print_ptr(ndr
, "source_dra_address", r
->source_dra_address
);
4312 if (r
->source_dra_address
) {
4313 ndr_print_string(ndr
, "source_dra_address", r
->source_dra_address
);
4316 ndr_print_array_uint8(ndr
, "schedule", r
->schedule
, 84);
4317 ndr_print_uint32(ndr
, "replica_flags", r
->replica_flags
);
4318 ndr_print_uint32(ndr
, "modify_fields", r
->modify_fields
);
4319 ndr_print_drsuapi_DsReplicaModifyOptions(ndr
, "options", r
->options
);
4323 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaModRequest(struct ndr_push
*ndr
, int ndr_flags
, const union drsuapi_DsReplicaModRequest
*r
)
4325 if (ndr_flags
& NDR_SCALARS
) {
4326 int level
= ndr_push_get_switch_value(ndr
, r
);
4327 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, level
));
4330 NDR_CHECK(ndr_push_drsuapi_DsReplicaModRequest1(ndr
, NDR_SCALARS
, &r
->req1
));
4334 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
4337 if (ndr_flags
& NDR_BUFFERS
) {
4338 int level
= ndr_push_get_switch_value(ndr
, r
);
4341 NDR_CHECK(ndr_push_drsuapi_DsReplicaModRequest1(ndr
, NDR_BUFFERS
, &r
->req1
));
4345 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
4348 return NDR_ERR_SUCCESS
;
4351 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaModRequest(struct ndr_pull
*ndr
, int ndr_flags
, union drsuapi_DsReplicaModRequest
*r
)
4355 level
= ndr_pull_get_switch_value(ndr
, r
);
4356 if (ndr_flags
& NDR_SCALARS
) {
4357 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &_level
));
4358 if (_level
!= level
) {
4359 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
4363 NDR_CHECK(ndr_pull_drsuapi_DsReplicaModRequest1(ndr
, NDR_SCALARS
, &r
->req1
));
4367 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
4370 if (ndr_flags
& NDR_BUFFERS
) {
4373 NDR_CHECK(ndr_pull_drsuapi_DsReplicaModRequest1(ndr
, NDR_BUFFERS
, &r
->req1
));
4377 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
4380 return NDR_ERR_SUCCESS
;
4383 _PUBLIC_
void ndr_print_drsuapi_DsReplicaModRequest(struct ndr_print
*ndr
, const char *name
, const union drsuapi_DsReplicaModRequest
*r
)
4386 level
= ndr_print_get_switch_value(ndr
, r
);
4387 ndr_print_union(ndr
, name
, level
, "drsuapi_DsReplicaModRequest");
4390 ndr_print_drsuapi_DsReplicaModRequest1(ndr
, "req1", &r
->req1
);
4394 ndr_print_bad_level(ndr
, name
, level
);
4398 static enum ndr_err_code
ndr_push_drsuapi_DsMembershipType(struct ndr_push
*ndr
, int ndr_flags
, enum drsuapi_DsMembershipType r
)
4400 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
4401 return NDR_ERR_SUCCESS
;
4404 static enum ndr_err_code
ndr_pull_drsuapi_DsMembershipType(struct ndr_pull
*ndr
, int ndr_flags
, enum drsuapi_DsMembershipType
*r
)
4407 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
4409 return NDR_ERR_SUCCESS
;
4412 _PUBLIC_
void ndr_print_drsuapi_DsMembershipType(struct ndr_print
*ndr
, const char *name
, enum drsuapi_DsMembershipType r
)
4414 const char *val
= NULL
;
4417 case DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_AND_DOMAIN_GROUPS
: val
= "DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_AND_DOMAIN_GROUPS"; break;
4418 case DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS
: val
= "DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS"; break;
4419 case DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS
: val
= "DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS"; break;
4420 case DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS2
: val
= "DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_LOCAL_GROUPS2"; break;
4421 case DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_GROUPS
: val
= "DRSUAPI_DS_MEMBERSHIP_TYPE_UNIVERSAL_GROUPS"; break;
4422 case DRSUAPI_DS_MEMBERSHIP_TYPE_GROUPMEMBERS
: val
= "DRSUAPI_DS_MEMBERSHIP_TYPE_GROUPMEMBERS"; break;
4423 case DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS2
: val
= "DRSUAPI_DS_MEMBERSHIP_TYPE_DOMAIN_GROUPS2"; break;
4425 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
4428 static enum ndr_err_code
ndr_push_drsuapi_DsGetMembershipsCtr1(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsGetMembershipsCtr1
*r
)
4430 uint32_t cntr_info_array_1
;
4431 uint32_t cntr_group_attrs_1
;
4432 uint32_t cntr_sids_1
;
4433 if (ndr_flags
& NDR_SCALARS
) {
4434 NDR_CHECK(ndr_push_align(ndr
, 4));
4435 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->status
));
4436 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_memberships
));
4437 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_sids
));
4438 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info_array
));
4439 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->group_attrs
));
4440 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sids
));
4442 if (ndr_flags
& NDR_BUFFERS
) {
4443 if (r
->info_array
) {
4444 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_memberships
));
4445 for (cntr_info_array_1
= 0; cntr_info_array_1
< r
->num_memberships
; cntr_info_array_1
++) {
4446 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info_array
[cntr_info_array_1
]));
4448 for (cntr_info_array_1
= 0; cntr_info_array_1
< r
->num_memberships
; cntr_info_array_1
++) {
4449 if (r
->info_array
[cntr_info_array_1
]) {
4450 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info_array
[cntr_info_array_1
]));
4454 if (r
->group_attrs
) {
4455 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_memberships
));
4456 for (cntr_group_attrs_1
= 0; cntr_group_attrs_1
< r
->num_memberships
; cntr_group_attrs_1
++) {
4457 NDR_CHECK(ndr_push_samr_GroupAttrs(ndr
, NDR_SCALARS
, r
->group_attrs
[cntr_group_attrs_1
]));
4461 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_sids
));
4462 for (cntr_sids_1
= 0; cntr_sids_1
< r
->num_sids
; cntr_sids_1
++) {
4463 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sids
[cntr_sids_1
]));
4465 for (cntr_sids_1
= 0; cntr_sids_1
< r
->num_sids
; cntr_sids_1
++) {
4466 if (r
->sids
[cntr_sids_1
]) {
4467 NDR_CHECK(ndr_push_dom_sid28(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sids
[cntr_sids_1
]));
4472 return NDR_ERR_SUCCESS
;
4475 static enum ndr_err_code
ndr_pull_drsuapi_DsGetMembershipsCtr1(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsGetMembershipsCtr1
*r
)
4477 uint32_t _ptr_info_array
;
4478 uint32_t cntr_info_array_1
;
4479 TALLOC_CTX
*_mem_save_info_array_0
;
4480 TALLOC_CTX
*_mem_save_info_array_1
;
4481 TALLOC_CTX
*_mem_save_info_array_2
;
4482 uint32_t _ptr_group_attrs
;
4483 uint32_t cntr_group_attrs_1
;
4484 TALLOC_CTX
*_mem_save_group_attrs_0
;
4485 TALLOC_CTX
*_mem_save_group_attrs_1
;
4487 uint32_t cntr_sids_1
;
4488 TALLOC_CTX
*_mem_save_sids_0
;
4489 TALLOC_CTX
*_mem_save_sids_1
;
4490 TALLOC_CTX
*_mem_save_sids_2
;
4491 if (ndr_flags
& NDR_SCALARS
) {
4492 NDR_CHECK(ndr_pull_align(ndr
, 4));
4493 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->status
));
4494 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_memberships
));
4495 if (r
->num_memberships
> 10000) {
4496 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
4498 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_sids
));
4499 if (r
->num_sids
> 10000) {
4500 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
4502 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info_array
));
4503 if (_ptr_info_array
) {
4504 NDR_PULL_ALLOC(ndr
, r
->info_array
);
4506 r
->info_array
= NULL
;
4508 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_group_attrs
));
4509 if (_ptr_group_attrs
) {
4510 NDR_PULL_ALLOC(ndr
, r
->group_attrs
);
4512 r
->group_attrs
= NULL
;
4514 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sids
));
4516 NDR_PULL_ALLOC(ndr
, r
->sids
);
4521 if (ndr_flags
& NDR_BUFFERS
) {
4522 if (r
->info_array
) {
4523 _mem_save_info_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4524 NDR_PULL_SET_MEM_CTX(ndr
, r
->info_array
, 0);
4525 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->info_array
));
4526 NDR_PULL_ALLOC_N(ndr
, r
->info_array
, ndr_get_array_size(ndr
, &r
->info_array
));
4527 _mem_save_info_array_1
= NDR_PULL_GET_MEM_CTX(ndr
);
4528 NDR_PULL_SET_MEM_CTX(ndr
, r
->info_array
, 0);
4529 for (cntr_info_array_1
= 0; cntr_info_array_1
< r
->num_memberships
; cntr_info_array_1
++) {
4530 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info_array
));
4531 if (_ptr_info_array
) {
4532 NDR_PULL_ALLOC(ndr
, r
->info_array
[cntr_info_array_1
]);
4534 r
->info_array
[cntr_info_array_1
] = NULL
;
4537 for (cntr_info_array_1
= 0; cntr_info_array_1
< r
->num_memberships
; cntr_info_array_1
++) {
4538 if (r
->info_array
[cntr_info_array_1
]) {
4539 _mem_save_info_array_2
= NDR_PULL_GET_MEM_CTX(ndr
);
4540 NDR_PULL_SET_MEM_CTX(ndr
, r
->info_array
[cntr_info_array_1
], 0);
4541 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info_array
[cntr_info_array_1
]));
4542 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_array_2
, 0);
4545 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_array_1
, 0);
4546 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_array_0
, 0);
4548 if (r
->group_attrs
) {
4549 _mem_save_group_attrs_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4550 NDR_PULL_SET_MEM_CTX(ndr
, r
->group_attrs
, 0);
4551 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->group_attrs
));
4552 NDR_PULL_ALLOC_N(ndr
, r
->group_attrs
, ndr_get_array_size(ndr
, &r
->group_attrs
));
4553 _mem_save_group_attrs_1
= NDR_PULL_GET_MEM_CTX(ndr
);
4554 NDR_PULL_SET_MEM_CTX(ndr
, r
->group_attrs
, 0);
4555 for (cntr_group_attrs_1
= 0; cntr_group_attrs_1
< r
->num_memberships
; cntr_group_attrs_1
++) {
4556 NDR_CHECK(ndr_pull_samr_GroupAttrs(ndr
, NDR_SCALARS
, &r
->group_attrs
[cntr_group_attrs_1
]));
4558 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_group_attrs_1
, 0);
4559 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_group_attrs_0
, 0);
4562 _mem_save_sids_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4563 NDR_PULL_SET_MEM_CTX(ndr
, r
->sids
, 0);
4564 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sids
));
4565 NDR_PULL_ALLOC_N(ndr
, r
->sids
, ndr_get_array_size(ndr
, &r
->sids
));
4566 _mem_save_sids_1
= NDR_PULL_GET_MEM_CTX(ndr
);
4567 NDR_PULL_SET_MEM_CTX(ndr
, r
->sids
, 0);
4568 for (cntr_sids_1
= 0; cntr_sids_1
< r
->num_sids
; cntr_sids_1
++) {
4569 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sids
));
4571 NDR_PULL_ALLOC(ndr
, r
->sids
[cntr_sids_1
]);
4573 r
->sids
[cntr_sids_1
] = NULL
;
4576 for (cntr_sids_1
= 0; cntr_sids_1
< r
->num_sids
; cntr_sids_1
++) {
4577 if (r
->sids
[cntr_sids_1
]) {
4578 _mem_save_sids_2
= NDR_PULL_GET_MEM_CTX(ndr
);
4579 NDR_PULL_SET_MEM_CTX(ndr
, r
->sids
[cntr_sids_1
], 0);
4580 NDR_CHECK(ndr_pull_dom_sid28(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->sids
[cntr_sids_1
]));
4581 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sids_2
, 0);
4584 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sids_1
, 0);
4585 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sids_0
, 0);
4587 if (r
->info_array
) {
4588 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->info_array
, r
->num_memberships
));
4590 if (r
->group_attrs
) {
4591 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->group_attrs
, r
->num_memberships
));
4594 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->sids
, r
->num_sids
));
4597 return NDR_ERR_SUCCESS
;
4600 _PUBLIC_
void ndr_print_drsuapi_DsGetMembershipsCtr1(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsGetMembershipsCtr1
*r
)
4602 uint32_t cntr_info_array_1
;
4603 uint32_t cntr_group_attrs_1
;
4604 uint32_t cntr_sids_1
;
4605 ndr_print_struct(ndr
, name
, "drsuapi_DsGetMembershipsCtr1");
4607 ndr_print_NTSTATUS(ndr
, "status", r
->status
);
4608 ndr_print_uint32(ndr
, "num_memberships", r
->num_memberships
);
4609 ndr_print_uint32(ndr
, "num_sids", r
->num_sids
);
4610 ndr_print_ptr(ndr
, "info_array", r
->info_array
);
4612 if (r
->info_array
) {
4613 ndr
->print(ndr
, "%s: ARRAY(%d)", "info_array", (int)r
->num_memberships
);
4615 for (cntr_info_array_1
=0;cntr_info_array_1
<r
->num_memberships
;cntr_info_array_1
++) {
4617 if (asprintf(&idx_1
, "[%d]", cntr_info_array_1
) != -1) {
4618 ndr_print_ptr(ndr
, "info_array", r
->info_array
[cntr_info_array_1
]);
4620 if (r
->info_array
[cntr_info_array_1
]) {
4621 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr
, "info_array", r
->info_array
[cntr_info_array_1
]);
4630 ndr_print_ptr(ndr
, "group_attrs", r
->group_attrs
);
4632 if (r
->group_attrs
) {
4633 ndr
->print(ndr
, "%s: ARRAY(%d)", "group_attrs", (int)r
->num_memberships
);
4635 for (cntr_group_attrs_1
=0;cntr_group_attrs_1
<r
->num_memberships
;cntr_group_attrs_1
++) {
4637 if (asprintf(&idx_1
, "[%d]", cntr_group_attrs_1
) != -1) {
4638 ndr_print_samr_GroupAttrs(ndr
, "group_attrs", r
->group_attrs
[cntr_group_attrs_1
]);
4645 ndr_print_ptr(ndr
, "sids", r
->sids
);
4648 ndr
->print(ndr
, "%s: ARRAY(%d)", "sids", (int)r
->num_sids
);
4650 for (cntr_sids_1
=0;cntr_sids_1
<r
->num_sids
;cntr_sids_1
++) {
4652 if (asprintf(&idx_1
, "[%d]", cntr_sids_1
) != -1) {
4653 ndr_print_ptr(ndr
, "sids", r
->sids
[cntr_sids_1
]);
4655 if (r
->sids
[cntr_sids_1
]) {
4656 ndr_print_dom_sid28(ndr
, "sids", r
->sids
[cntr_sids_1
]);
4668 static enum ndr_err_code
ndr_push_drsuapi_DsGetMembershipsCtr(struct ndr_push
*ndr
, int ndr_flags
, const union drsuapi_DsGetMembershipsCtr
*r
)
4670 if (ndr_flags
& NDR_SCALARS
) {
4671 int level
= ndr_push_get_switch_value(ndr
, r
);
4672 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, level
));
4675 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsCtr1(ndr
, NDR_SCALARS
, &r
->ctr1
));
4679 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
4682 if (ndr_flags
& NDR_BUFFERS
) {
4683 int level
= ndr_push_get_switch_value(ndr
, r
);
4686 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsCtr1(ndr
, NDR_BUFFERS
, &r
->ctr1
));
4690 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
4693 return NDR_ERR_SUCCESS
;
4696 static enum ndr_err_code
ndr_pull_drsuapi_DsGetMembershipsCtr(struct ndr_pull
*ndr
, int ndr_flags
, union drsuapi_DsGetMembershipsCtr
*r
)
4700 level
= ndr_pull_get_switch_value(ndr
, r
);
4701 if (ndr_flags
& NDR_SCALARS
) {
4702 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &_level
));
4703 if (_level
!= level
) {
4704 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
4708 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsCtr1(ndr
, NDR_SCALARS
, &r
->ctr1
));
4712 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
4715 if (ndr_flags
& NDR_BUFFERS
) {
4718 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsCtr1(ndr
, NDR_BUFFERS
, &r
->ctr1
));
4722 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
4725 return NDR_ERR_SUCCESS
;
4728 _PUBLIC_
void ndr_print_drsuapi_DsGetMembershipsCtr(struct ndr_print
*ndr
, const char *name
, const union drsuapi_DsGetMembershipsCtr
*r
)
4731 level
= ndr_print_get_switch_value(ndr
, r
);
4732 ndr_print_union(ndr
, name
, level
, "drsuapi_DsGetMembershipsCtr");
4735 ndr_print_drsuapi_DsGetMembershipsCtr1(ndr
, "ctr1", &r
->ctr1
);
4739 ndr_print_bad_level(ndr
, name
, level
);
4743 static enum ndr_err_code
ndr_push_drsuapi_DsGetMembershipsRequest1(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsGetMembershipsRequest1
*r
)
4745 uint32_t cntr_info_array_1
;
4746 if (ndr_flags
& NDR_SCALARS
) {
4747 NDR_CHECK(ndr_push_align(ndr
, 4));
4748 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
4749 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info_array
));
4750 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->flags
));
4751 NDR_CHECK(ndr_push_drsuapi_DsMembershipType(ndr
, NDR_SCALARS
, r
->type
));
4752 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain
));
4754 if (ndr_flags
& NDR_BUFFERS
) {
4755 if (r
->info_array
) {
4756 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
4757 for (cntr_info_array_1
= 0; cntr_info_array_1
< r
->count
; cntr_info_array_1
++) {
4758 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info_array
[cntr_info_array_1
]));
4760 for (cntr_info_array_1
= 0; cntr_info_array_1
< r
->count
; cntr_info_array_1
++) {
4761 if (r
->info_array
[cntr_info_array_1
]) {
4762 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info_array
[cntr_info_array_1
]));
4767 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain
));
4770 return NDR_ERR_SUCCESS
;
4773 static enum ndr_err_code
ndr_pull_drsuapi_DsGetMembershipsRequest1(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsGetMembershipsRequest1
*r
)
4775 uint32_t _ptr_info_array
;
4776 uint32_t cntr_info_array_1
;
4777 TALLOC_CTX
*_mem_save_info_array_0
;
4778 TALLOC_CTX
*_mem_save_info_array_1
;
4779 TALLOC_CTX
*_mem_save_info_array_2
;
4780 uint32_t _ptr_domain
;
4781 TALLOC_CTX
*_mem_save_domain_0
;
4782 if (ndr_flags
& NDR_SCALARS
) {
4783 NDR_CHECK(ndr_pull_align(ndr
, 4));
4784 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
4785 if (r
->count
< 1 || r
->count
> 10000) {
4786 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
4788 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info_array
));
4789 if (_ptr_info_array
) {
4790 NDR_PULL_ALLOC(ndr
, r
->info_array
);
4792 r
->info_array
= NULL
;
4794 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->flags
));
4795 NDR_CHECK(ndr_pull_drsuapi_DsMembershipType(ndr
, NDR_SCALARS
, &r
->type
));
4796 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain
));
4798 NDR_PULL_ALLOC(ndr
, r
->domain
);
4803 if (ndr_flags
& NDR_BUFFERS
) {
4804 if (r
->info_array
) {
4805 _mem_save_info_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4806 NDR_PULL_SET_MEM_CTX(ndr
, r
->info_array
, 0);
4807 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->info_array
));
4808 NDR_PULL_ALLOC_N(ndr
, r
->info_array
, ndr_get_array_size(ndr
, &r
->info_array
));
4809 _mem_save_info_array_1
= NDR_PULL_GET_MEM_CTX(ndr
);
4810 NDR_PULL_SET_MEM_CTX(ndr
, r
->info_array
, 0);
4811 for (cntr_info_array_1
= 0; cntr_info_array_1
< r
->count
; cntr_info_array_1
++) {
4812 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info_array
));
4813 if (_ptr_info_array
) {
4814 NDR_PULL_ALLOC(ndr
, r
->info_array
[cntr_info_array_1
]);
4816 r
->info_array
[cntr_info_array_1
] = NULL
;
4819 for (cntr_info_array_1
= 0; cntr_info_array_1
< r
->count
; cntr_info_array_1
++) {
4820 if (r
->info_array
[cntr_info_array_1
]) {
4821 _mem_save_info_array_2
= NDR_PULL_GET_MEM_CTX(ndr
);
4822 NDR_PULL_SET_MEM_CTX(ndr
, r
->info_array
[cntr_info_array_1
], 0);
4823 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info_array
[cntr_info_array_1
]));
4824 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_array_2
, 0);
4827 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_array_1
, 0);
4828 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_array_0
, 0);
4831 _mem_save_domain_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4832 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain
, 0);
4833 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->domain
));
4834 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_0
, 0);
4836 if (r
->info_array
) {
4837 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->info_array
, r
->count
));
4840 return NDR_ERR_SUCCESS
;
4843 _PUBLIC_
void ndr_print_drsuapi_DsGetMembershipsRequest1(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsGetMembershipsRequest1
*r
)
4845 uint32_t cntr_info_array_1
;
4846 ndr_print_struct(ndr
, name
, "drsuapi_DsGetMembershipsRequest1");
4848 ndr_print_uint32(ndr
, "count", r
->count
);
4849 ndr_print_ptr(ndr
, "info_array", r
->info_array
);
4851 if (r
->info_array
) {
4852 ndr
->print(ndr
, "%s: ARRAY(%d)", "info_array", (int)r
->count
);
4854 for (cntr_info_array_1
=0;cntr_info_array_1
<r
->count
;cntr_info_array_1
++) {
4856 if (asprintf(&idx_1
, "[%d]", cntr_info_array_1
) != -1) {
4857 ndr_print_ptr(ndr
, "info_array", r
->info_array
[cntr_info_array_1
]);
4859 if (r
->info_array
[cntr_info_array_1
]) {
4860 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr
, "info_array", r
->info_array
[cntr_info_array_1
]);
4869 ndr_print_uint32(ndr
, "flags", r
->flags
);
4870 ndr_print_drsuapi_DsMembershipType(ndr
, "type", r
->type
);
4871 ndr_print_ptr(ndr
, "domain", r
->domain
);
4874 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr
, "domain", r
->domain
);
4880 static enum ndr_err_code
ndr_push_drsuapi_DsGetMembershipsRequest(struct ndr_push
*ndr
, int ndr_flags
, const union drsuapi_DsGetMembershipsRequest
*r
)
4882 if (ndr_flags
& NDR_SCALARS
) {
4883 int level
= ndr_push_get_switch_value(ndr
, r
);
4884 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, level
));
4887 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsRequest1(ndr
, NDR_SCALARS
, &r
->req1
));
4891 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
4894 if (ndr_flags
& NDR_BUFFERS
) {
4895 int level
= ndr_push_get_switch_value(ndr
, r
);
4898 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsRequest1(ndr
, NDR_BUFFERS
, &r
->req1
));
4902 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
4905 return NDR_ERR_SUCCESS
;
4908 static enum ndr_err_code
ndr_pull_drsuapi_DsGetMembershipsRequest(struct ndr_pull
*ndr
, int ndr_flags
, union drsuapi_DsGetMembershipsRequest
*r
)
4912 level
= ndr_pull_get_switch_value(ndr
, r
);
4913 if (ndr_flags
& NDR_SCALARS
) {
4914 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &_level
));
4915 if (_level
!= level
) {
4916 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
4920 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsRequest1(ndr
, NDR_SCALARS
, &r
->req1
));
4924 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
4927 if (ndr_flags
& NDR_BUFFERS
) {
4930 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsRequest1(ndr
, NDR_BUFFERS
, &r
->req1
));
4934 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
4937 return NDR_ERR_SUCCESS
;
4940 _PUBLIC_
void ndr_print_drsuapi_DsGetMembershipsRequest(struct ndr_print
*ndr
, const char *name
, const union drsuapi_DsGetMembershipsRequest
*r
)
4943 level
= ndr_print_get_switch_value(ndr
, r
);
4944 ndr_print_union(ndr
, name
, level
, "drsuapi_DsGetMembershipsRequest");
4947 ndr_print_drsuapi_DsGetMembershipsRequest1(ndr
, "req1", &r
->req1
);
4951 ndr_print_bad_level(ndr
, name
, level
);
4955 static enum ndr_err_code
ndr_push_drsuapi_DsGetNT4ChangeLogRequest1(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsGetNT4ChangeLogRequest1
*r
)
4957 if (ndr_flags
& NDR_SCALARS
) {
4958 NDR_CHECK(ndr_push_align(ndr
, 4));
4959 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown1
));
4960 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown2
));
4961 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
4962 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data
));
4964 if (ndr_flags
& NDR_BUFFERS
) {
4966 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length
));
4967 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, r
->length
));
4970 return NDR_ERR_SUCCESS
;
4973 static enum ndr_err_code
ndr_pull_drsuapi_DsGetNT4ChangeLogRequest1(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsGetNT4ChangeLogRequest1
*r
)
4976 TALLOC_CTX
*_mem_save_data_0
;
4977 if (ndr_flags
& NDR_SCALARS
) {
4978 NDR_CHECK(ndr_pull_align(ndr
, 4));
4979 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown1
));
4980 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown2
));
4981 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length
));
4982 if (r
->length
> 0x00A00000) {
4983 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
4985 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
4987 NDR_PULL_ALLOC(ndr
, r
->data
);
4992 if (ndr_flags
& NDR_BUFFERS
) {
4994 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4995 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
4996 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data
));
4997 NDR_PULL_ALLOC_N(ndr
, r
->data
, ndr_get_array_size(ndr
, &r
->data
));
4998 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, ndr_get_array_size(ndr
, &r
->data
)));
4999 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
5002 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->data
, r
->length
));
5005 return NDR_ERR_SUCCESS
;
5008 _PUBLIC_
void ndr_print_drsuapi_DsGetNT4ChangeLogRequest1(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsGetNT4ChangeLogRequest1
*r
)
5010 ndr_print_struct(ndr
, name
, "drsuapi_DsGetNT4ChangeLogRequest1");
5012 ndr_print_uint32(ndr
, "unknown1", r
->unknown1
);
5013 ndr_print_uint32(ndr
, "unknown2", r
->unknown2
);
5014 ndr_print_uint32(ndr
, "length", r
->length
);
5015 ndr_print_ptr(ndr
, "data", r
->data
);
5018 ndr_print_array_uint8(ndr
, "data", r
->data
, r
->length
);
5024 static enum ndr_err_code
ndr_push_drsuapi_DsGetNT4ChangeLogRequest(struct ndr_push
*ndr
, int ndr_flags
, const union drsuapi_DsGetNT4ChangeLogRequest
*r
)
5026 if (ndr_flags
& NDR_SCALARS
) {
5027 int level
= ndr_push_get_switch_value(ndr
, r
);
5028 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
5031 NDR_CHECK(ndr_push_drsuapi_DsGetNT4ChangeLogRequest1(ndr
, NDR_SCALARS
, &r
->req1
));
5035 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
5038 if (ndr_flags
& NDR_BUFFERS
) {
5039 int level
= ndr_push_get_switch_value(ndr
, r
);
5042 NDR_CHECK(ndr_push_drsuapi_DsGetNT4ChangeLogRequest1(ndr
, NDR_BUFFERS
, &r
->req1
));
5046 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
5049 return NDR_ERR_SUCCESS
;
5052 static enum ndr_err_code
ndr_pull_drsuapi_DsGetNT4ChangeLogRequest(struct ndr_pull
*ndr
, int ndr_flags
, union drsuapi_DsGetNT4ChangeLogRequest
*r
)
5056 level
= ndr_pull_get_switch_value(ndr
, r
);
5057 if (ndr_flags
& NDR_SCALARS
) {
5058 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
5059 if (_level
!= level
) {
5060 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
5064 NDR_CHECK(ndr_pull_drsuapi_DsGetNT4ChangeLogRequest1(ndr
, NDR_SCALARS
, &r
->req1
));
5068 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
5071 if (ndr_flags
& NDR_BUFFERS
) {
5074 NDR_CHECK(ndr_pull_drsuapi_DsGetNT4ChangeLogRequest1(ndr
, NDR_BUFFERS
, &r
->req1
));
5078 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
5081 return NDR_ERR_SUCCESS
;
5084 _PUBLIC_
void ndr_print_drsuapi_DsGetNT4ChangeLogRequest(struct ndr_print
*ndr
, const char *name
, const union drsuapi_DsGetNT4ChangeLogRequest
*r
)
5087 level
= ndr_print_get_switch_value(ndr
, r
);
5088 ndr_print_union(ndr
, name
, level
, "drsuapi_DsGetNT4ChangeLogRequest");
5091 ndr_print_drsuapi_DsGetNT4ChangeLogRequest1(ndr
, "req1", &r
->req1
);
5095 ndr_print_bad_level(ndr
, name
, level
);
5099 static enum ndr_err_code
ndr_push_drsuapi_DsGetNT4ChangeLogInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsGetNT4ChangeLogInfo1
*r
)
5101 if (ndr_flags
& NDR_SCALARS
) {
5102 NDR_CHECK(ndr_push_align(ndr
, 8));
5103 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length1
));
5104 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length2
));
5105 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->unknown1
));
5106 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->time2
));
5107 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->unknown3
));
5108 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->time4
));
5109 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->unknown5
));
5110 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->time6
));
5111 NDR_CHECK(ndr_push_NTSTATUS(ndr
, NDR_SCALARS
, r
->status
));
5112 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data1
));
5113 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data2
));
5115 if (ndr_flags
& NDR_BUFFERS
) {
5117 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length1
));
5118 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data1
, r
->length1
));
5121 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->length2
));
5122 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data2
, r
->length2
));
5125 return NDR_ERR_SUCCESS
;
5128 static enum ndr_err_code
ndr_pull_drsuapi_DsGetNT4ChangeLogInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsGetNT4ChangeLogInfo1
*r
)
5130 uint32_t _ptr_data1
;
5131 TALLOC_CTX
*_mem_save_data1_0
;
5132 uint32_t _ptr_data2
;
5133 TALLOC_CTX
*_mem_save_data2_0
;
5134 if (ndr_flags
& NDR_SCALARS
) {
5135 NDR_CHECK(ndr_pull_align(ndr
, 8));
5136 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length1
));
5137 if (r
->length1
> 0x00A00000) {
5138 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
5140 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->length2
));
5141 if (r
->length2
> 0x00A00000) {
5142 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
5144 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->unknown1
));
5145 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->time2
));
5146 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->unknown3
));
5147 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->time4
));
5148 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->unknown5
));
5149 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->time6
));
5150 NDR_CHECK(ndr_pull_NTSTATUS(ndr
, NDR_SCALARS
, &r
->status
));
5151 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data1
));
5153 NDR_PULL_ALLOC(ndr
, r
->data1
);
5157 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data2
));
5159 NDR_PULL_ALLOC(ndr
, r
->data2
);
5164 if (ndr_flags
& NDR_BUFFERS
) {
5166 _mem_save_data1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5167 NDR_PULL_SET_MEM_CTX(ndr
, r
->data1
, 0);
5168 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data1
));
5169 NDR_PULL_ALLOC_N(ndr
, r
->data1
, ndr_get_array_size(ndr
, &r
->data1
));
5170 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data1
, ndr_get_array_size(ndr
, &r
->data1
)));
5171 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data1_0
, 0);
5174 _mem_save_data2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5175 NDR_PULL_SET_MEM_CTX(ndr
, r
->data2
, 0);
5176 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data2
));
5177 NDR_PULL_ALLOC_N(ndr
, r
->data2
, ndr_get_array_size(ndr
, &r
->data2
));
5178 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data2
, ndr_get_array_size(ndr
, &r
->data2
)));
5179 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data2_0
, 0);
5182 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->data1
, r
->length1
));
5185 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->data2
, r
->length2
));
5188 return NDR_ERR_SUCCESS
;
5191 _PUBLIC_
void ndr_print_drsuapi_DsGetNT4ChangeLogInfo1(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsGetNT4ChangeLogInfo1
*r
)
5193 ndr_print_struct(ndr
, name
, "drsuapi_DsGetNT4ChangeLogInfo1");
5195 ndr_print_uint32(ndr
, "length1", r
->length1
);
5196 ndr_print_uint32(ndr
, "length2", r
->length2
);
5197 ndr_print_hyper(ndr
, "unknown1", r
->unknown1
);
5198 ndr_print_NTTIME(ndr
, "time2", r
->time2
);
5199 ndr_print_hyper(ndr
, "unknown3", r
->unknown3
);
5200 ndr_print_NTTIME(ndr
, "time4", r
->time4
);
5201 ndr_print_hyper(ndr
, "unknown5", r
->unknown5
);
5202 ndr_print_NTTIME(ndr
, "time6", r
->time6
);
5203 ndr_print_NTSTATUS(ndr
, "status", r
->status
);
5204 ndr_print_ptr(ndr
, "data1", r
->data1
);
5207 ndr_print_array_uint8(ndr
, "data1", r
->data1
, r
->length1
);
5210 ndr_print_ptr(ndr
, "data2", r
->data2
);
5213 ndr_print_array_uint8(ndr
, "data2", r
->data2
, r
->length2
);
5219 static enum ndr_err_code
ndr_push_drsuapi_DsGetNT4ChangeLogInfo(struct ndr_push
*ndr
, int ndr_flags
, const union drsuapi_DsGetNT4ChangeLogInfo
*r
)
5221 if (ndr_flags
& NDR_SCALARS
) {
5222 int level
= ndr_push_get_switch_value(ndr
, r
);
5223 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
5226 NDR_CHECK(ndr_push_drsuapi_DsGetNT4ChangeLogInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
5230 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
5233 if (ndr_flags
& NDR_BUFFERS
) {
5234 int level
= ndr_push_get_switch_value(ndr
, r
);
5237 NDR_CHECK(ndr_push_drsuapi_DsGetNT4ChangeLogInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
5241 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
5244 return NDR_ERR_SUCCESS
;
5247 static enum ndr_err_code
ndr_pull_drsuapi_DsGetNT4ChangeLogInfo(struct ndr_pull
*ndr
, int ndr_flags
, union drsuapi_DsGetNT4ChangeLogInfo
*r
)
5251 level
= ndr_pull_get_switch_value(ndr
, r
);
5252 if (ndr_flags
& NDR_SCALARS
) {
5253 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
5254 if (_level
!= level
) {
5255 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
5259 NDR_CHECK(ndr_pull_drsuapi_DsGetNT4ChangeLogInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
5263 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
5266 if (ndr_flags
& NDR_BUFFERS
) {
5269 NDR_CHECK(ndr_pull_drsuapi_DsGetNT4ChangeLogInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
5273 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
5276 return NDR_ERR_SUCCESS
;
5279 _PUBLIC_
void ndr_print_drsuapi_DsGetNT4ChangeLogInfo(struct ndr_print
*ndr
, const char *name
, const union drsuapi_DsGetNT4ChangeLogInfo
*r
)
5282 level
= ndr_print_get_switch_value(ndr
, r
);
5283 ndr_print_union(ndr
, name
, level
, "drsuapi_DsGetNT4ChangeLogInfo");
5286 ndr_print_drsuapi_DsGetNT4ChangeLogInfo1(ndr
, "info1", &r
->info1
);
5290 ndr_print_bad_level(ndr
, name
, level
);
5294 static enum ndr_err_code
ndr_push_drsuapi_DsNameStatus(struct ndr_push
*ndr
, int ndr_flags
, enum drsuapi_DsNameStatus r
)
5296 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
5297 return NDR_ERR_SUCCESS
;
5300 static enum ndr_err_code
ndr_pull_drsuapi_DsNameStatus(struct ndr_pull
*ndr
, int ndr_flags
, enum drsuapi_DsNameStatus
*r
)
5303 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
5305 return NDR_ERR_SUCCESS
;
5308 _PUBLIC_
void ndr_print_drsuapi_DsNameStatus(struct ndr_print
*ndr
, const char *name
, enum drsuapi_DsNameStatus r
)
5310 const char *val
= NULL
;
5313 case DRSUAPI_DS_NAME_STATUS_OK
: val
= "DRSUAPI_DS_NAME_STATUS_OK"; break;
5314 case DRSUAPI_DS_NAME_STATUS_RESOLVE_ERROR
: val
= "DRSUAPI_DS_NAME_STATUS_RESOLVE_ERROR"; break;
5315 case DRSUAPI_DS_NAME_STATUS_NOT_FOUND
: val
= "DRSUAPI_DS_NAME_STATUS_NOT_FOUND"; break;
5316 case DRSUAPI_DS_NAME_STATUS_NOT_UNIQUE
: val
= "DRSUAPI_DS_NAME_STATUS_NOT_UNIQUE"; break;
5317 case DRSUAPI_DS_NAME_STATUS_NO_MAPPING
: val
= "DRSUAPI_DS_NAME_STATUS_NO_MAPPING"; break;
5318 case DRSUAPI_DS_NAME_STATUS_DOMAIN_ONLY
: val
= "DRSUAPI_DS_NAME_STATUS_DOMAIN_ONLY"; break;
5319 case DRSUAPI_DS_NAME_STATUS_NO_SYNTACTICAL_MAPPING
: val
= "DRSUAPI_DS_NAME_STATUS_NO_SYNTACTICAL_MAPPING"; break;
5320 case DRSUAPI_DS_NAME_STATUS_TRUST_REFERRAL
: val
= "DRSUAPI_DS_NAME_STATUS_TRUST_REFERRAL"; break;
5322 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
5325 static enum ndr_err_code
ndr_push_drsuapi_DsNameFlags(struct ndr_push
*ndr
, int ndr_flags
, enum drsuapi_DsNameFlags r
)
5327 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
5328 return NDR_ERR_SUCCESS
;
5331 static enum ndr_err_code
ndr_pull_drsuapi_DsNameFlags(struct ndr_pull
*ndr
, int ndr_flags
, enum drsuapi_DsNameFlags
*r
)
5334 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
5336 return NDR_ERR_SUCCESS
;
5339 _PUBLIC_
void ndr_print_drsuapi_DsNameFlags(struct ndr_print
*ndr
, const char *name
, enum drsuapi_DsNameFlags r
)
5341 const char *val
= NULL
;
5344 case DRSUAPI_DS_NAME_FLAG_NO_FLAGS
: val
= "DRSUAPI_DS_NAME_FLAG_NO_FLAGS"; break;
5345 case DRSUAPI_DS_NAME_FLAG_SYNTACTICAL_ONLY
: val
= "DRSUAPI_DS_NAME_FLAG_SYNTACTICAL_ONLY"; break;
5346 case DRSUAPI_DS_NAME_FLAG_EVAL_AT_DC
: val
= "DRSUAPI_DS_NAME_FLAG_EVAL_AT_DC"; break;
5347 case DRSUAPI_DS_NAME_FLAG_GCVERIFY
: val
= "DRSUAPI_DS_NAME_FLAG_GCVERIFY"; break;
5348 case DRSUAPI_DS_NAME_FLAG_TRUST_REFERRAL
: val
= "DRSUAPI_DS_NAME_FLAG_TRUST_REFERRAL"; break;
5350 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
5353 static enum ndr_err_code
ndr_push_drsuapi_DsNameFormat(struct ndr_push
*ndr
, int ndr_flags
, enum drsuapi_DsNameFormat r
)
5355 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
5356 return NDR_ERR_SUCCESS
;
5359 static enum ndr_err_code
ndr_pull_drsuapi_DsNameFormat(struct ndr_pull
*ndr
, int ndr_flags
, enum drsuapi_DsNameFormat
*r
)
5362 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
5364 return NDR_ERR_SUCCESS
;
5367 _PUBLIC_
void ndr_print_drsuapi_DsNameFormat(struct ndr_print
*ndr
, const char *name
, enum drsuapi_DsNameFormat r
)
5369 const char *val
= NULL
;
5372 case DRSUAPI_DS_NAME_FORMAT_UNKNOWN
: val
= "DRSUAPI_DS_NAME_FORMAT_UNKNOWN"; break;
5373 case DRSUAPI_DS_NAME_FORMAT_FQDN_1779
: val
= "DRSUAPI_DS_NAME_FORMAT_FQDN_1779"; break;
5374 case DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT
: val
= "DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT"; break;
5375 case DRSUAPI_DS_NAME_FORMAT_DISPLAY
: val
= "DRSUAPI_DS_NAME_FORMAT_DISPLAY"; break;
5376 case DRSUAPI_DS_NAME_FORMAT_GUID
: val
= "DRSUAPI_DS_NAME_FORMAT_GUID"; break;
5377 case DRSUAPI_DS_NAME_FORMAT_CANONICAL
: val
= "DRSUAPI_DS_NAME_FORMAT_CANONICAL"; break;
5378 case DRSUAPI_DS_NAME_FORMAT_USER_PRINCIPAL
: val
= "DRSUAPI_DS_NAME_FORMAT_USER_PRINCIPAL"; break;
5379 case DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX
: val
= "DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX"; break;
5380 case DRSUAPI_DS_NAME_FORMAT_SERVICE_PRINCIPAL
: val
= "DRSUAPI_DS_NAME_FORMAT_SERVICE_PRINCIPAL"; break;
5381 case DRSUAPI_DS_NAME_FORMAT_SID_OR_SID_HISTORY
: val
= "DRSUAPI_DS_NAME_FORMAT_SID_OR_SID_HISTORY"; break;
5382 case DRSUAPI_DS_NAME_FORMAT_DNS_DOMAIN
: val
= "DRSUAPI_DS_NAME_FORMAT_DNS_DOMAIN"; break;
5384 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
5387 static enum ndr_err_code
ndr_push_drsuapi_DsNameString(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsNameString
*r
)
5389 if (ndr_flags
& NDR_SCALARS
) {
5390 NDR_CHECK(ndr_push_align(ndr
, 4));
5391 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->str
));
5393 if (ndr_flags
& NDR_BUFFERS
) {
5395 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->str
, CH_UTF16
)));
5396 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5397 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->str
, CH_UTF16
)));
5398 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->str
, ndr_charset_length(r
->str
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5401 return NDR_ERR_SUCCESS
;
5404 static enum ndr_err_code
ndr_pull_drsuapi_DsNameString(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsNameString
*r
)
5407 TALLOC_CTX
*_mem_save_str_0
;
5408 if (ndr_flags
& NDR_SCALARS
) {
5409 NDR_CHECK(ndr_pull_align(ndr
, 4));
5410 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_str
));
5412 NDR_PULL_ALLOC(ndr
, r
->str
);
5417 if (ndr_flags
& NDR_BUFFERS
) {
5419 _mem_save_str_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5420 NDR_PULL_SET_MEM_CTX(ndr
, r
->str
, 0);
5421 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->str
));
5422 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->str
));
5423 if (ndr_get_array_length(ndr
, &r
->str
) > ndr_get_array_size(ndr
, &r
->str
)) {
5424 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->str
), ndr_get_array_length(ndr
, &r
->str
));
5426 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->str
), sizeof(uint16_t)));
5427 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->str
, ndr_get_array_length(ndr
, &r
->str
), sizeof(uint16_t), CH_UTF16
));
5428 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_str_0
, 0);
5431 return NDR_ERR_SUCCESS
;
5434 _PUBLIC_
void ndr_print_drsuapi_DsNameString(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsNameString
*r
)
5436 ndr_print_struct(ndr
, name
, "drsuapi_DsNameString");
5438 ndr_print_ptr(ndr
, "str", r
->str
);
5441 ndr_print_string(ndr
, "str", r
->str
);
5447 static enum ndr_err_code
ndr_push_drsuapi_DsNameRequest1(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsNameRequest1
*r
)
5449 uint32_t cntr_names_1
;
5450 if (ndr_flags
& NDR_SCALARS
) {
5451 NDR_CHECK(ndr_push_align(ndr
, 4));
5452 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->codepage
));
5453 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->language
));
5454 NDR_CHECK(ndr_push_drsuapi_DsNameFlags(ndr
, NDR_SCALARS
, r
->format_flags
));
5455 NDR_CHECK(ndr_push_drsuapi_DsNameFormat(ndr
, NDR_SCALARS
, r
->format_offered
));
5456 NDR_CHECK(ndr_push_drsuapi_DsNameFormat(ndr
, NDR_SCALARS
, r
->format_desired
));
5457 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
5458 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->names
));
5460 if (ndr_flags
& NDR_BUFFERS
) {
5462 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
5463 for (cntr_names_1
= 0; cntr_names_1
< r
->count
; cntr_names_1
++) {
5464 NDR_CHECK(ndr_push_drsuapi_DsNameString(ndr
, NDR_SCALARS
, &r
->names
[cntr_names_1
]));
5466 for (cntr_names_1
= 0; cntr_names_1
< r
->count
; cntr_names_1
++) {
5467 NDR_CHECK(ndr_push_drsuapi_DsNameString(ndr
, NDR_BUFFERS
, &r
->names
[cntr_names_1
]));
5471 return NDR_ERR_SUCCESS
;
5474 static enum ndr_err_code
ndr_pull_drsuapi_DsNameRequest1(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsNameRequest1
*r
)
5476 uint32_t _ptr_names
;
5477 uint32_t cntr_names_1
;
5478 TALLOC_CTX
*_mem_save_names_0
;
5479 TALLOC_CTX
*_mem_save_names_1
;
5480 if (ndr_flags
& NDR_SCALARS
) {
5481 NDR_CHECK(ndr_pull_align(ndr
, 4));
5482 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->codepage
));
5483 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->language
));
5484 NDR_CHECK(ndr_pull_drsuapi_DsNameFlags(ndr
, NDR_SCALARS
, &r
->format_flags
));
5485 NDR_CHECK(ndr_pull_drsuapi_DsNameFormat(ndr
, NDR_SCALARS
, &r
->format_offered
));
5486 NDR_CHECK(ndr_pull_drsuapi_DsNameFormat(ndr
, NDR_SCALARS
, &r
->format_desired
));
5487 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
5488 if (r
->count
< 1 || r
->count
> 10000) {
5489 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
5491 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_names
));
5493 NDR_PULL_ALLOC(ndr
, r
->names
);
5498 if (ndr_flags
& NDR_BUFFERS
) {
5500 _mem_save_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5501 NDR_PULL_SET_MEM_CTX(ndr
, r
->names
, 0);
5502 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->names
));
5503 NDR_PULL_ALLOC_N(ndr
, r
->names
, ndr_get_array_size(ndr
, &r
->names
));
5504 _mem_save_names_1
= NDR_PULL_GET_MEM_CTX(ndr
);
5505 NDR_PULL_SET_MEM_CTX(ndr
, r
->names
, 0);
5506 for (cntr_names_1
= 0; cntr_names_1
< r
->count
; cntr_names_1
++) {
5507 NDR_CHECK(ndr_pull_drsuapi_DsNameString(ndr
, NDR_SCALARS
, &r
->names
[cntr_names_1
]));
5509 for (cntr_names_1
= 0; cntr_names_1
< r
->count
; cntr_names_1
++) {
5510 NDR_CHECK(ndr_pull_drsuapi_DsNameString(ndr
, NDR_BUFFERS
, &r
->names
[cntr_names_1
]));
5512 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_names_1
, 0);
5513 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_names_0
, 0);
5516 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->names
, r
->count
));
5519 return NDR_ERR_SUCCESS
;
5522 _PUBLIC_
void ndr_print_drsuapi_DsNameRequest1(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsNameRequest1
*r
)
5524 uint32_t cntr_names_1
;
5525 ndr_print_struct(ndr
, name
, "drsuapi_DsNameRequest1");
5527 ndr_print_uint32(ndr
, "codepage", r
->codepage
);
5528 ndr_print_uint32(ndr
, "language", r
->language
);
5529 ndr_print_drsuapi_DsNameFlags(ndr
, "format_flags", r
->format_flags
);
5530 ndr_print_drsuapi_DsNameFormat(ndr
, "format_offered", r
->format_offered
);
5531 ndr_print_drsuapi_DsNameFormat(ndr
, "format_desired", r
->format_desired
);
5532 ndr_print_uint32(ndr
, "count", r
->count
);
5533 ndr_print_ptr(ndr
, "names", r
->names
);
5536 ndr
->print(ndr
, "%s: ARRAY(%d)", "names", (int)r
->count
);
5538 for (cntr_names_1
=0;cntr_names_1
<r
->count
;cntr_names_1
++) {
5540 if (asprintf(&idx_1
, "[%d]", cntr_names_1
) != -1) {
5541 ndr_print_drsuapi_DsNameString(ndr
, "names", &r
->names
[cntr_names_1
]);
5551 static enum ndr_err_code
ndr_push_drsuapi_DsNameRequest(struct ndr_push
*ndr
, int ndr_flags
, const union drsuapi_DsNameRequest
*r
)
5553 if (ndr_flags
& NDR_SCALARS
) {
5554 int level
= ndr_push_get_switch_value(ndr
, r
);
5555 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, level
));
5558 NDR_CHECK(ndr_push_drsuapi_DsNameRequest1(ndr
, NDR_SCALARS
, &r
->req1
));
5562 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
5565 if (ndr_flags
& NDR_BUFFERS
) {
5566 int level
= ndr_push_get_switch_value(ndr
, r
);
5569 NDR_CHECK(ndr_push_drsuapi_DsNameRequest1(ndr
, NDR_BUFFERS
, &r
->req1
));
5573 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
5576 return NDR_ERR_SUCCESS
;
5579 static enum ndr_err_code
ndr_pull_drsuapi_DsNameRequest(struct ndr_pull
*ndr
, int ndr_flags
, union drsuapi_DsNameRequest
*r
)
5583 level
= ndr_pull_get_switch_value(ndr
, r
);
5584 if (ndr_flags
& NDR_SCALARS
) {
5585 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &_level
));
5586 if (_level
!= level
) {
5587 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
5591 NDR_CHECK(ndr_pull_drsuapi_DsNameRequest1(ndr
, NDR_SCALARS
, &r
->req1
));
5595 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
5598 if (ndr_flags
& NDR_BUFFERS
) {
5601 NDR_CHECK(ndr_pull_drsuapi_DsNameRequest1(ndr
, NDR_BUFFERS
, &r
->req1
));
5605 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
5608 return NDR_ERR_SUCCESS
;
5611 _PUBLIC_
void ndr_print_drsuapi_DsNameRequest(struct ndr_print
*ndr
, const char *name
, const union drsuapi_DsNameRequest
*r
)
5614 level
= ndr_print_get_switch_value(ndr
, r
);
5615 ndr_print_union(ndr
, name
, level
, "drsuapi_DsNameRequest");
5618 ndr_print_drsuapi_DsNameRequest1(ndr
, "req1", &r
->req1
);
5622 ndr_print_bad_level(ndr
, name
, level
);
5626 static enum ndr_err_code
ndr_push_drsuapi_DsNameInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsNameInfo1
*r
)
5628 if (ndr_flags
& NDR_SCALARS
) {
5629 NDR_CHECK(ndr_push_align(ndr
, 4));
5630 NDR_CHECK(ndr_push_drsuapi_DsNameStatus(ndr
, NDR_SCALARS
, r
->status
));
5631 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dns_domain_name
));
5632 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->result_name
));
5634 if (ndr_flags
& NDR_BUFFERS
) {
5635 if (r
->dns_domain_name
) {
5636 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dns_domain_name
, CH_UTF16
)));
5637 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5638 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dns_domain_name
, CH_UTF16
)));
5639 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
));
5641 if (r
->result_name
) {
5642 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->result_name
, CH_UTF16
)));
5643 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5644 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->result_name
, CH_UTF16
)));
5645 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->result_name
, ndr_charset_length(r
->result_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5648 return NDR_ERR_SUCCESS
;
5651 static enum ndr_err_code
ndr_pull_drsuapi_DsNameInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsNameInfo1
*r
)
5653 uint32_t _ptr_dns_domain_name
;
5654 TALLOC_CTX
*_mem_save_dns_domain_name_0
;
5655 uint32_t _ptr_result_name
;
5656 TALLOC_CTX
*_mem_save_result_name_0
;
5657 if (ndr_flags
& NDR_SCALARS
) {
5658 NDR_CHECK(ndr_pull_align(ndr
, 4));
5659 NDR_CHECK(ndr_pull_drsuapi_DsNameStatus(ndr
, NDR_SCALARS
, &r
->status
));
5660 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dns_domain_name
));
5661 if (_ptr_dns_domain_name
) {
5662 NDR_PULL_ALLOC(ndr
, r
->dns_domain_name
);
5664 r
->dns_domain_name
= NULL
;
5666 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_result_name
));
5667 if (_ptr_result_name
) {
5668 NDR_PULL_ALLOC(ndr
, r
->result_name
);
5670 r
->result_name
= NULL
;
5673 if (ndr_flags
& NDR_BUFFERS
) {
5674 if (r
->dns_domain_name
) {
5675 _mem_save_dns_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5676 NDR_PULL_SET_MEM_CTX(ndr
, r
->dns_domain_name
, 0);
5677 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dns_domain_name
));
5678 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dns_domain_name
));
5679 if (ndr_get_array_length(ndr
, &r
->dns_domain_name
) > ndr_get_array_size(ndr
, &r
->dns_domain_name
)) {
5680 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->dns_domain_name
), ndr_get_array_length(ndr
, &r
->dns_domain_name
));
5682 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dns_domain_name
), sizeof(uint16_t)));
5683 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dns_domain_name
, ndr_get_array_length(ndr
, &r
->dns_domain_name
), sizeof(uint16_t), CH_UTF16
));
5684 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dns_domain_name_0
, 0);
5686 if (r
->result_name
) {
5687 _mem_save_result_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5688 NDR_PULL_SET_MEM_CTX(ndr
, r
->result_name
, 0);
5689 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->result_name
));
5690 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->result_name
));
5691 if (ndr_get_array_length(ndr
, &r
->result_name
) > ndr_get_array_size(ndr
, &r
->result_name
)) {
5692 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->result_name
), ndr_get_array_length(ndr
, &r
->result_name
));
5694 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->result_name
), sizeof(uint16_t)));
5695 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->result_name
, ndr_get_array_length(ndr
, &r
->result_name
), sizeof(uint16_t), CH_UTF16
));
5696 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_result_name_0
, 0);
5699 return NDR_ERR_SUCCESS
;
5702 _PUBLIC_
void ndr_print_drsuapi_DsNameInfo1(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsNameInfo1
*r
)
5704 ndr_print_struct(ndr
, name
, "drsuapi_DsNameInfo1");
5706 ndr_print_drsuapi_DsNameStatus(ndr
, "status", r
->status
);
5707 ndr_print_ptr(ndr
, "dns_domain_name", r
->dns_domain_name
);
5709 if (r
->dns_domain_name
) {
5710 ndr_print_string(ndr
, "dns_domain_name", r
->dns_domain_name
);
5713 ndr_print_ptr(ndr
, "result_name", r
->result_name
);
5715 if (r
->result_name
) {
5716 ndr_print_string(ndr
, "result_name", r
->result_name
);
5722 static enum ndr_err_code
ndr_push_drsuapi_DsNameCtr1(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsNameCtr1
*r
)
5724 uint32_t cntr_array_1
;
5725 if (ndr_flags
& NDR_SCALARS
) {
5726 NDR_CHECK(ndr_push_align(ndr
, 4));
5727 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
5728 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->array
));
5730 if (ndr_flags
& NDR_BUFFERS
) {
5732 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
5733 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
5734 NDR_CHECK(ndr_push_drsuapi_DsNameInfo1(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_1
]));
5736 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
5737 NDR_CHECK(ndr_push_drsuapi_DsNameInfo1(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_1
]));
5741 return NDR_ERR_SUCCESS
;
5744 static enum ndr_err_code
ndr_pull_drsuapi_DsNameCtr1(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsNameCtr1
*r
)
5746 uint32_t _ptr_array
;
5747 uint32_t cntr_array_1
;
5748 TALLOC_CTX
*_mem_save_array_0
;
5749 TALLOC_CTX
*_mem_save_array_1
;
5750 if (ndr_flags
& NDR_SCALARS
) {
5751 NDR_CHECK(ndr_pull_align(ndr
, 4));
5752 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
5753 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_array
));
5755 NDR_PULL_ALLOC(ndr
, r
->array
);
5760 if (ndr_flags
& NDR_BUFFERS
) {
5762 _mem_save_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5763 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
5764 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->array
));
5765 NDR_PULL_ALLOC_N(ndr
, r
->array
, ndr_get_array_size(ndr
, &r
->array
));
5766 _mem_save_array_1
= NDR_PULL_GET_MEM_CTX(ndr
);
5767 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
5768 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
5769 NDR_CHECK(ndr_pull_drsuapi_DsNameInfo1(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_1
]));
5771 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
5772 NDR_CHECK(ndr_pull_drsuapi_DsNameInfo1(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_1
]));
5774 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_1
, 0);
5775 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_0
, 0);
5778 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->array
, r
->count
));
5781 return NDR_ERR_SUCCESS
;
5784 _PUBLIC_
void ndr_print_drsuapi_DsNameCtr1(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsNameCtr1
*r
)
5786 uint32_t cntr_array_1
;
5787 ndr_print_struct(ndr
, name
, "drsuapi_DsNameCtr1");
5789 ndr_print_uint32(ndr
, "count", r
->count
);
5790 ndr_print_ptr(ndr
, "array", r
->array
);
5793 ndr
->print(ndr
, "%s: ARRAY(%d)", "array", (int)r
->count
);
5795 for (cntr_array_1
=0;cntr_array_1
<r
->count
;cntr_array_1
++) {
5797 if (asprintf(&idx_1
, "[%d]", cntr_array_1
) != -1) {
5798 ndr_print_drsuapi_DsNameInfo1(ndr
, "array", &r
->array
[cntr_array_1
]);
5808 static enum ndr_err_code
ndr_push_drsuapi_DsNameCtr(struct ndr_push
*ndr
, int ndr_flags
, const union drsuapi_DsNameCtr
*r
)
5810 if (ndr_flags
& NDR_SCALARS
) {
5811 int level
= ndr_push_get_switch_value(ndr
, r
);
5812 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, level
));
5815 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->ctr1
));
5819 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
5822 if (ndr_flags
& NDR_BUFFERS
) {
5823 int level
= ndr_push_get_switch_value(ndr
, r
);
5827 NDR_CHECK(ndr_push_drsuapi_DsNameCtr1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->ctr1
));
5832 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
5835 return NDR_ERR_SUCCESS
;
5838 static enum ndr_err_code
ndr_pull_drsuapi_DsNameCtr(struct ndr_pull
*ndr
, int ndr_flags
, union drsuapi_DsNameCtr
*r
)
5842 TALLOC_CTX
*_mem_save_ctr1_0
;
5843 level
= ndr_pull_get_switch_value(ndr
, r
);
5844 if (ndr_flags
& NDR_SCALARS
) {
5845 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &_level
));
5846 if (_level
!= level
) {
5847 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
5852 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_ctr1
));
5854 NDR_PULL_ALLOC(ndr
, r
->ctr1
);
5861 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
5864 if (ndr_flags
& NDR_BUFFERS
) {
5868 _mem_save_ctr1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5869 NDR_PULL_SET_MEM_CTX(ndr
, r
->ctr1
, 0);
5870 NDR_CHECK(ndr_pull_drsuapi_DsNameCtr1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->ctr1
));
5871 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr1_0
, 0);
5876 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
5879 return NDR_ERR_SUCCESS
;
5882 _PUBLIC_
void ndr_print_drsuapi_DsNameCtr(struct ndr_print
*ndr
, const char *name
, const union drsuapi_DsNameCtr
*r
)
5885 level
= ndr_print_get_switch_value(ndr
, r
);
5886 ndr_print_union(ndr
, name
, level
, "drsuapi_DsNameCtr");
5889 ndr_print_ptr(ndr
, "ctr1", r
->ctr1
);
5892 ndr_print_drsuapi_DsNameCtr1(ndr
, "ctr1", r
->ctr1
);
5898 ndr_print_bad_level(ndr
, name
, level
);
5902 static enum ndr_err_code
ndr_push_drsuapi_DsSpnOperation(struct ndr_push
*ndr
, int ndr_flags
, enum drsuapi_DsSpnOperation r
)
5904 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
5905 return NDR_ERR_SUCCESS
;
5908 static enum ndr_err_code
ndr_pull_drsuapi_DsSpnOperation(struct ndr_pull
*ndr
, int ndr_flags
, enum drsuapi_DsSpnOperation
*r
)
5911 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
5913 return NDR_ERR_SUCCESS
;
5916 _PUBLIC_
void ndr_print_drsuapi_DsSpnOperation(struct ndr_print
*ndr
, const char *name
, enum drsuapi_DsSpnOperation r
)
5918 const char *val
= NULL
;
5921 case DRSUAPI_DS_SPN_OPERATION_ADD
: val
= "DRSUAPI_DS_SPN_OPERATION_ADD"; break;
5922 case DRSUAPI_DS_SPN_OPERATION_REPLACE
: val
= "DRSUAPI_DS_SPN_OPERATION_REPLACE"; break;
5923 case DRSUAPI_DS_SPN_OPERATION_DELETE
: val
= "DRSUAPI_DS_SPN_OPERATION_DELETE"; break;
5925 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
5928 static enum ndr_err_code
ndr_push_drsuapi_DsWriteAccountSpnRequest1(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsWriteAccountSpnRequest1
*r
)
5930 uint32_t cntr_spn_names_1
;
5931 if (ndr_flags
& NDR_SCALARS
) {
5932 NDR_CHECK(ndr_push_align(ndr
, 4));
5933 NDR_CHECK(ndr_push_drsuapi_DsSpnOperation(ndr
, NDR_SCALARS
, r
->operation
));
5934 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown1
));
5935 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->object_dn
));
5936 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
5937 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->spn_names
));
5939 if (ndr_flags
& NDR_BUFFERS
) {
5941 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->object_dn
, CH_UTF16
)));
5942 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5943 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->object_dn
, CH_UTF16
)));
5944 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->object_dn
, ndr_charset_length(r
->object_dn
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5947 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
5948 for (cntr_spn_names_1
= 0; cntr_spn_names_1
< r
->count
; cntr_spn_names_1
++) {
5949 NDR_CHECK(ndr_push_drsuapi_DsNameString(ndr
, NDR_SCALARS
, &r
->spn_names
[cntr_spn_names_1
]));
5951 for (cntr_spn_names_1
= 0; cntr_spn_names_1
< r
->count
; cntr_spn_names_1
++) {
5952 NDR_CHECK(ndr_push_drsuapi_DsNameString(ndr
, NDR_BUFFERS
, &r
->spn_names
[cntr_spn_names_1
]));
5956 return NDR_ERR_SUCCESS
;
5959 static enum ndr_err_code
ndr_pull_drsuapi_DsWriteAccountSpnRequest1(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsWriteAccountSpnRequest1
*r
)
5961 uint32_t _ptr_object_dn
;
5962 TALLOC_CTX
*_mem_save_object_dn_0
;
5963 uint32_t _ptr_spn_names
;
5964 uint32_t cntr_spn_names_1
;
5965 TALLOC_CTX
*_mem_save_spn_names_0
;
5966 TALLOC_CTX
*_mem_save_spn_names_1
;
5967 if (ndr_flags
& NDR_SCALARS
) {
5968 NDR_CHECK(ndr_pull_align(ndr
, 4));
5969 NDR_CHECK(ndr_pull_drsuapi_DsSpnOperation(ndr
, NDR_SCALARS
, &r
->operation
));
5970 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown1
));
5971 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_object_dn
));
5972 if (_ptr_object_dn
) {
5973 NDR_PULL_ALLOC(ndr
, r
->object_dn
);
5975 r
->object_dn
= NULL
;
5977 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
5978 if (r
->count
> 10000) {
5979 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
5981 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_spn_names
));
5982 if (_ptr_spn_names
) {
5983 NDR_PULL_ALLOC(ndr
, r
->spn_names
);
5985 r
->spn_names
= NULL
;
5988 if (ndr_flags
& NDR_BUFFERS
) {
5990 _mem_save_object_dn_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5991 NDR_PULL_SET_MEM_CTX(ndr
, r
->object_dn
, 0);
5992 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->object_dn
));
5993 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->object_dn
));
5994 if (ndr_get_array_length(ndr
, &r
->object_dn
) > ndr_get_array_size(ndr
, &r
->object_dn
)) {
5995 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->object_dn
), ndr_get_array_length(ndr
, &r
->object_dn
));
5997 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->object_dn
), sizeof(uint16_t)));
5998 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->object_dn
, ndr_get_array_length(ndr
, &r
->object_dn
), sizeof(uint16_t), CH_UTF16
));
5999 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_object_dn_0
, 0);
6002 _mem_save_spn_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6003 NDR_PULL_SET_MEM_CTX(ndr
, r
->spn_names
, 0);
6004 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->spn_names
));
6005 NDR_PULL_ALLOC_N(ndr
, r
->spn_names
, ndr_get_array_size(ndr
, &r
->spn_names
));
6006 _mem_save_spn_names_1
= NDR_PULL_GET_MEM_CTX(ndr
);
6007 NDR_PULL_SET_MEM_CTX(ndr
, r
->spn_names
, 0);
6008 for (cntr_spn_names_1
= 0; cntr_spn_names_1
< r
->count
; cntr_spn_names_1
++) {
6009 NDR_CHECK(ndr_pull_drsuapi_DsNameString(ndr
, NDR_SCALARS
, &r
->spn_names
[cntr_spn_names_1
]));
6011 for (cntr_spn_names_1
= 0; cntr_spn_names_1
< r
->count
; cntr_spn_names_1
++) {
6012 NDR_CHECK(ndr_pull_drsuapi_DsNameString(ndr
, NDR_BUFFERS
, &r
->spn_names
[cntr_spn_names_1
]));
6014 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_spn_names_1
, 0);
6015 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_spn_names_0
, 0);
6018 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->spn_names
, r
->count
));
6021 return NDR_ERR_SUCCESS
;
6024 _PUBLIC_
void ndr_print_drsuapi_DsWriteAccountSpnRequest1(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsWriteAccountSpnRequest1
*r
)
6026 uint32_t cntr_spn_names_1
;
6027 ndr_print_struct(ndr
, name
, "drsuapi_DsWriteAccountSpnRequest1");
6029 ndr_print_drsuapi_DsSpnOperation(ndr
, "operation", r
->operation
);
6030 ndr_print_uint32(ndr
, "unknown1", r
->unknown1
);
6031 ndr_print_ptr(ndr
, "object_dn", r
->object_dn
);
6034 ndr_print_string(ndr
, "object_dn", r
->object_dn
);
6037 ndr_print_uint32(ndr
, "count", r
->count
);
6038 ndr_print_ptr(ndr
, "spn_names", r
->spn_names
);
6041 ndr
->print(ndr
, "%s: ARRAY(%d)", "spn_names", (int)r
->count
);
6043 for (cntr_spn_names_1
=0;cntr_spn_names_1
<r
->count
;cntr_spn_names_1
++) {
6045 if (asprintf(&idx_1
, "[%d]", cntr_spn_names_1
) != -1) {
6046 ndr_print_drsuapi_DsNameString(ndr
, "spn_names", &r
->spn_names
[cntr_spn_names_1
]);
6056 static enum ndr_err_code
ndr_push_drsuapi_DsWriteAccountSpnRequest(struct ndr_push
*ndr
, int ndr_flags
, const union drsuapi_DsWriteAccountSpnRequest
*r
)
6058 if (ndr_flags
& NDR_SCALARS
) {
6059 int level
= ndr_push_get_switch_value(ndr
, r
);
6060 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, level
));
6063 NDR_CHECK(ndr_push_drsuapi_DsWriteAccountSpnRequest1(ndr
, NDR_SCALARS
, &r
->req1
));
6067 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
6070 if (ndr_flags
& NDR_BUFFERS
) {
6071 int level
= ndr_push_get_switch_value(ndr
, r
);
6074 NDR_CHECK(ndr_push_drsuapi_DsWriteAccountSpnRequest1(ndr
, NDR_BUFFERS
, &r
->req1
));
6078 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
6081 return NDR_ERR_SUCCESS
;
6084 static enum ndr_err_code
ndr_pull_drsuapi_DsWriteAccountSpnRequest(struct ndr_pull
*ndr
, int ndr_flags
, union drsuapi_DsWriteAccountSpnRequest
*r
)
6088 level
= ndr_pull_get_switch_value(ndr
, r
);
6089 if (ndr_flags
& NDR_SCALARS
) {
6090 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &_level
));
6091 if (_level
!= level
) {
6092 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
6096 NDR_CHECK(ndr_pull_drsuapi_DsWriteAccountSpnRequest1(ndr
, NDR_SCALARS
, &r
->req1
));
6100 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
6103 if (ndr_flags
& NDR_BUFFERS
) {
6106 NDR_CHECK(ndr_pull_drsuapi_DsWriteAccountSpnRequest1(ndr
, NDR_BUFFERS
, &r
->req1
));
6110 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
6113 return NDR_ERR_SUCCESS
;
6116 _PUBLIC_
void ndr_print_drsuapi_DsWriteAccountSpnRequest(struct ndr_print
*ndr
, const char *name
, const union drsuapi_DsWriteAccountSpnRequest
*r
)
6119 level
= ndr_print_get_switch_value(ndr
, r
);
6120 ndr_print_union(ndr
, name
, level
, "drsuapi_DsWriteAccountSpnRequest");
6123 ndr_print_drsuapi_DsWriteAccountSpnRequest1(ndr
, "req1", &r
->req1
);
6127 ndr_print_bad_level(ndr
, name
, level
);
6131 static enum ndr_err_code
ndr_push_drsuapi_DsWriteAccountSpnResult1(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsWriteAccountSpnResult1
*r
)
6133 if (ndr_flags
& NDR_SCALARS
) {
6134 NDR_CHECK(ndr_push_align(ndr
, 4));
6135 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->status
));
6137 if (ndr_flags
& NDR_BUFFERS
) {
6139 return NDR_ERR_SUCCESS
;
6142 static enum ndr_err_code
ndr_pull_drsuapi_DsWriteAccountSpnResult1(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsWriteAccountSpnResult1
*r
)
6144 if (ndr_flags
& NDR_SCALARS
) {
6145 NDR_CHECK(ndr_pull_align(ndr
, 4));
6146 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->status
));
6148 if (ndr_flags
& NDR_BUFFERS
) {
6150 return NDR_ERR_SUCCESS
;
6153 _PUBLIC_
void ndr_print_drsuapi_DsWriteAccountSpnResult1(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsWriteAccountSpnResult1
*r
)
6155 ndr_print_struct(ndr
, name
, "drsuapi_DsWriteAccountSpnResult1");
6157 ndr_print_WERROR(ndr
, "status", r
->status
);
6161 static enum ndr_err_code
ndr_push_drsuapi_DsWriteAccountSpnResult(struct ndr_push
*ndr
, int ndr_flags
, const union drsuapi_DsWriteAccountSpnResult
*r
)
6163 if (ndr_flags
& NDR_SCALARS
) {
6164 int level
= ndr_push_get_switch_value(ndr
, r
);
6165 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, level
));
6168 NDR_CHECK(ndr_push_drsuapi_DsWriteAccountSpnResult1(ndr
, NDR_SCALARS
, &r
->res1
));
6172 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
6175 if (ndr_flags
& NDR_BUFFERS
) {
6176 int level
= ndr_push_get_switch_value(ndr
, r
);
6182 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
6185 return NDR_ERR_SUCCESS
;
6188 static enum ndr_err_code
ndr_pull_drsuapi_DsWriteAccountSpnResult(struct ndr_pull
*ndr
, int ndr_flags
, union drsuapi_DsWriteAccountSpnResult
*r
)
6192 level
= ndr_pull_get_switch_value(ndr
, r
);
6193 if (ndr_flags
& NDR_SCALARS
) {
6194 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &_level
));
6195 if (_level
!= level
) {
6196 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
6200 NDR_CHECK(ndr_pull_drsuapi_DsWriteAccountSpnResult1(ndr
, NDR_SCALARS
, &r
->res1
));
6204 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
6207 if (ndr_flags
& NDR_BUFFERS
) {
6213 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
6216 return NDR_ERR_SUCCESS
;
6219 _PUBLIC_
void ndr_print_drsuapi_DsWriteAccountSpnResult(struct ndr_print
*ndr
, const char *name
, const union drsuapi_DsWriteAccountSpnResult
*r
)
6222 level
= ndr_print_get_switch_value(ndr
, r
);
6223 ndr_print_union(ndr
, name
, level
, "drsuapi_DsWriteAccountSpnResult");
6226 ndr_print_drsuapi_DsWriteAccountSpnResult1(ndr
, "res1", &r
->res1
);
6230 ndr_print_bad_level(ndr
, name
, level
);
6234 static enum ndr_err_code
ndr_push_drsuapi_DsRemoveDSServerRequest1(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsRemoveDSServerRequest1
*r
)
6236 if (ndr_flags
& NDR_SCALARS
) {
6237 NDR_CHECK(ndr_push_align(ndr
, 4));
6238 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->server_dn
));
6239 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain_dn
));
6240 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->commit
));
6242 if (ndr_flags
& NDR_BUFFERS
) {
6244 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_dn
, CH_UTF16
)));
6245 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6246 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_dn
, CH_UTF16
)));
6247 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->server_dn
, ndr_charset_length(r
->server_dn
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6250 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain_dn
, CH_UTF16
)));
6251 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6252 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain_dn
, CH_UTF16
)));
6253 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain_dn
, ndr_charset_length(r
->domain_dn
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6256 return NDR_ERR_SUCCESS
;
6259 static enum ndr_err_code
ndr_pull_drsuapi_DsRemoveDSServerRequest1(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsRemoveDSServerRequest1
*r
)
6261 uint32_t _ptr_server_dn
;
6262 TALLOC_CTX
*_mem_save_server_dn_0
;
6263 uint32_t _ptr_domain_dn
;
6264 TALLOC_CTX
*_mem_save_domain_dn_0
;
6265 if (ndr_flags
& NDR_SCALARS
) {
6266 NDR_CHECK(ndr_pull_align(ndr
, 4));
6267 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_dn
));
6268 if (_ptr_server_dn
) {
6269 NDR_PULL_ALLOC(ndr
, r
->server_dn
);
6271 r
->server_dn
= NULL
;
6273 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_dn
));
6274 if (_ptr_domain_dn
) {
6275 NDR_PULL_ALLOC(ndr
, r
->domain_dn
);
6277 r
->domain_dn
= NULL
;
6279 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->commit
));
6281 if (ndr_flags
& NDR_BUFFERS
) {
6283 _mem_save_server_dn_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6284 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_dn
, 0);
6285 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->server_dn
));
6286 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->server_dn
));
6287 if (ndr_get_array_length(ndr
, &r
->server_dn
) > ndr_get_array_size(ndr
, &r
->server_dn
)) {
6288 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->server_dn
), ndr_get_array_length(ndr
, &r
->server_dn
));
6290 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->server_dn
), sizeof(uint16_t)));
6291 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->server_dn
, ndr_get_array_length(ndr
, &r
->server_dn
), sizeof(uint16_t), CH_UTF16
));
6292 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_dn_0
, 0);
6295 _mem_save_domain_dn_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6296 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain_dn
, 0);
6297 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain_dn
));
6298 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain_dn
));
6299 if (ndr_get_array_length(ndr
, &r
->domain_dn
) > ndr_get_array_size(ndr
, &r
->domain_dn
)) {
6300 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->domain_dn
), ndr_get_array_length(ndr
, &r
->domain_dn
));
6302 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain_dn
), sizeof(uint16_t)));
6303 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain_dn
, ndr_get_array_length(ndr
, &r
->domain_dn
), sizeof(uint16_t), CH_UTF16
));
6304 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_dn_0
, 0);
6307 return NDR_ERR_SUCCESS
;
6310 _PUBLIC_
void ndr_print_drsuapi_DsRemoveDSServerRequest1(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsRemoveDSServerRequest1
*r
)
6312 ndr_print_struct(ndr
, name
, "drsuapi_DsRemoveDSServerRequest1");
6314 ndr_print_ptr(ndr
, "server_dn", r
->server_dn
);
6317 ndr_print_string(ndr
, "server_dn", r
->server_dn
);
6320 ndr_print_ptr(ndr
, "domain_dn", r
->domain_dn
);
6323 ndr_print_string(ndr
, "domain_dn", r
->domain_dn
);
6326 ndr_print_uint32(ndr
, "commit", r
->commit
);
6330 static enum ndr_err_code
ndr_push_drsuapi_DsRemoveDSServerRequest(struct ndr_push
*ndr
, int ndr_flags
, const union drsuapi_DsRemoveDSServerRequest
*r
)
6332 if (ndr_flags
& NDR_SCALARS
) {
6333 int level
= ndr_push_get_switch_value(ndr
, r
);
6334 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, level
));
6337 NDR_CHECK(ndr_push_drsuapi_DsRemoveDSServerRequest1(ndr
, NDR_SCALARS
, &r
->req1
));
6341 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
6344 if (ndr_flags
& NDR_BUFFERS
) {
6345 int level
= ndr_push_get_switch_value(ndr
, r
);
6348 NDR_CHECK(ndr_push_drsuapi_DsRemoveDSServerRequest1(ndr
, NDR_BUFFERS
, &r
->req1
));
6352 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
6355 return NDR_ERR_SUCCESS
;
6358 static enum ndr_err_code
ndr_pull_drsuapi_DsRemoveDSServerRequest(struct ndr_pull
*ndr
, int ndr_flags
, union drsuapi_DsRemoveDSServerRequest
*r
)
6362 level
= ndr_pull_get_switch_value(ndr
, r
);
6363 if (ndr_flags
& NDR_SCALARS
) {
6364 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &_level
));
6365 if (_level
!= level
) {
6366 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
6370 NDR_CHECK(ndr_pull_drsuapi_DsRemoveDSServerRequest1(ndr
, NDR_SCALARS
, &r
->req1
));
6374 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
6377 if (ndr_flags
& NDR_BUFFERS
) {
6380 NDR_CHECK(ndr_pull_drsuapi_DsRemoveDSServerRequest1(ndr
, NDR_BUFFERS
, &r
->req1
));
6384 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
6387 return NDR_ERR_SUCCESS
;
6390 _PUBLIC_
void ndr_print_drsuapi_DsRemoveDSServerRequest(struct ndr_print
*ndr
, const char *name
, const union drsuapi_DsRemoveDSServerRequest
*r
)
6393 level
= ndr_print_get_switch_value(ndr
, r
);
6394 ndr_print_union(ndr
, name
, level
, "drsuapi_DsRemoveDSServerRequest");
6397 ndr_print_drsuapi_DsRemoveDSServerRequest1(ndr
, "req1", &r
->req1
);
6401 ndr_print_bad_level(ndr
, name
, level
);
6405 static enum ndr_err_code
ndr_push_drsuapi_DsRemoveDSServerResult1(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsRemoveDSServerResult1
*r
)
6407 if (ndr_flags
& NDR_SCALARS
) {
6408 NDR_CHECK(ndr_push_align(ndr
, 4));
6409 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->last_dc_in_domain
));
6411 if (ndr_flags
& NDR_BUFFERS
) {
6413 return NDR_ERR_SUCCESS
;
6416 static enum ndr_err_code
ndr_pull_drsuapi_DsRemoveDSServerResult1(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsRemoveDSServerResult1
*r
)
6418 if (ndr_flags
& NDR_SCALARS
) {
6419 NDR_CHECK(ndr_pull_align(ndr
, 4));
6420 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->last_dc_in_domain
));
6422 if (ndr_flags
& NDR_BUFFERS
) {
6424 return NDR_ERR_SUCCESS
;
6427 _PUBLIC_
void ndr_print_drsuapi_DsRemoveDSServerResult1(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsRemoveDSServerResult1
*r
)
6429 ndr_print_struct(ndr
, name
, "drsuapi_DsRemoveDSServerResult1");
6431 ndr_print_uint32(ndr
, "last_dc_in_domain", r
->last_dc_in_domain
);
6435 static enum ndr_err_code
ndr_push_drsuapi_DsRemoveDSServerResult(struct ndr_push
*ndr
, int ndr_flags
, const union drsuapi_DsRemoveDSServerResult
*r
)
6437 if (ndr_flags
& NDR_SCALARS
) {
6438 int level
= ndr_push_get_switch_value(ndr
, r
);
6439 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, level
));
6442 NDR_CHECK(ndr_push_drsuapi_DsRemoveDSServerResult1(ndr
, NDR_SCALARS
, &r
->res1
));
6446 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
6449 if (ndr_flags
& NDR_BUFFERS
) {
6450 int level
= ndr_push_get_switch_value(ndr
, r
);
6456 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
6459 return NDR_ERR_SUCCESS
;
6462 static enum ndr_err_code
ndr_pull_drsuapi_DsRemoveDSServerResult(struct ndr_pull
*ndr
, int ndr_flags
, union drsuapi_DsRemoveDSServerResult
*r
)
6466 level
= ndr_pull_get_switch_value(ndr
, r
);
6467 if (ndr_flags
& NDR_SCALARS
) {
6468 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &_level
));
6469 if (_level
!= level
) {
6470 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
6474 NDR_CHECK(ndr_pull_drsuapi_DsRemoveDSServerResult1(ndr
, NDR_SCALARS
, &r
->res1
));
6478 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
6481 if (ndr_flags
& NDR_BUFFERS
) {
6487 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
6490 return NDR_ERR_SUCCESS
;
6493 _PUBLIC_
void ndr_print_drsuapi_DsRemoveDSServerResult(struct ndr_print
*ndr
, const char *name
, const union drsuapi_DsRemoveDSServerResult
*r
)
6496 level
= ndr_print_get_switch_value(ndr
, r
);
6497 ndr_print_union(ndr
, name
, level
, "drsuapi_DsRemoveDSServerResult");
6500 ndr_print_drsuapi_DsRemoveDSServerResult1(ndr
, "res1", &r
->res1
);
6504 ndr_print_bad_level(ndr
, name
, level
);
6508 static enum ndr_err_code
ndr_push_drsuapi_DsGetDCInfoRequest1(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsGetDCInfoRequest1
*r
)
6510 if (ndr_flags
& NDR_SCALARS
) {
6511 NDR_CHECK(ndr_push_align(ndr
, 4));
6512 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->domain_name
));
6513 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, r
->level
));
6515 if (ndr_flags
& NDR_BUFFERS
) {
6516 if (r
->domain_name
) {
6517 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain_name
, CH_UTF16
)));
6518 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6519 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->domain_name
, CH_UTF16
)));
6520 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->domain_name
, ndr_charset_length(r
->domain_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6523 return NDR_ERR_SUCCESS
;
6526 static enum ndr_err_code
ndr_pull_drsuapi_DsGetDCInfoRequest1(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsGetDCInfoRequest1
*r
)
6528 uint32_t _ptr_domain_name
;
6529 TALLOC_CTX
*_mem_save_domain_name_0
;
6530 if (ndr_flags
& NDR_SCALARS
) {
6531 NDR_CHECK(ndr_pull_align(ndr
, 4));
6532 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_domain_name
));
6533 if (_ptr_domain_name
) {
6534 NDR_PULL_ALLOC(ndr
, r
->domain_name
);
6536 r
->domain_name
= NULL
;
6538 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &r
->level
));
6540 if (ndr_flags
& NDR_BUFFERS
) {
6541 if (r
->domain_name
) {
6542 _mem_save_domain_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6543 NDR_PULL_SET_MEM_CTX(ndr
, r
->domain_name
, 0);
6544 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->domain_name
));
6545 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->domain_name
));
6546 if (ndr_get_array_length(ndr
, &r
->domain_name
) > ndr_get_array_size(ndr
, &r
->domain_name
)) {
6547 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->domain_name
), ndr_get_array_length(ndr
, &r
->domain_name
));
6549 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->domain_name
), sizeof(uint16_t)));
6550 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->domain_name
, ndr_get_array_length(ndr
, &r
->domain_name
), sizeof(uint16_t), CH_UTF16
));
6551 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_domain_name_0
, 0);
6554 return NDR_ERR_SUCCESS
;
6557 _PUBLIC_
void ndr_print_drsuapi_DsGetDCInfoRequest1(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsGetDCInfoRequest1
*r
)
6559 ndr_print_struct(ndr
, name
, "drsuapi_DsGetDCInfoRequest1");
6561 ndr_print_ptr(ndr
, "domain_name", r
->domain_name
);
6563 if (r
->domain_name
) {
6564 ndr_print_string(ndr
, "domain_name", r
->domain_name
);
6567 ndr_print_int32(ndr
, "level", r
->level
);
6571 static enum ndr_err_code
ndr_push_drsuapi_DsGetDCInfoRequest(struct ndr_push
*ndr
, int ndr_flags
, const union drsuapi_DsGetDCInfoRequest
*r
)
6573 if (ndr_flags
& NDR_SCALARS
) {
6574 int level
= ndr_push_get_switch_value(ndr
, r
);
6575 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, level
));
6578 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoRequest1(ndr
, NDR_SCALARS
, &r
->req1
));
6582 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
6585 if (ndr_flags
& NDR_BUFFERS
) {
6586 int level
= ndr_push_get_switch_value(ndr
, r
);
6589 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoRequest1(ndr
, NDR_BUFFERS
, &r
->req1
));
6593 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
6596 return NDR_ERR_SUCCESS
;
6599 static enum ndr_err_code
ndr_pull_drsuapi_DsGetDCInfoRequest(struct ndr_pull
*ndr
, int ndr_flags
, union drsuapi_DsGetDCInfoRequest
*r
)
6603 level
= ndr_pull_get_switch_value(ndr
, r
);
6604 if (ndr_flags
& NDR_SCALARS
) {
6605 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &_level
));
6606 if (_level
!= level
) {
6607 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
6611 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoRequest1(ndr
, NDR_SCALARS
, &r
->req1
));
6615 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
6618 if (ndr_flags
& NDR_BUFFERS
) {
6621 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoRequest1(ndr
, NDR_BUFFERS
, &r
->req1
));
6625 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
6628 return NDR_ERR_SUCCESS
;
6631 _PUBLIC_
void ndr_print_drsuapi_DsGetDCInfoRequest(struct ndr_print
*ndr
, const char *name
, const union drsuapi_DsGetDCInfoRequest
*r
)
6634 level
= ndr_print_get_switch_value(ndr
, r
);
6635 ndr_print_union(ndr
, name
, level
, "drsuapi_DsGetDCInfoRequest");
6638 ndr_print_drsuapi_DsGetDCInfoRequest1(ndr
, "req1", &r
->req1
);
6642 ndr_print_bad_level(ndr
, name
, level
);
6646 static enum ndr_err_code
ndr_push_drsuapi_DsGetDCInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsGetDCInfo1
*r
)
6648 if (ndr_flags
& NDR_SCALARS
) {
6649 NDR_CHECK(ndr_push_align(ndr
, 4));
6650 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->netbios_name
));
6651 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dns_name
));
6652 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->site_name
));
6653 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->computer_dn
));
6654 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->server_dn
));
6655 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->is_pdc
));
6656 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->is_enabled
));
6658 if (ndr_flags
& NDR_BUFFERS
) {
6659 if (r
->netbios_name
) {
6660 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->netbios_name
, CH_UTF16
)));
6661 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6662 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->netbios_name
, CH_UTF16
)));
6663 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->netbios_name
, ndr_charset_length(r
->netbios_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6666 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dns_name
, CH_UTF16
)));
6667 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6668 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dns_name
, CH_UTF16
)));
6669 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dns_name
, ndr_charset_length(r
->dns_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6672 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->site_name
, CH_UTF16
)));
6673 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6674 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->site_name
, CH_UTF16
)));
6675 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->site_name
, ndr_charset_length(r
->site_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6677 if (r
->computer_dn
) {
6678 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->computer_dn
, CH_UTF16
)));
6679 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6680 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->computer_dn
, CH_UTF16
)));
6681 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->computer_dn
, ndr_charset_length(r
->computer_dn
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6684 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_dn
, CH_UTF16
)));
6685 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6686 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_dn
, CH_UTF16
)));
6687 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->server_dn
, ndr_charset_length(r
->server_dn
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6690 return NDR_ERR_SUCCESS
;
6693 static enum ndr_err_code
ndr_pull_drsuapi_DsGetDCInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsGetDCInfo1
*r
)
6695 uint32_t _ptr_netbios_name
;
6696 TALLOC_CTX
*_mem_save_netbios_name_0
;
6697 uint32_t _ptr_dns_name
;
6698 TALLOC_CTX
*_mem_save_dns_name_0
;
6699 uint32_t _ptr_site_name
;
6700 TALLOC_CTX
*_mem_save_site_name_0
;
6701 uint32_t _ptr_computer_dn
;
6702 TALLOC_CTX
*_mem_save_computer_dn_0
;
6703 uint32_t _ptr_server_dn
;
6704 TALLOC_CTX
*_mem_save_server_dn_0
;
6705 if (ndr_flags
& NDR_SCALARS
) {
6706 NDR_CHECK(ndr_pull_align(ndr
, 4));
6707 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_netbios_name
));
6708 if (_ptr_netbios_name
) {
6709 NDR_PULL_ALLOC(ndr
, r
->netbios_name
);
6711 r
->netbios_name
= NULL
;
6713 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dns_name
));
6714 if (_ptr_dns_name
) {
6715 NDR_PULL_ALLOC(ndr
, r
->dns_name
);
6719 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_site_name
));
6720 if (_ptr_site_name
) {
6721 NDR_PULL_ALLOC(ndr
, r
->site_name
);
6723 r
->site_name
= NULL
;
6725 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_dn
));
6726 if (_ptr_computer_dn
) {
6727 NDR_PULL_ALLOC(ndr
, r
->computer_dn
);
6729 r
->computer_dn
= NULL
;
6731 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_dn
));
6732 if (_ptr_server_dn
) {
6733 NDR_PULL_ALLOC(ndr
, r
->server_dn
);
6735 r
->server_dn
= NULL
;
6737 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->is_pdc
));
6738 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->is_enabled
));
6740 if (ndr_flags
& NDR_BUFFERS
) {
6741 if (r
->netbios_name
) {
6742 _mem_save_netbios_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6743 NDR_PULL_SET_MEM_CTX(ndr
, r
->netbios_name
, 0);
6744 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->netbios_name
));
6745 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->netbios_name
));
6746 if (ndr_get_array_length(ndr
, &r
->netbios_name
) > ndr_get_array_size(ndr
, &r
->netbios_name
)) {
6747 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->netbios_name
), ndr_get_array_length(ndr
, &r
->netbios_name
));
6749 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->netbios_name
), sizeof(uint16_t)));
6750 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->netbios_name
, ndr_get_array_length(ndr
, &r
->netbios_name
), sizeof(uint16_t), CH_UTF16
));
6751 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_netbios_name_0
, 0);
6754 _mem_save_dns_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6755 NDR_PULL_SET_MEM_CTX(ndr
, r
->dns_name
, 0);
6756 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dns_name
));
6757 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dns_name
));
6758 if (ndr_get_array_length(ndr
, &r
->dns_name
) > ndr_get_array_size(ndr
, &r
->dns_name
)) {
6759 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->dns_name
), ndr_get_array_length(ndr
, &r
->dns_name
));
6761 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dns_name
), sizeof(uint16_t)));
6762 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dns_name
, ndr_get_array_length(ndr
, &r
->dns_name
), sizeof(uint16_t), CH_UTF16
));
6763 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dns_name_0
, 0);
6766 _mem_save_site_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6767 NDR_PULL_SET_MEM_CTX(ndr
, r
->site_name
, 0);
6768 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->site_name
));
6769 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->site_name
));
6770 if (ndr_get_array_length(ndr
, &r
->site_name
) > ndr_get_array_size(ndr
, &r
->site_name
)) {
6771 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->site_name
), ndr_get_array_length(ndr
, &r
->site_name
));
6773 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->site_name
), sizeof(uint16_t)));
6774 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->site_name
, ndr_get_array_length(ndr
, &r
->site_name
), sizeof(uint16_t), CH_UTF16
));
6775 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_name_0
, 0);
6777 if (r
->computer_dn
) {
6778 _mem_save_computer_dn_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6779 NDR_PULL_SET_MEM_CTX(ndr
, r
->computer_dn
, 0);
6780 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->computer_dn
));
6781 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->computer_dn
));
6782 if (ndr_get_array_length(ndr
, &r
->computer_dn
) > ndr_get_array_size(ndr
, &r
->computer_dn
)) {
6783 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->computer_dn
), ndr_get_array_length(ndr
, &r
->computer_dn
));
6785 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->computer_dn
), sizeof(uint16_t)));
6786 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->computer_dn
, ndr_get_array_length(ndr
, &r
->computer_dn
), sizeof(uint16_t), CH_UTF16
));
6787 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_dn_0
, 0);
6790 _mem_save_server_dn_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6791 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_dn
, 0);
6792 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->server_dn
));
6793 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->server_dn
));
6794 if (ndr_get_array_length(ndr
, &r
->server_dn
) > ndr_get_array_size(ndr
, &r
->server_dn
)) {
6795 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->server_dn
), ndr_get_array_length(ndr
, &r
->server_dn
));
6797 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->server_dn
), sizeof(uint16_t)));
6798 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->server_dn
, ndr_get_array_length(ndr
, &r
->server_dn
), sizeof(uint16_t), CH_UTF16
));
6799 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_dn_0
, 0);
6802 return NDR_ERR_SUCCESS
;
6805 _PUBLIC_
void ndr_print_drsuapi_DsGetDCInfo1(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsGetDCInfo1
*r
)
6807 ndr_print_struct(ndr
, name
, "drsuapi_DsGetDCInfo1");
6809 ndr_print_ptr(ndr
, "netbios_name", r
->netbios_name
);
6811 if (r
->netbios_name
) {
6812 ndr_print_string(ndr
, "netbios_name", r
->netbios_name
);
6815 ndr_print_ptr(ndr
, "dns_name", r
->dns_name
);
6818 ndr_print_string(ndr
, "dns_name", r
->dns_name
);
6821 ndr_print_ptr(ndr
, "site_name", r
->site_name
);
6824 ndr_print_string(ndr
, "site_name", r
->site_name
);
6827 ndr_print_ptr(ndr
, "computer_dn", r
->computer_dn
);
6829 if (r
->computer_dn
) {
6830 ndr_print_string(ndr
, "computer_dn", r
->computer_dn
);
6833 ndr_print_ptr(ndr
, "server_dn", r
->server_dn
);
6836 ndr_print_string(ndr
, "server_dn", r
->server_dn
);
6839 ndr_print_uint32(ndr
, "is_pdc", r
->is_pdc
);
6840 ndr_print_uint32(ndr
, "is_enabled", r
->is_enabled
);
6844 static enum ndr_err_code
ndr_push_drsuapi_DsGetDCInfoCtr1(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsGetDCInfoCtr1
*r
)
6846 uint32_t cntr_array_1
;
6847 if (ndr_flags
& NDR_SCALARS
) {
6848 NDR_CHECK(ndr_push_align(ndr
, 4));
6849 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
6850 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->array
));
6852 if (ndr_flags
& NDR_BUFFERS
) {
6854 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
6855 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
6856 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfo1(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_1
]));
6858 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
6859 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfo1(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_1
]));
6863 return NDR_ERR_SUCCESS
;
6866 static enum ndr_err_code
ndr_pull_drsuapi_DsGetDCInfoCtr1(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsGetDCInfoCtr1
*r
)
6868 uint32_t _ptr_array
;
6869 uint32_t cntr_array_1
;
6870 TALLOC_CTX
*_mem_save_array_0
;
6871 TALLOC_CTX
*_mem_save_array_1
;
6872 if (ndr_flags
& NDR_SCALARS
) {
6873 NDR_CHECK(ndr_pull_align(ndr
, 4));
6874 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
6875 if (r
->count
> 10000) {
6876 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
6878 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_array
));
6880 NDR_PULL_ALLOC(ndr
, r
->array
);
6885 if (ndr_flags
& NDR_BUFFERS
) {
6887 _mem_save_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6888 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
6889 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->array
));
6890 NDR_PULL_ALLOC_N(ndr
, r
->array
, ndr_get_array_size(ndr
, &r
->array
));
6891 _mem_save_array_1
= NDR_PULL_GET_MEM_CTX(ndr
);
6892 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
6893 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
6894 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfo1(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_1
]));
6896 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
6897 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfo1(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_1
]));
6899 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_1
, 0);
6900 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_0
, 0);
6903 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->array
, r
->count
));
6906 return NDR_ERR_SUCCESS
;
6909 _PUBLIC_
void ndr_print_drsuapi_DsGetDCInfoCtr1(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsGetDCInfoCtr1
*r
)
6911 uint32_t cntr_array_1
;
6912 ndr_print_struct(ndr
, name
, "drsuapi_DsGetDCInfoCtr1");
6914 ndr_print_uint32(ndr
, "count", r
->count
);
6915 ndr_print_ptr(ndr
, "array", r
->array
);
6918 ndr
->print(ndr
, "%s: ARRAY(%d)", "array", (int)r
->count
);
6920 for (cntr_array_1
=0;cntr_array_1
<r
->count
;cntr_array_1
++) {
6922 if (asprintf(&idx_1
, "[%d]", cntr_array_1
) != -1) {
6923 ndr_print_drsuapi_DsGetDCInfo1(ndr
, "array", &r
->array
[cntr_array_1
]);
6933 static enum ndr_err_code
ndr_push_drsuapi_DsGetDCInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsGetDCInfo2
*r
)
6935 if (ndr_flags
& NDR_SCALARS
) {
6936 NDR_CHECK(ndr_push_align(ndr
, 4));
6937 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->netbios_name
));
6938 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dns_name
));
6939 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->site_name
));
6940 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->site_dn
));
6941 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->computer_dn
));
6942 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->server_dn
));
6943 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->ntds_dn
));
6944 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->is_pdc
));
6945 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->is_enabled
));
6946 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->is_gc
));
6947 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->site_guid
));
6948 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->computer_guid
));
6949 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->server_guid
));
6950 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->ntds_guid
));
6952 if (ndr_flags
& NDR_BUFFERS
) {
6953 if (r
->netbios_name
) {
6954 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->netbios_name
, CH_UTF16
)));
6955 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6956 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->netbios_name
, CH_UTF16
)));
6957 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->netbios_name
, ndr_charset_length(r
->netbios_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6960 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dns_name
, CH_UTF16
)));
6961 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6962 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dns_name
, CH_UTF16
)));
6963 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dns_name
, ndr_charset_length(r
->dns_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6966 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->site_name
, CH_UTF16
)));
6967 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6968 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->site_name
, CH_UTF16
)));
6969 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->site_name
, ndr_charset_length(r
->site_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6972 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->site_dn
, CH_UTF16
)));
6973 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6974 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->site_dn
, CH_UTF16
)));
6975 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->site_dn
, ndr_charset_length(r
->site_dn
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6977 if (r
->computer_dn
) {
6978 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->computer_dn
, CH_UTF16
)));
6979 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6980 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->computer_dn
, CH_UTF16
)));
6981 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->computer_dn
, ndr_charset_length(r
->computer_dn
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6984 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_dn
, CH_UTF16
)));
6985 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6986 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_dn
, CH_UTF16
)));
6987 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->server_dn
, ndr_charset_length(r
->server_dn
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6990 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->ntds_dn
, CH_UTF16
)));
6991 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6992 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->ntds_dn
, CH_UTF16
)));
6993 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->ntds_dn
, ndr_charset_length(r
->ntds_dn
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6996 return NDR_ERR_SUCCESS
;
6999 static enum ndr_err_code
ndr_pull_drsuapi_DsGetDCInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsGetDCInfo2
*r
)
7001 uint32_t _ptr_netbios_name
;
7002 TALLOC_CTX
*_mem_save_netbios_name_0
;
7003 uint32_t _ptr_dns_name
;
7004 TALLOC_CTX
*_mem_save_dns_name_0
;
7005 uint32_t _ptr_site_name
;
7006 TALLOC_CTX
*_mem_save_site_name_0
;
7007 uint32_t _ptr_site_dn
;
7008 TALLOC_CTX
*_mem_save_site_dn_0
;
7009 uint32_t _ptr_computer_dn
;
7010 TALLOC_CTX
*_mem_save_computer_dn_0
;
7011 uint32_t _ptr_server_dn
;
7012 TALLOC_CTX
*_mem_save_server_dn_0
;
7013 uint32_t _ptr_ntds_dn
;
7014 TALLOC_CTX
*_mem_save_ntds_dn_0
;
7015 if (ndr_flags
& NDR_SCALARS
) {
7016 NDR_CHECK(ndr_pull_align(ndr
, 4));
7017 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_netbios_name
));
7018 if (_ptr_netbios_name
) {
7019 NDR_PULL_ALLOC(ndr
, r
->netbios_name
);
7021 r
->netbios_name
= NULL
;
7023 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dns_name
));
7024 if (_ptr_dns_name
) {
7025 NDR_PULL_ALLOC(ndr
, r
->dns_name
);
7029 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_site_name
));
7030 if (_ptr_site_name
) {
7031 NDR_PULL_ALLOC(ndr
, r
->site_name
);
7033 r
->site_name
= NULL
;
7035 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_site_dn
));
7037 NDR_PULL_ALLOC(ndr
, r
->site_dn
);
7041 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_dn
));
7042 if (_ptr_computer_dn
) {
7043 NDR_PULL_ALLOC(ndr
, r
->computer_dn
);
7045 r
->computer_dn
= NULL
;
7047 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_dn
));
7048 if (_ptr_server_dn
) {
7049 NDR_PULL_ALLOC(ndr
, r
->server_dn
);
7051 r
->server_dn
= NULL
;
7053 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_ntds_dn
));
7055 NDR_PULL_ALLOC(ndr
, r
->ntds_dn
);
7059 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->is_pdc
));
7060 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->is_enabled
));
7061 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->is_gc
));
7062 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->site_guid
));
7063 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->computer_guid
));
7064 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->server_guid
));
7065 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->ntds_guid
));
7067 if (ndr_flags
& NDR_BUFFERS
) {
7068 if (r
->netbios_name
) {
7069 _mem_save_netbios_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7070 NDR_PULL_SET_MEM_CTX(ndr
, r
->netbios_name
, 0);
7071 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->netbios_name
));
7072 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->netbios_name
));
7073 if (ndr_get_array_length(ndr
, &r
->netbios_name
) > ndr_get_array_size(ndr
, &r
->netbios_name
)) {
7074 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->netbios_name
), ndr_get_array_length(ndr
, &r
->netbios_name
));
7076 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->netbios_name
), sizeof(uint16_t)));
7077 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->netbios_name
, ndr_get_array_length(ndr
, &r
->netbios_name
), sizeof(uint16_t), CH_UTF16
));
7078 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_netbios_name_0
, 0);
7081 _mem_save_dns_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7082 NDR_PULL_SET_MEM_CTX(ndr
, r
->dns_name
, 0);
7083 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dns_name
));
7084 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dns_name
));
7085 if (ndr_get_array_length(ndr
, &r
->dns_name
) > ndr_get_array_size(ndr
, &r
->dns_name
)) {
7086 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->dns_name
), ndr_get_array_length(ndr
, &r
->dns_name
));
7088 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dns_name
), sizeof(uint16_t)));
7089 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dns_name
, ndr_get_array_length(ndr
, &r
->dns_name
), sizeof(uint16_t), CH_UTF16
));
7090 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dns_name_0
, 0);
7093 _mem_save_site_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7094 NDR_PULL_SET_MEM_CTX(ndr
, r
->site_name
, 0);
7095 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->site_name
));
7096 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->site_name
));
7097 if (ndr_get_array_length(ndr
, &r
->site_name
) > ndr_get_array_size(ndr
, &r
->site_name
)) {
7098 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->site_name
), ndr_get_array_length(ndr
, &r
->site_name
));
7100 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->site_name
), sizeof(uint16_t)));
7101 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->site_name
, ndr_get_array_length(ndr
, &r
->site_name
), sizeof(uint16_t), CH_UTF16
));
7102 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_name_0
, 0);
7105 _mem_save_site_dn_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7106 NDR_PULL_SET_MEM_CTX(ndr
, r
->site_dn
, 0);
7107 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->site_dn
));
7108 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->site_dn
));
7109 if (ndr_get_array_length(ndr
, &r
->site_dn
) > ndr_get_array_size(ndr
, &r
->site_dn
)) {
7110 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->site_dn
), ndr_get_array_length(ndr
, &r
->site_dn
));
7112 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->site_dn
), sizeof(uint16_t)));
7113 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->site_dn
, ndr_get_array_length(ndr
, &r
->site_dn
), sizeof(uint16_t), CH_UTF16
));
7114 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_dn_0
, 0);
7116 if (r
->computer_dn
) {
7117 _mem_save_computer_dn_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7118 NDR_PULL_SET_MEM_CTX(ndr
, r
->computer_dn
, 0);
7119 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->computer_dn
));
7120 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->computer_dn
));
7121 if (ndr_get_array_length(ndr
, &r
->computer_dn
) > ndr_get_array_size(ndr
, &r
->computer_dn
)) {
7122 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->computer_dn
), ndr_get_array_length(ndr
, &r
->computer_dn
));
7124 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->computer_dn
), sizeof(uint16_t)));
7125 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->computer_dn
, ndr_get_array_length(ndr
, &r
->computer_dn
), sizeof(uint16_t), CH_UTF16
));
7126 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_dn_0
, 0);
7129 _mem_save_server_dn_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7130 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_dn
, 0);
7131 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->server_dn
));
7132 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->server_dn
));
7133 if (ndr_get_array_length(ndr
, &r
->server_dn
) > ndr_get_array_size(ndr
, &r
->server_dn
)) {
7134 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->server_dn
), ndr_get_array_length(ndr
, &r
->server_dn
));
7136 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->server_dn
), sizeof(uint16_t)));
7137 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->server_dn
, ndr_get_array_length(ndr
, &r
->server_dn
), sizeof(uint16_t), CH_UTF16
));
7138 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_dn_0
, 0);
7141 _mem_save_ntds_dn_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7142 NDR_PULL_SET_MEM_CTX(ndr
, r
->ntds_dn
, 0);
7143 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->ntds_dn
));
7144 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->ntds_dn
));
7145 if (ndr_get_array_length(ndr
, &r
->ntds_dn
) > ndr_get_array_size(ndr
, &r
->ntds_dn
)) {
7146 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->ntds_dn
), ndr_get_array_length(ndr
, &r
->ntds_dn
));
7148 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->ntds_dn
), sizeof(uint16_t)));
7149 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->ntds_dn
, ndr_get_array_length(ndr
, &r
->ntds_dn
), sizeof(uint16_t), CH_UTF16
));
7150 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ntds_dn_0
, 0);
7153 return NDR_ERR_SUCCESS
;
7156 _PUBLIC_
void ndr_print_drsuapi_DsGetDCInfo2(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsGetDCInfo2
*r
)
7158 ndr_print_struct(ndr
, name
, "drsuapi_DsGetDCInfo2");
7160 ndr_print_ptr(ndr
, "netbios_name", r
->netbios_name
);
7162 if (r
->netbios_name
) {
7163 ndr_print_string(ndr
, "netbios_name", r
->netbios_name
);
7166 ndr_print_ptr(ndr
, "dns_name", r
->dns_name
);
7169 ndr_print_string(ndr
, "dns_name", r
->dns_name
);
7172 ndr_print_ptr(ndr
, "site_name", r
->site_name
);
7175 ndr_print_string(ndr
, "site_name", r
->site_name
);
7178 ndr_print_ptr(ndr
, "site_dn", r
->site_dn
);
7181 ndr_print_string(ndr
, "site_dn", r
->site_dn
);
7184 ndr_print_ptr(ndr
, "computer_dn", r
->computer_dn
);
7186 if (r
->computer_dn
) {
7187 ndr_print_string(ndr
, "computer_dn", r
->computer_dn
);
7190 ndr_print_ptr(ndr
, "server_dn", r
->server_dn
);
7193 ndr_print_string(ndr
, "server_dn", r
->server_dn
);
7196 ndr_print_ptr(ndr
, "ntds_dn", r
->ntds_dn
);
7199 ndr_print_string(ndr
, "ntds_dn", r
->ntds_dn
);
7202 ndr_print_uint32(ndr
, "is_pdc", r
->is_pdc
);
7203 ndr_print_uint32(ndr
, "is_enabled", r
->is_enabled
);
7204 ndr_print_uint32(ndr
, "is_gc", r
->is_gc
);
7205 ndr_print_GUID(ndr
, "site_guid", &r
->site_guid
);
7206 ndr_print_GUID(ndr
, "computer_guid", &r
->computer_guid
);
7207 ndr_print_GUID(ndr
, "server_guid", &r
->server_guid
);
7208 ndr_print_GUID(ndr
, "ntds_guid", &r
->ntds_guid
);
7212 static enum ndr_err_code
ndr_push_drsuapi_DsGetDCInfoCtr2(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsGetDCInfoCtr2
*r
)
7214 uint32_t cntr_array_1
;
7215 if (ndr_flags
& NDR_SCALARS
) {
7216 NDR_CHECK(ndr_push_align(ndr
, 4));
7217 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
7218 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->array
));
7220 if (ndr_flags
& NDR_BUFFERS
) {
7222 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
7223 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
7224 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfo2(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_1
]));
7226 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
7227 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfo2(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_1
]));
7231 return NDR_ERR_SUCCESS
;
7234 static enum ndr_err_code
ndr_pull_drsuapi_DsGetDCInfoCtr2(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsGetDCInfoCtr2
*r
)
7236 uint32_t _ptr_array
;
7237 uint32_t cntr_array_1
;
7238 TALLOC_CTX
*_mem_save_array_0
;
7239 TALLOC_CTX
*_mem_save_array_1
;
7240 if (ndr_flags
& NDR_SCALARS
) {
7241 NDR_CHECK(ndr_pull_align(ndr
, 4));
7242 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
7243 if (r
->count
> 10000) {
7244 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
7246 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_array
));
7248 NDR_PULL_ALLOC(ndr
, r
->array
);
7253 if (ndr_flags
& NDR_BUFFERS
) {
7255 _mem_save_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7256 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
7257 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->array
));
7258 NDR_PULL_ALLOC_N(ndr
, r
->array
, ndr_get_array_size(ndr
, &r
->array
));
7259 _mem_save_array_1
= NDR_PULL_GET_MEM_CTX(ndr
);
7260 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
7261 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
7262 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfo2(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_1
]));
7264 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
7265 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfo2(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_1
]));
7267 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_1
, 0);
7268 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_0
, 0);
7271 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->array
, r
->count
));
7274 return NDR_ERR_SUCCESS
;
7277 _PUBLIC_
void ndr_print_drsuapi_DsGetDCInfoCtr2(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsGetDCInfoCtr2
*r
)
7279 uint32_t cntr_array_1
;
7280 ndr_print_struct(ndr
, name
, "drsuapi_DsGetDCInfoCtr2");
7282 ndr_print_uint32(ndr
, "count", r
->count
);
7283 ndr_print_ptr(ndr
, "array", r
->array
);
7286 ndr
->print(ndr
, "%s: ARRAY(%d)", "array", (int)r
->count
);
7288 for (cntr_array_1
=0;cntr_array_1
<r
->count
;cntr_array_1
++) {
7290 if (asprintf(&idx_1
, "[%d]", cntr_array_1
) != -1) {
7291 ndr_print_drsuapi_DsGetDCInfo2(ndr
, "array", &r
->array
[cntr_array_1
]);
7301 static enum ndr_err_code
ndr_push_drsuapi_DsGetDCInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsGetDCInfo3
*r
)
7303 if (ndr_flags
& NDR_SCALARS
) {
7304 NDR_CHECK(ndr_push_align(ndr
, 4));
7305 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->netbios_name
));
7306 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dns_name
));
7307 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->site_name
));
7308 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->site_dn
));
7309 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->computer_dn
));
7310 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->server_dn
));
7311 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->ntds_dn
));
7312 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->is_pdc
));
7313 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->is_enabled
));
7314 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->is_gc
));
7315 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->is_rodc
));
7316 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->site_guid
));
7317 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->computer_guid
));
7318 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->server_guid
));
7319 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->ntds_guid
));
7321 if (ndr_flags
& NDR_BUFFERS
) {
7322 if (r
->netbios_name
) {
7323 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->netbios_name
, CH_UTF16
)));
7324 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7325 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->netbios_name
, CH_UTF16
)));
7326 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->netbios_name
, ndr_charset_length(r
->netbios_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7329 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dns_name
, CH_UTF16
)));
7330 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7331 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dns_name
, CH_UTF16
)));
7332 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->dns_name
, ndr_charset_length(r
->dns_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7335 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->site_name
, CH_UTF16
)));
7336 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7337 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->site_name
, CH_UTF16
)));
7338 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->site_name
, ndr_charset_length(r
->site_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7341 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->site_dn
, CH_UTF16
)));
7342 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7343 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->site_dn
, CH_UTF16
)));
7344 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->site_dn
, ndr_charset_length(r
->site_dn
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7346 if (r
->computer_dn
) {
7347 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->computer_dn
, CH_UTF16
)));
7348 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7349 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->computer_dn
, CH_UTF16
)));
7350 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->computer_dn
, ndr_charset_length(r
->computer_dn
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7353 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_dn
, CH_UTF16
)));
7354 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7355 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_dn
, CH_UTF16
)));
7356 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->server_dn
, ndr_charset_length(r
->server_dn
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7359 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->ntds_dn
, CH_UTF16
)));
7360 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7361 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->ntds_dn
, CH_UTF16
)));
7362 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->ntds_dn
, ndr_charset_length(r
->ntds_dn
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7365 return NDR_ERR_SUCCESS
;
7368 static enum ndr_err_code
ndr_pull_drsuapi_DsGetDCInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsGetDCInfo3
*r
)
7370 uint32_t _ptr_netbios_name
;
7371 TALLOC_CTX
*_mem_save_netbios_name_0
;
7372 uint32_t _ptr_dns_name
;
7373 TALLOC_CTX
*_mem_save_dns_name_0
;
7374 uint32_t _ptr_site_name
;
7375 TALLOC_CTX
*_mem_save_site_name_0
;
7376 uint32_t _ptr_site_dn
;
7377 TALLOC_CTX
*_mem_save_site_dn_0
;
7378 uint32_t _ptr_computer_dn
;
7379 TALLOC_CTX
*_mem_save_computer_dn_0
;
7380 uint32_t _ptr_server_dn
;
7381 TALLOC_CTX
*_mem_save_server_dn_0
;
7382 uint32_t _ptr_ntds_dn
;
7383 TALLOC_CTX
*_mem_save_ntds_dn_0
;
7384 if (ndr_flags
& NDR_SCALARS
) {
7385 NDR_CHECK(ndr_pull_align(ndr
, 4));
7386 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_netbios_name
));
7387 if (_ptr_netbios_name
) {
7388 NDR_PULL_ALLOC(ndr
, r
->netbios_name
);
7390 r
->netbios_name
= NULL
;
7392 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dns_name
));
7393 if (_ptr_dns_name
) {
7394 NDR_PULL_ALLOC(ndr
, r
->dns_name
);
7398 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_site_name
));
7399 if (_ptr_site_name
) {
7400 NDR_PULL_ALLOC(ndr
, r
->site_name
);
7402 r
->site_name
= NULL
;
7404 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_site_dn
));
7406 NDR_PULL_ALLOC(ndr
, r
->site_dn
);
7410 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_computer_dn
));
7411 if (_ptr_computer_dn
) {
7412 NDR_PULL_ALLOC(ndr
, r
->computer_dn
);
7414 r
->computer_dn
= NULL
;
7416 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_dn
));
7417 if (_ptr_server_dn
) {
7418 NDR_PULL_ALLOC(ndr
, r
->server_dn
);
7420 r
->server_dn
= NULL
;
7422 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_ntds_dn
));
7424 NDR_PULL_ALLOC(ndr
, r
->ntds_dn
);
7428 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->is_pdc
));
7429 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->is_enabled
));
7430 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->is_gc
));
7431 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->is_rodc
));
7432 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->site_guid
));
7433 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->computer_guid
));
7434 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->server_guid
));
7435 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->ntds_guid
));
7437 if (ndr_flags
& NDR_BUFFERS
) {
7438 if (r
->netbios_name
) {
7439 _mem_save_netbios_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7440 NDR_PULL_SET_MEM_CTX(ndr
, r
->netbios_name
, 0);
7441 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->netbios_name
));
7442 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->netbios_name
));
7443 if (ndr_get_array_length(ndr
, &r
->netbios_name
) > ndr_get_array_size(ndr
, &r
->netbios_name
)) {
7444 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->netbios_name
), ndr_get_array_length(ndr
, &r
->netbios_name
));
7446 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->netbios_name
), sizeof(uint16_t)));
7447 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->netbios_name
, ndr_get_array_length(ndr
, &r
->netbios_name
), sizeof(uint16_t), CH_UTF16
));
7448 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_netbios_name_0
, 0);
7451 _mem_save_dns_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7452 NDR_PULL_SET_MEM_CTX(ndr
, r
->dns_name
, 0);
7453 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dns_name
));
7454 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dns_name
));
7455 if (ndr_get_array_length(ndr
, &r
->dns_name
) > ndr_get_array_size(ndr
, &r
->dns_name
)) {
7456 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->dns_name
), ndr_get_array_length(ndr
, &r
->dns_name
));
7458 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dns_name
), sizeof(uint16_t)));
7459 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dns_name
, ndr_get_array_length(ndr
, &r
->dns_name
), sizeof(uint16_t), CH_UTF16
));
7460 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dns_name_0
, 0);
7463 _mem_save_site_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7464 NDR_PULL_SET_MEM_CTX(ndr
, r
->site_name
, 0);
7465 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->site_name
));
7466 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->site_name
));
7467 if (ndr_get_array_length(ndr
, &r
->site_name
) > ndr_get_array_size(ndr
, &r
->site_name
)) {
7468 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->site_name
), ndr_get_array_length(ndr
, &r
->site_name
));
7470 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->site_name
), sizeof(uint16_t)));
7471 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->site_name
, ndr_get_array_length(ndr
, &r
->site_name
), sizeof(uint16_t), CH_UTF16
));
7472 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_name_0
, 0);
7475 _mem_save_site_dn_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7476 NDR_PULL_SET_MEM_CTX(ndr
, r
->site_dn
, 0);
7477 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->site_dn
));
7478 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->site_dn
));
7479 if (ndr_get_array_length(ndr
, &r
->site_dn
) > ndr_get_array_size(ndr
, &r
->site_dn
)) {
7480 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->site_dn
), ndr_get_array_length(ndr
, &r
->site_dn
));
7482 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->site_dn
), sizeof(uint16_t)));
7483 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->site_dn
, ndr_get_array_length(ndr
, &r
->site_dn
), sizeof(uint16_t), CH_UTF16
));
7484 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_dn_0
, 0);
7486 if (r
->computer_dn
) {
7487 _mem_save_computer_dn_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7488 NDR_PULL_SET_MEM_CTX(ndr
, r
->computer_dn
, 0);
7489 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->computer_dn
));
7490 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->computer_dn
));
7491 if (ndr_get_array_length(ndr
, &r
->computer_dn
) > ndr_get_array_size(ndr
, &r
->computer_dn
)) {
7492 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->computer_dn
), ndr_get_array_length(ndr
, &r
->computer_dn
));
7494 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->computer_dn
), sizeof(uint16_t)));
7495 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->computer_dn
, ndr_get_array_length(ndr
, &r
->computer_dn
), sizeof(uint16_t), CH_UTF16
));
7496 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_computer_dn_0
, 0);
7499 _mem_save_server_dn_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7500 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_dn
, 0);
7501 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->server_dn
));
7502 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->server_dn
));
7503 if (ndr_get_array_length(ndr
, &r
->server_dn
) > ndr_get_array_size(ndr
, &r
->server_dn
)) {
7504 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->server_dn
), ndr_get_array_length(ndr
, &r
->server_dn
));
7506 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->server_dn
), sizeof(uint16_t)));
7507 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->server_dn
, ndr_get_array_length(ndr
, &r
->server_dn
), sizeof(uint16_t), CH_UTF16
));
7508 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_dn_0
, 0);
7511 _mem_save_ntds_dn_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7512 NDR_PULL_SET_MEM_CTX(ndr
, r
->ntds_dn
, 0);
7513 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->ntds_dn
));
7514 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->ntds_dn
));
7515 if (ndr_get_array_length(ndr
, &r
->ntds_dn
) > ndr_get_array_size(ndr
, &r
->ntds_dn
)) {
7516 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->ntds_dn
), ndr_get_array_length(ndr
, &r
->ntds_dn
));
7518 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->ntds_dn
), sizeof(uint16_t)));
7519 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->ntds_dn
, ndr_get_array_length(ndr
, &r
->ntds_dn
), sizeof(uint16_t), CH_UTF16
));
7520 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ntds_dn_0
, 0);
7523 return NDR_ERR_SUCCESS
;
7526 _PUBLIC_
void ndr_print_drsuapi_DsGetDCInfo3(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsGetDCInfo3
*r
)
7528 ndr_print_struct(ndr
, name
, "drsuapi_DsGetDCInfo3");
7530 ndr_print_ptr(ndr
, "netbios_name", r
->netbios_name
);
7532 if (r
->netbios_name
) {
7533 ndr_print_string(ndr
, "netbios_name", r
->netbios_name
);
7536 ndr_print_ptr(ndr
, "dns_name", r
->dns_name
);
7539 ndr_print_string(ndr
, "dns_name", r
->dns_name
);
7542 ndr_print_ptr(ndr
, "site_name", r
->site_name
);
7545 ndr_print_string(ndr
, "site_name", r
->site_name
);
7548 ndr_print_ptr(ndr
, "site_dn", r
->site_dn
);
7551 ndr_print_string(ndr
, "site_dn", r
->site_dn
);
7554 ndr_print_ptr(ndr
, "computer_dn", r
->computer_dn
);
7556 if (r
->computer_dn
) {
7557 ndr_print_string(ndr
, "computer_dn", r
->computer_dn
);
7560 ndr_print_ptr(ndr
, "server_dn", r
->server_dn
);
7563 ndr_print_string(ndr
, "server_dn", r
->server_dn
);
7566 ndr_print_ptr(ndr
, "ntds_dn", r
->ntds_dn
);
7569 ndr_print_string(ndr
, "ntds_dn", r
->ntds_dn
);
7572 ndr_print_uint32(ndr
, "is_pdc", r
->is_pdc
);
7573 ndr_print_uint32(ndr
, "is_enabled", r
->is_enabled
);
7574 ndr_print_uint32(ndr
, "is_gc", r
->is_gc
);
7575 ndr_print_uint32(ndr
, "is_rodc", r
->is_rodc
);
7576 ndr_print_GUID(ndr
, "site_guid", &r
->site_guid
);
7577 ndr_print_GUID(ndr
, "computer_guid", &r
->computer_guid
);
7578 ndr_print_GUID(ndr
, "server_guid", &r
->server_guid
);
7579 ndr_print_GUID(ndr
, "ntds_guid", &r
->ntds_guid
);
7583 static enum ndr_err_code
ndr_push_drsuapi_DsGetDCInfoCtr3(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsGetDCInfoCtr3
*r
)
7585 uint32_t cntr_array_1
;
7586 if (ndr_flags
& NDR_SCALARS
) {
7587 NDR_CHECK(ndr_push_align(ndr
, 4));
7588 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
7589 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->array
));
7591 if (ndr_flags
& NDR_BUFFERS
) {
7593 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
7594 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
7595 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfo3(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_1
]));
7597 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
7598 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfo3(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_1
]));
7602 return NDR_ERR_SUCCESS
;
7605 static enum ndr_err_code
ndr_pull_drsuapi_DsGetDCInfoCtr3(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsGetDCInfoCtr3
*r
)
7607 uint32_t _ptr_array
;
7608 uint32_t cntr_array_1
;
7609 TALLOC_CTX
*_mem_save_array_0
;
7610 TALLOC_CTX
*_mem_save_array_1
;
7611 if (ndr_flags
& NDR_SCALARS
) {
7612 NDR_CHECK(ndr_pull_align(ndr
, 4));
7613 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
7614 if (r
->count
> 10000) {
7615 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
7617 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_array
));
7619 NDR_PULL_ALLOC(ndr
, r
->array
);
7624 if (ndr_flags
& NDR_BUFFERS
) {
7626 _mem_save_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7627 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
7628 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->array
));
7629 NDR_PULL_ALLOC_N(ndr
, r
->array
, ndr_get_array_size(ndr
, &r
->array
));
7630 _mem_save_array_1
= NDR_PULL_GET_MEM_CTX(ndr
);
7631 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
7632 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
7633 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfo3(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_1
]));
7635 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
7636 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfo3(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_1
]));
7638 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_1
, 0);
7639 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_0
, 0);
7642 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->array
, r
->count
));
7645 return NDR_ERR_SUCCESS
;
7648 _PUBLIC_
void ndr_print_drsuapi_DsGetDCInfoCtr3(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsGetDCInfoCtr3
*r
)
7650 uint32_t cntr_array_1
;
7651 ndr_print_struct(ndr
, name
, "drsuapi_DsGetDCInfoCtr3");
7653 ndr_print_uint32(ndr
, "count", r
->count
);
7654 ndr_print_ptr(ndr
, "array", r
->array
);
7657 ndr
->print(ndr
, "%s: ARRAY(%d)", "array", (int)r
->count
);
7659 for (cntr_array_1
=0;cntr_array_1
<r
->count
;cntr_array_1
++) {
7661 if (asprintf(&idx_1
, "[%d]", cntr_array_1
) != -1) {
7662 ndr_print_drsuapi_DsGetDCInfo3(ndr
, "array", &r
->array
[cntr_array_1
]);
7672 static enum ndr_err_code
ndr_push_drsuapi_DsGetDCConnection01(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsGetDCConnection01
*r
)
7674 if (ndr_flags
& NDR_SCALARS
) {
7675 NDR_CHECK(ndr_push_align(ndr
, 4));
7677 uint32_t _flags_save_ipv4address
= ndr
->flags
;
7678 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_BIGENDIAN
);
7679 NDR_CHECK(ndr_push_ipv4address(ndr
, NDR_SCALARS
, r
->client_ip_address
));
7680 ndr
->flags
= _flags_save_ipv4address
;
7682 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown2
));
7683 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->connection_time
));
7684 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown4
));
7685 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown5
));
7686 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown6
));
7687 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->client_account
));
7689 if (ndr_flags
& NDR_BUFFERS
) {
7690 if (r
->client_account
) {
7691 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client_account
, CH_UTF16
)));
7692 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7693 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client_account
, CH_UTF16
)));
7694 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->client_account
, ndr_charset_length(r
->client_account
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7697 return NDR_ERR_SUCCESS
;
7700 static enum ndr_err_code
ndr_pull_drsuapi_DsGetDCConnection01(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsGetDCConnection01
*r
)
7702 uint32_t _ptr_client_account
;
7703 TALLOC_CTX
*_mem_save_client_account_0
;
7704 if (ndr_flags
& NDR_SCALARS
) {
7705 NDR_CHECK(ndr_pull_align(ndr
, 4));
7707 uint32_t _flags_save_ipv4address
= ndr
->flags
;
7708 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_BIGENDIAN
);
7709 NDR_CHECK(ndr_pull_ipv4address(ndr
, NDR_SCALARS
, &r
->client_ip_address
));
7710 ndr
->flags
= _flags_save_ipv4address
;
7712 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown2
));
7713 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->connection_time
));
7714 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown4
));
7715 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown5
));
7716 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown6
));
7717 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_client_account
));
7718 if (_ptr_client_account
) {
7719 NDR_PULL_ALLOC(ndr
, r
->client_account
);
7721 r
->client_account
= NULL
;
7724 if (ndr_flags
& NDR_BUFFERS
) {
7725 if (r
->client_account
) {
7726 _mem_save_client_account_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7727 NDR_PULL_SET_MEM_CTX(ndr
, r
->client_account
, 0);
7728 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->client_account
));
7729 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->client_account
));
7730 if (ndr_get_array_length(ndr
, &r
->client_account
) > ndr_get_array_size(ndr
, &r
->client_account
)) {
7731 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->client_account
), ndr_get_array_length(ndr
, &r
->client_account
));
7733 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->client_account
), sizeof(uint16_t)));
7734 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->client_account
, ndr_get_array_length(ndr
, &r
->client_account
), sizeof(uint16_t), CH_UTF16
));
7735 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_client_account_0
, 0);
7738 return NDR_ERR_SUCCESS
;
7741 _PUBLIC_
void ndr_print_drsuapi_DsGetDCConnection01(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsGetDCConnection01
*r
)
7743 ndr_print_struct(ndr
, name
, "drsuapi_DsGetDCConnection01");
7745 ndr_print_ipv4address(ndr
, "client_ip_address", r
->client_ip_address
);
7746 ndr_print_uint32(ndr
, "unknown2", r
->unknown2
);
7747 ndr_print_uint32(ndr
, "connection_time", r
->connection_time
);
7748 ndr_print_uint32(ndr
, "unknown4", r
->unknown4
);
7749 ndr_print_uint32(ndr
, "unknown5", r
->unknown5
);
7750 ndr_print_uint32(ndr
, "unknown6", r
->unknown6
);
7751 ndr_print_ptr(ndr
, "client_account", r
->client_account
);
7753 if (r
->client_account
) {
7754 ndr_print_string(ndr
, "client_account", r
->client_account
);
7760 static enum ndr_err_code
ndr_push_drsuapi_DsGetDCConnectionCtr01(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsGetDCConnectionCtr01
*r
)
7762 uint32_t cntr_array_1
;
7763 if (ndr_flags
& NDR_SCALARS
) {
7764 NDR_CHECK(ndr_push_align(ndr
, 4));
7765 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
7766 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->array
));
7768 if (ndr_flags
& NDR_BUFFERS
) {
7770 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
7771 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
7772 NDR_CHECK(ndr_push_drsuapi_DsGetDCConnection01(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_1
]));
7774 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
7775 NDR_CHECK(ndr_push_drsuapi_DsGetDCConnection01(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_1
]));
7779 return NDR_ERR_SUCCESS
;
7782 static enum ndr_err_code
ndr_pull_drsuapi_DsGetDCConnectionCtr01(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsGetDCConnectionCtr01
*r
)
7784 uint32_t _ptr_array
;
7785 uint32_t cntr_array_1
;
7786 TALLOC_CTX
*_mem_save_array_0
;
7787 TALLOC_CTX
*_mem_save_array_1
;
7788 if (ndr_flags
& NDR_SCALARS
) {
7789 NDR_CHECK(ndr_pull_align(ndr
, 4));
7790 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
7791 if (r
->count
> 10000) {
7792 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
7794 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_array
));
7796 NDR_PULL_ALLOC(ndr
, r
->array
);
7801 if (ndr_flags
& NDR_BUFFERS
) {
7803 _mem_save_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7804 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
7805 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->array
));
7806 NDR_PULL_ALLOC_N(ndr
, r
->array
, ndr_get_array_size(ndr
, &r
->array
));
7807 _mem_save_array_1
= NDR_PULL_GET_MEM_CTX(ndr
);
7808 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
7809 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
7810 NDR_CHECK(ndr_pull_drsuapi_DsGetDCConnection01(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_1
]));
7812 for (cntr_array_1
= 0; cntr_array_1
< r
->count
; cntr_array_1
++) {
7813 NDR_CHECK(ndr_pull_drsuapi_DsGetDCConnection01(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_1
]));
7815 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_1
, 0);
7816 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_0
, 0);
7819 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->array
, r
->count
));
7822 return NDR_ERR_SUCCESS
;
7825 _PUBLIC_
void ndr_print_drsuapi_DsGetDCConnectionCtr01(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsGetDCConnectionCtr01
*r
)
7827 uint32_t cntr_array_1
;
7828 ndr_print_struct(ndr
, name
, "drsuapi_DsGetDCConnectionCtr01");
7830 ndr_print_uint32(ndr
, "count", r
->count
);
7831 ndr_print_ptr(ndr
, "array", r
->array
);
7834 ndr
->print(ndr
, "%s: ARRAY(%d)", "array", (int)r
->count
);
7836 for (cntr_array_1
=0;cntr_array_1
<r
->count
;cntr_array_1
++) {
7838 if (asprintf(&idx_1
, "[%d]", cntr_array_1
) != -1) {
7839 ndr_print_drsuapi_DsGetDCConnection01(ndr
, "array", &r
->array
[cntr_array_1
]);
7849 static enum ndr_err_code
ndr_push_drsuapi_DsGetDCInfoCtr(struct ndr_push
*ndr
, int ndr_flags
, const union drsuapi_DsGetDCInfoCtr
*r
)
7851 if (ndr_flags
& NDR_SCALARS
) {
7852 int level
= ndr_push_get_switch_value(ndr
, r
);
7853 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, level
));
7855 case DRSUAPI_DC_INFO_CTR_1
: {
7856 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoCtr1(ndr
, NDR_SCALARS
, &r
->ctr1
));
7859 case DRSUAPI_DC_INFO_CTR_2
: {
7860 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoCtr2(ndr
, NDR_SCALARS
, &r
->ctr2
));
7863 case DRSUAPI_DC_INFO_CTR_3
: {
7864 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoCtr3(ndr
, NDR_SCALARS
, &r
->ctr3
));
7867 case DRSUAPI_DC_CONNECTION_CTR_01
: {
7868 NDR_CHECK(ndr_push_drsuapi_DsGetDCConnectionCtr01(ndr
, NDR_SCALARS
, &r
->ctr01
));
7872 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
7875 if (ndr_flags
& NDR_BUFFERS
) {
7876 int level
= ndr_push_get_switch_value(ndr
, r
);
7878 case DRSUAPI_DC_INFO_CTR_1
:
7879 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoCtr1(ndr
, NDR_BUFFERS
, &r
->ctr1
));
7882 case DRSUAPI_DC_INFO_CTR_2
:
7883 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoCtr2(ndr
, NDR_BUFFERS
, &r
->ctr2
));
7886 case DRSUAPI_DC_INFO_CTR_3
:
7887 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoCtr3(ndr
, NDR_BUFFERS
, &r
->ctr3
));
7890 case DRSUAPI_DC_CONNECTION_CTR_01
:
7891 NDR_CHECK(ndr_push_drsuapi_DsGetDCConnectionCtr01(ndr
, NDR_BUFFERS
, &r
->ctr01
));
7895 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
7898 return NDR_ERR_SUCCESS
;
7901 static enum ndr_err_code
ndr_pull_drsuapi_DsGetDCInfoCtr(struct ndr_pull
*ndr
, int ndr_flags
, union drsuapi_DsGetDCInfoCtr
*r
)
7905 level
= ndr_pull_get_switch_value(ndr
, r
);
7906 if (ndr_flags
& NDR_SCALARS
) {
7907 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &_level
));
7908 if (_level
!= level
) {
7909 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
7912 case DRSUAPI_DC_INFO_CTR_1
: {
7913 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoCtr1(ndr
, NDR_SCALARS
, &r
->ctr1
));
7916 case DRSUAPI_DC_INFO_CTR_2
: {
7917 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoCtr2(ndr
, NDR_SCALARS
, &r
->ctr2
));
7920 case DRSUAPI_DC_INFO_CTR_3
: {
7921 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoCtr3(ndr
, NDR_SCALARS
, &r
->ctr3
));
7924 case DRSUAPI_DC_CONNECTION_CTR_01
: {
7925 NDR_CHECK(ndr_pull_drsuapi_DsGetDCConnectionCtr01(ndr
, NDR_SCALARS
, &r
->ctr01
));
7929 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
7932 if (ndr_flags
& NDR_BUFFERS
) {
7934 case DRSUAPI_DC_INFO_CTR_1
:
7935 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoCtr1(ndr
, NDR_BUFFERS
, &r
->ctr1
));
7938 case DRSUAPI_DC_INFO_CTR_2
:
7939 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoCtr2(ndr
, NDR_BUFFERS
, &r
->ctr2
));
7942 case DRSUAPI_DC_INFO_CTR_3
:
7943 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoCtr3(ndr
, NDR_BUFFERS
, &r
->ctr3
));
7946 case DRSUAPI_DC_CONNECTION_CTR_01
:
7947 NDR_CHECK(ndr_pull_drsuapi_DsGetDCConnectionCtr01(ndr
, NDR_BUFFERS
, &r
->ctr01
));
7951 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
7954 return NDR_ERR_SUCCESS
;
7957 _PUBLIC_
void ndr_print_drsuapi_DsGetDCInfoCtr(struct ndr_print
*ndr
, const char *name
, const union drsuapi_DsGetDCInfoCtr
*r
)
7960 level
= ndr_print_get_switch_value(ndr
, r
);
7961 ndr_print_union(ndr
, name
, level
, "drsuapi_DsGetDCInfoCtr");
7963 case DRSUAPI_DC_INFO_CTR_1
:
7964 ndr_print_drsuapi_DsGetDCInfoCtr1(ndr
, "ctr1", &r
->ctr1
);
7967 case DRSUAPI_DC_INFO_CTR_2
:
7968 ndr_print_drsuapi_DsGetDCInfoCtr2(ndr
, "ctr2", &r
->ctr2
);
7971 case DRSUAPI_DC_INFO_CTR_3
:
7972 ndr_print_drsuapi_DsGetDCInfoCtr3(ndr
, "ctr3", &r
->ctr3
);
7975 case DRSUAPI_DC_CONNECTION_CTR_01
:
7976 ndr_print_drsuapi_DsGetDCConnectionCtr01(ndr
, "ctr01", &r
->ctr01
);
7980 ndr_print_bad_level(ndr
, name
, level
);
7984 _PUBLIC_
enum ndr_err_code
ndr_push_drsuapi_DsReplicaObjectListItem(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaObjectListItem
*r
)
7986 if (ndr_flags
& NDR_SCALARS
) {
7987 NDR_CHECK(ndr_push_align(ndr
, 4));
7988 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->next_object
));
7989 NDR_CHECK(ndr_push_drsuapi_DsReplicaObject(ndr
, NDR_SCALARS
, &r
->object
));
7991 if (ndr_flags
& NDR_BUFFERS
) {
7992 if (r
->next_object
) {
7993 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectListItem(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->next_object
));
7995 NDR_CHECK(ndr_push_drsuapi_DsReplicaObject(ndr
, NDR_BUFFERS
, &r
->object
));
7997 return NDR_ERR_SUCCESS
;
8000 _PUBLIC_
enum ndr_err_code
ndr_pull_drsuapi_DsReplicaObjectListItem(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaObjectListItem
*r
)
8002 uint32_t _ptr_next_object
;
8003 TALLOC_CTX
*_mem_save_next_object_0
;
8004 if (ndr_flags
& NDR_SCALARS
) {
8005 NDR_CHECK(ndr_pull_align(ndr
, 4));
8006 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_next_object
));
8007 if (_ptr_next_object
) {
8008 NDR_PULL_ALLOC(ndr
, r
->next_object
);
8010 r
->next_object
= NULL
;
8012 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObject(ndr
, NDR_SCALARS
, &r
->object
));
8014 if (ndr_flags
& NDR_BUFFERS
) {
8015 if (r
->next_object
) {
8016 _mem_save_next_object_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8017 NDR_PULL_SET_MEM_CTX(ndr
, r
->next_object
, 0);
8018 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectListItem(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->next_object
));
8019 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_next_object_0
, 0);
8021 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObject(ndr
, NDR_BUFFERS
, &r
->object
));
8023 return NDR_ERR_SUCCESS
;
8026 static enum ndr_err_code
ndr_push_drsuapi_DsAddEntryRequest2(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsAddEntryRequest2
*r
)
8028 if (ndr_flags
& NDR_SCALARS
) {
8029 NDR_CHECK(ndr_push_align(ndr
, 4));
8030 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectListItem(ndr
, NDR_SCALARS
, &r
->first_object
));
8032 if (ndr_flags
& NDR_BUFFERS
) {
8033 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectListItem(ndr
, NDR_BUFFERS
, &r
->first_object
));
8035 return NDR_ERR_SUCCESS
;
8038 static enum ndr_err_code
ndr_pull_drsuapi_DsAddEntryRequest2(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsAddEntryRequest2
*r
)
8040 if (ndr_flags
& NDR_SCALARS
) {
8041 NDR_CHECK(ndr_pull_align(ndr
, 4));
8042 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectListItem(ndr
, NDR_SCALARS
, &r
->first_object
));
8044 if (ndr_flags
& NDR_BUFFERS
) {
8045 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectListItem(ndr
, NDR_BUFFERS
, &r
->first_object
));
8047 return NDR_ERR_SUCCESS
;
8050 _PUBLIC_
void ndr_print_drsuapi_DsAddEntryRequest2(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsAddEntryRequest2
*r
)
8052 ndr_print_struct(ndr
, name
, "drsuapi_DsAddEntryRequest2");
8054 ndr_print_drsuapi_DsReplicaObjectListItem(ndr
, "first_object", &r
->first_object
);
8058 static enum ndr_err_code
ndr_push_drsuapi_DsAddEntryRequest(struct ndr_push
*ndr
, int ndr_flags
, const union drsuapi_DsAddEntryRequest
*r
)
8060 if (ndr_flags
& NDR_SCALARS
) {
8061 int level
= ndr_push_get_switch_value(ndr
, r
);
8062 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, level
));
8065 NDR_CHECK(ndr_push_drsuapi_DsAddEntryRequest2(ndr
, NDR_SCALARS
, &r
->req2
));
8069 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
8072 if (ndr_flags
& NDR_BUFFERS
) {
8073 int level
= ndr_push_get_switch_value(ndr
, r
);
8076 NDR_CHECK(ndr_push_drsuapi_DsAddEntryRequest2(ndr
, NDR_BUFFERS
, &r
->req2
));
8080 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
8083 return NDR_ERR_SUCCESS
;
8086 static enum ndr_err_code
ndr_pull_drsuapi_DsAddEntryRequest(struct ndr_pull
*ndr
, int ndr_flags
, union drsuapi_DsAddEntryRequest
*r
)
8090 level
= ndr_pull_get_switch_value(ndr
, r
);
8091 if (ndr_flags
& NDR_SCALARS
) {
8092 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &_level
));
8093 if (_level
!= level
) {
8094 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
8098 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryRequest2(ndr
, NDR_SCALARS
, &r
->req2
));
8102 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
8105 if (ndr_flags
& NDR_BUFFERS
) {
8108 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryRequest2(ndr
, NDR_BUFFERS
, &r
->req2
));
8112 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
8115 return NDR_ERR_SUCCESS
;
8118 _PUBLIC_
void ndr_print_drsuapi_DsAddEntryRequest(struct ndr_print
*ndr
, const char *name
, const union drsuapi_DsAddEntryRequest
*r
)
8121 level
= ndr_print_get_switch_value(ndr
, r
);
8122 ndr_print_union(ndr
, name
, level
, "drsuapi_DsAddEntryRequest");
8125 ndr_print_drsuapi_DsAddEntryRequest2(ndr
, "req2", &r
->req2
);
8129 ndr_print_bad_level(ndr
, name
, level
);
8133 static enum ndr_err_code
ndr_push_drsuapi_DsAddEntryErrorInfoX(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsAddEntryErrorInfoX
*r
)
8135 if (ndr_flags
& NDR_SCALARS
) {
8136 NDR_CHECK(ndr_push_align(ndr
, 4));
8137 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown1
));
8138 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->status
));
8139 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown2
));
8140 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->unknown3
));
8142 if (ndr_flags
& NDR_BUFFERS
) {
8144 return NDR_ERR_SUCCESS
;
8147 static enum ndr_err_code
ndr_pull_drsuapi_DsAddEntryErrorInfoX(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsAddEntryErrorInfoX
*r
)
8149 if (ndr_flags
& NDR_SCALARS
) {
8150 NDR_CHECK(ndr_pull_align(ndr
, 4));
8151 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown1
));
8152 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->status
));
8153 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown2
));
8154 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->unknown3
));
8156 if (ndr_flags
& NDR_BUFFERS
) {
8158 return NDR_ERR_SUCCESS
;
8161 _PUBLIC_
void ndr_print_drsuapi_DsAddEntryErrorInfoX(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsAddEntryErrorInfoX
*r
)
8163 ndr_print_struct(ndr
, name
, "drsuapi_DsAddEntryErrorInfoX");
8165 ndr_print_uint32(ndr
, "unknown1", r
->unknown1
);
8166 ndr_print_WERROR(ndr
, "status", r
->status
);
8167 ndr_print_uint32(ndr
, "unknown2", r
->unknown2
);
8168 ndr_print_uint16(ndr
, "unknown3", r
->unknown3
);
8172 static enum ndr_err_code
ndr_push_drsuapi_DsAddEntryExtraErrorBuffer(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsAddEntryExtraErrorBuffer
*r
)
8174 if (ndr_flags
& NDR_SCALARS
) {
8175 NDR_CHECK(ndr_push_align(ndr
, 4));
8176 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
8177 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data
));
8179 if (ndr_flags
& NDR_BUFFERS
) {
8181 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
8182 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->data
, r
->size
));
8185 return NDR_ERR_SUCCESS
;
8188 static enum ndr_err_code
ndr_pull_drsuapi_DsAddEntryExtraErrorBuffer(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsAddEntryExtraErrorBuffer
*r
)
8191 TALLOC_CTX
*_mem_save_data_0
;
8192 if (ndr_flags
& NDR_SCALARS
) {
8193 NDR_CHECK(ndr_pull_align(ndr
, 4));
8194 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
8195 if (r
->size
> 10485760) {
8196 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
8198 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
8200 NDR_PULL_ALLOC(ndr
, r
->data
);
8205 if (ndr_flags
& NDR_BUFFERS
) {
8207 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8208 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
8209 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data
));
8210 NDR_PULL_ALLOC_N(ndr
, r
->data
, ndr_get_array_size(ndr
, &r
->data
));
8211 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->data
, ndr_get_array_size(ndr
, &r
->data
)));
8212 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
8215 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->data
, r
->size
));
8218 return NDR_ERR_SUCCESS
;
8221 _PUBLIC_
void ndr_print_drsuapi_DsAddEntryExtraErrorBuffer(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsAddEntryExtraErrorBuffer
*r
)
8223 ndr_print_struct(ndr
, name
, "drsuapi_DsAddEntryExtraErrorBuffer");
8225 ndr_print_uint32(ndr
, "size", r
->size
);
8226 ndr_print_ptr(ndr
, "data", r
->data
);
8229 ndr_print_array_uint8(ndr
, "data", r
->data
, r
->size
);
8235 static enum ndr_err_code
ndr_push_drsuapi_DsAddEntryExtraError1(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsAddEntryExtraError1
*r
)
8237 if (ndr_flags
& NDR_SCALARS
) {
8238 NDR_CHECK(ndr_push_align(ndr
, 4));
8239 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfoX(ndr
, NDR_SCALARS
, &r
->error
));
8240 NDR_CHECK(ndr_push_drsuapi_DsAttributeId(ndr
, NDR_SCALARS
, r
->attid
));
8241 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown2
));
8242 NDR_CHECK(ndr_push_drsuapi_DsAddEntryExtraErrorBuffer(ndr
, NDR_SCALARS
, &r
->buffer
));
8244 if (ndr_flags
& NDR_BUFFERS
) {
8245 NDR_CHECK(ndr_push_drsuapi_DsAddEntryExtraErrorBuffer(ndr
, NDR_BUFFERS
, &r
->buffer
));
8247 return NDR_ERR_SUCCESS
;
8250 static enum ndr_err_code
ndr_pull_drsuapi_DsAddEntryExtraError1(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsAddEntryExtraError1
*r
)
8252 if (ndr_flags
& NDR_SCALARS
) {
8253 NDR_CHECK(ndr_pull_align(ndr
, 4));
8254 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfoX(ndr
, NDR_SCALARS
, &r
->error
));
8255 NDR_CHECK(ndr_pull_drsuapi_DsAttributeId(ndr
, NDR_SCALARS
, &r
->attid
));
8256 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown2
));
8257 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryExtraErrorBuffer(ndr
, NDR_SCALARS
, &r
->buffer
));
8259 if (ndr_flags
& NDR_BUFFERS
) {
8260 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryExtraErrorBuffer(ndr
, NDR_BUFFERS
, &r
->buffer
));
8262 return NDR_ERR_SUCCESS
;
8265 _PUBLIC_
void ndr_print_drsuapi_DsAddEntryExtraError1(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsAddEntryExtraError1
*r
)
8267 ndr_print_struct(ndr
, name
, "drsuapi_DsAddEntryExtraError1");
8269 ndr_print_drsuapi_DsAddEntryErrorInfoX(ndr
, "error", &r
->error
);
8270 ndr_print_drsuapi_DsAttributeId(ndr
, "attid", r
->attid
);
8271 ndr_print_uint32(ndr
, "unknown2", r
->unknown2
);
8272 ndr_print_drsuapi_DsAddEntryExtraErrorBuffer(ndr
, "buffer", &r
->buffer
);
8276 static enum ndr_err_code
ndr_push_drsuapi_DsAddEntryErrorListItem1(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsAddEntryErrorListItem1
*r
)
8278 if (ndr_flags
& NDR_SCALARS
) {
8279 NDR_CHECK(ndr_push_align(ndr
, 4));
8280 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->next
));
8281 NDR_CHECK(ndr_push_drsuapi_DsAddEntryExtraError1(ndr
, NDR_SCALARS
, &r
->error
));
8283 if (ndr_flags
& NDR_BUFFERS
) {
8285 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorListItem1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->next
));
8287 NDR_CHECK(ndr_push_drsuapi_DsAddEntryExtraError1(ndr
, NDR_BUFFERS
, &r
->error
));
8289 return NDR_ERR_SUCCESS
;
8292 static enum ndr_err_code
ndr_pull_drsuapi_DsAddEntryErrorListItem1(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsAddEntryErrorListItem1
*r
)
8295 TALLOC_CTX
*_mem_save_next_0
;
8296 if (ndr_flags
& NDR_SCALARS
) {
8297 NDR_CHECK(ndr_pull_align(ndr
, 4));
8298 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_next
));
8300 NDR_PULL_ALLOC(ndr
, r
->next
);
8304 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryExtraError1(ndr
, NDR_SCALARS
, &r
->error
));
8306 if (ndr_flags
& NDR_BUFFERS
) {
8308 _mem_save_next_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8309 NDR_PULL_SET_MEM_CTX(ndr
, r
->next
, 0);
8310 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorListItem1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->next
));
8311 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_next_0
, 0);
8313 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryExtraError1(ndr
, NDR_BUFFERS
, &r
->error
));
8315 return NDR_ERR_SUCCESS
;
8318 _PUBLIC_
void ndr_print_drsuapi_DsAddEntryErrorListItem1(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsAddEntryErrorListItem1
*r
)
8320 ndr_print_struct(ndr
, name
, "drsuapi_DsAddEntryErrorListItem1");
8322 ndr_print_ptr(ndr
, "next", r
->next
);
8325 ndr_print_drsuapi_DsAddEntryErrorListItem1(ndr
, "next", r
->next
);
8328 ndr_print_drsuapi_DsAddEntryExtraError1(ndr
, "error", &r
->error
);
8332 static enum ndr_err_code
ndr_push_drsuapi_DsAddEntryErrorInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsAddEntryErrorInfo1
*r
)
8334 if (ndr_flags
& NDR_SCALARS
) {
8335 NDR_CHECK(ndr_push_align(ndr
, 4));
8336 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->id
));
8337 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->status
));
8338 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorListItem1(ndr
, NDR_SCALARS
, &r
->first
));
8340 if (ndr_flags
& NDR_BUFFERS
) {
8342 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->id
));
8344 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorListItem1(ndr
, NDR_BUFFERS
, &r
->first
));
8346 return NDR_ERR_SUCCESS
;
8349 static enum ndr_err_code
ndr_pull_drsuapi_DsAddEntryErrorInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsAddEntryErrorInfo1
*r
)
8352 TALLOC_CTX
*_mem_save_id_0
;
8353 if (ndr_flags
& NDR_SCALARS
) {
8354 NDR_CHECK(ndr_pull_align(ndr
, 4));
8355 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_id
));
8357 NDR_PULL_ALLOC(ndr
, r
->id
);
8361 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->status
));
8362 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorListItem1(ndr
, NDR_SCALARS
, &r
->first
));
8364 if (ndr_flags
& NDR_BUFFERS
) {
8366 _mem_save_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8367 NDR_PULL_SET_MEM_CTX(ndr
, r
->id
, 0);
8368 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->id
));
8369 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_id_0
, 0);
8371 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorListItem1(ndr
, NDR_BUFFERS
, &r
->first
));
8373 return NDR_ERR_SUCCESS
;
8376 _PUBLIC_
void ndr_print_drsuapi_DsAddEntryErrorInfo1(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsAddEntryErrorInfo1
*r
)
8378 ndr_print_struct(ndr
, name
, "drsuapi_DsAddEntryErrorInfo1");
8380 ndr_print_ptr(ndr
, "id", r
->id
);
8383 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr
, "id", r
->id
);
8386 ndr_print_WERROR(ndr
, "status", r
->status
);
8387 ndr_print_drsuapi_DsAddEntryErrorListItem1(ndr
, "first", &r
->first
);
8391 static enum ndr_err_code
ndr_push_drsuapi_DsAddEntryErrorInfo(struct ndr_push
*ndr
, int ndr_flags
, const union drsuapi_DsAddEntryErrorInfo
*r
)
8393 if (ndr_flags
& NDR_SCALARS
) {
8394 int level
= ndr_push_get_switch_value(ndr
, r
);
8395 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
8398 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfo1(ndr
, NDR_SCALARS
, &r
->error1
));
8402 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfoX(ndr
, NDR_SCALARS
, &r
->errorX
));
8406 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfoX(ndr
, NDR_SCALARS
, &r
->errorX
));
8410 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfoX(ndr
, NDR_SCALARS
, &r
->errorX
));
8414 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfoX(ndr
, NDR_SCALARS
, &r
->errorX
));
8418 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
8421 if (ndr_flags
& NDR_BUFFERS
) {
8422 int level
= ndr_push_get_switch_value(ndr
, r
);
8425 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfo1(ndr
, NDR_BUFFERS
, &r
->error1
));
8441 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
8444 return NDR_ERR_SUCCESS
;
8447 static enum ndr_err_code
ndr_pull_drsuapi_DsAddEntryErrorInfo(struct ndr_pull
*ndr
, int ndr_flags
, union drsuapi_DsAddEntryErrorInfo
*r
)
8451 level
= ndr_pull_get_switch_value(ndr
, r
);
8452 if (ndr_flags
& NDR_SCALARS
) {
8453 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
8454 if (_level
!= level
) {
8455 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
8459 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfo1(ndr
, NDR_SCALARS
, &r
->error1
));
8463 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfoX(ndr
, NDR_SCALARS
, &r
->errorX
));
8467 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfoX(ndr
, NDR_SCALARS
, &r
->errorX
));
8471 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfoX(ndr
, NDR_SCALARS
, &r
->errorX
));
8475 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfoX(ndr
, NDR_SCALARS
, &r
->errorX
));
8479 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
8482 if (ndr_flags
& NDR_BUFFERS
) {
8485 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfo1(ndr
, NDR_BUFFERS
, &r
->error1
));
8501 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
8504 return NDR_ERR_SUCCESS
;
8507 _PUBLIC_
void ndr_print_drsuapi_DsAddEntryErrorInfo(struct ndr_print
*ndr
, const char *name
, const union drsuapi_DsAddEntryErrorInfo
*r
)
8510 level
= ndr_print_get_switch_value(ndr
, r
);
8511 ndr_print_union(ndr
, name
, level
, "drsuapi_DsAddEntryErrorInfo");
8514 ndr_print_drsuapi_DsAddEntryErrorInfo1(ndr
, "error1", &r
->error1
);
8518 ndr_print_drsuapi_DsAddEntryErrorInfoX(ndr
, "errorX", &r
->errorX
);
8522 ndr_print_drsuapi_DsAddEntryErrorInfoX(ndr
, "errorX", &r
->errorX
);
8526 ndr_print_drsuapi_DsAddEntryErrorInfoX(ndr
, "errorX", &r
->errorX
);
8530 ndr_print_drsuapi_DsAddEntryErrorInfoX(ndr
, "errorX", &r
->errorX
);
8534 ndr_print_bad_level(ndr
, name
, level
);
8538 static enum ndr_err_code
ndr_push_drsuapi_DsAddEntryError1(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsAddEntryError1
*r
)
8540 if (ndr_flags
& NDR_SCALARS
) {
8541 NDR_CHECK(ndr_push_align(ndr
, 4));
8542 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->status
));
8543 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
8544 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info
));
8546 if (ndr_flags
& NDR_BUFFERS
) {
8548 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->info
, r
->level
));
8549 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info
));
8552 return NDR_ERR_SUCCESS
;
8555 static enum ndr_err_code
ndr_pull_drsuapi_DsAddEntryError1(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsAddEntryError1
*r
)
8558 TALLOC_CTX
*_mem_save_info_0
;
8559 if (ndr_flags
& NDR_SCALARS
) {
8560 NDR_CHECK(ndr_pull_align(ndr
, 4));
8561 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->status
));
8562 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
8563 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
8565 NDR_PULL_ALLOC(ndr
, r
->info
);
8570 if (ndr_flags
& NDR_BUFFERS
) {
8572 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8573 NDR_PULL_SET_MEM_CTX(ndr
, r
->info
, 0);
8574 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->info
, r
->level
));
8575 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info
));
8576 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
8579 return NDR_ERR_SUCCESS
;
8582 _PUBLIC_
void ndr_print_drsuapi_DsAddEntryError1(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsAddEntryError1
*r
)
8584 ndr_print_struct(ndr
, name
, "drsuapi_DsAddEntryError1");
8586 ndr_print_WERROR(ndr
, "status", r
->status
);
8587 ndr_print_uint32(ndr
, "level", r
->level
);
8588 ndr_print_ptr(ndr
, "info", r
->info
);
8591 ndr_print_set_switch_value(ndr
, r
->info
, r
->level
);
8592 ndr_print_drsuapi_DsAddEntryErrorInfo(ndr
, "info", r
->info
);
8598 static enum ndr_err_code
ndr_push_drsuapi_DsAddEntryError(struct ndr_push
*ndr
, int ndr_flags
, const union drsuapi_DsAddEntryError
*r
)
8600 if (ndr_flags
& NDR_SCALARS
) {
8601 int level
= ndr_push_get_switch_value(ndr
, r
);
8602 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
8605 NDR_CHECK(ndr_push_drsuapi_DsAddEntryError1(ndr
, NDR_SCALARS
, &r
->info1
));
8609 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
8612 if (ndr_flags
& NDR_BUFFERS
) {
8613 int level
= ndr_push_get_switch_value(ndr
, r
);
8616 NDR_CHECK(ndr_push_drsuapi_DsAddEntryError1(ndr
, NDR_BUFFERS
, &r
->info1
));
8620 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
8623 return NDR_ERR_SUCCESS
;
8626 static enum ndr_err_code
ndr_pull_drsuapi_DsAddEntryError(struct ndr_pull
*ndr
, int ndr_flags
, union drsuapi_DsAddEntryError
*r
)
8630 level
= ndr_pull_get_switch_value(ndr
, r
);
8631 if (ndr_flags
& NDR_SCALARS
) {
8632 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
8633 if (_level
!= level
) {
8634 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
8638 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryError1(ndr
, NDR_SCALARS
, &r
->info1
));
8642 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
8645 if (ndr_flags
& NDR_BUFFERS
) {
8648 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryError1(ndr
, NDR_BUFFERS
, &r
->info1
));
8652 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
8655 return NDR_ERR_SUCCESS
;
8658 _PUBLIC_
void ndr_print_drsuapi_DsAddEntryError(struct ndr_print
*ndr
, const char *name
, const union drsuapi_DsAddEntryError
*r
)
8661 level
= ndr_print_get_switch_value(ndr
, r
);
8662 ndr_print_union(ndr
, name
, level
, "drsuapi_DsAddEntryError");
8665 ndr_print_drsuapi_DsAddEntryError1(ndr
, "info1", &r
->info1
);
8669 ndr_print_bad_level(ndr
, name
, level
);
8673 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaObjectIdentifier2(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaObjectIdentifier2
*r
)
8675 if (ndr_flags
& NDR_SCALARS
) {
8676 NDR_CHECK(ndr_push_align(ndr
, 4));
8677 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->guid
));
8678 NDR_CHECK(ndr_push_dom_sid28(ndr
, NDR_SCALARS
, &r
->sid
));
8680 if (ndr_flags
& NDR_BUFFERS
) {
8681 NDR_CHECK(ndr_push_dom_sid28(ndr
, NDR_BUFFERS
, &r
->sid
));
8683 return NDR_ERR_SUCCESS
;
8686 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaObjectIdentifier2(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaObjectIdentifier2
*r
)
8688 if (ndr_flags
& NDR_SCALARS
) {
8689 NDR_CHECK(ndr_pull_align(ndr
, 4));
8690 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->guid
));
8691 NDR_CHECK(ndr_pull_dom_sid28(ndr
, NDR_SCALARS
, &r
->sid
));
8693 if (ndr_flags
& NDR_BUFFERS
) {
8694 NDR_CHECK(ndr_pull_dom_sid28(ndr
, NDR_BUFFERS
, &r
->sid
));
8696 return NDR_ERR_SUCCESS
;
8699 _PUBLIC_
void ndr_print_drsuapi_DsReplicaObjectIdentifier2(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaObjectIdentifier2
*r
)
8701 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaObjectIdentifier2");
8703 ndr_print_GUID(ndr
, "guid", &r
->guid
);
8704 ndr_print_dom_sid28(ndr
, "sid", &r
->sid
);
8708 static enum ndr_err_code
ndr_push_drsuapi_DsAddEntryCtr2(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsAddEntryCtr2
*r
)
8710 uint32_t cntr_objects_1
;
8711 if (ndr_flags
& NDR_SCALARS
) {
8712 NDR_CHECK(ndr_push_align(ndr
, 4));
8713 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->id
));
8714 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown1
));
8715 NDR_CHECK(ndr_push_drsuapi_DsAddEntryErrorInfoX(ndr
, NDR_SCALARS
, &r
->error
));
8716 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
8717 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->objects
));
8719 if (ndr_flags
& NDR_BUFFERS
) {
8721 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->id
));
8724 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
8725 for (cntr_objects_1
= 0; cntr_objects_1
< r
->count
; cntr_objects_1
++) {
8726 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier2(ndr
, NDR_SCALARS
, &r
->objects
[cntr_objects_1
]));
8728 for (cntr_objects_1
= 0; cntr_objects_1
< r
->count
; cntr_objects_1
++) {
8729 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier2(ndr
, NDR_BUFFERS
, &r
->objects
[cntr_objects_1
]));
8733 return NDR_ERR_SUCCESS
;
8736 static enum ndr_err_code
ndr_pull_drsuapi_DsAddEntryCtr2(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsAddEntryCtr2
*r
)
8739 TALLOC_CTX
*_mem_save_id_0
;
8740 uint32_t _ptr_objects
;
8741 uint32_t cntr_objects_1
;
8742 TALLOC_CTX
*_mem_save_objects_0
;
8743 TALLOC_CTX
*_mem_save_objects_1
;
8744 if (ndr_flags
& NDR_SCALARS
) {
8745 NDR_CHECK(ndr_pull_align(ndr
, 4));
8746 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_id
));
8748 NDR_PULL_ALLOC(ndr
, r
->id
);
8752 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown1
));
8753 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryErrorInfoX(ndr
, NDR_SCALARS
, &r
->error
));
8754 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
8755 if (r
->count
> 10000) {
8756 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
8758 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_objects
));
8760 NDR_PULL_ALLOC(ndr
, r
->objects
);
8765 if (ndr_flags
& NDR_BUFFERS
) {
8767 _mem_save_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8768 NDR_PULL_SET_MEM_CTX(ndr
, r
->id
, 0);
8769 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->id
));
8770 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_id_0
, 0);
8773 _mem_save_objects_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8774 NDR_PULL_SET_MEM_CTX(ndr
, r
->objects
, 0);
8775 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->objects
));
8776 NDR_PULL_ALLOC_N(ndr
, r
->objects
, ndr_get_array_size(ndr
, &r
->objects
));
8777 _mem_save_objects_1
= NDR_PULL_GET_MEM_CTX(ndr
);
8778 NDR_PULL_SET_MEM_CTX(ndr
, r
->objects
, 0);
8779 for (cntr_objects_1
= 0; cntr_objects_1
< r
->count
; cntr_objects_1
++) {
8780 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier2(ndr
, NDR_SCALARS
, &r
->objects
[cntr_objects_1
]));
8782 for (cntr_objects_1
= 0; cntr_objects_1
< r
->count
; cntr_objects_1
++) {
8783 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier2(ndr
, NDR_BUFFERS
, &r
->objects
[cntr_objects_1
]));
8785 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_objects_1
, 0);
8786 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_objects_0
, 0);
8789 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->objects
, r
->count
));
8792 return NDR_ERR_SUCCESS
;
8795 _PUBLIC_
void ndr_print_drsuapi_DsAddEntryCtr2(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsAddEntryCtr2
*r
)
8797 uint32_t cntr_objects_1
;
8798 ndr_print_struct(ndr
, name
, "drsuapi_DsAddEntryCtr2");
8800 ndr_print_ptr(ndr
, "id", r
->id
);
8803 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr
, "id", r
->id
);
8806 ndr_print_uint32(ndr
, "unknown1", r
->unknown1
);
8807 ndr_print_drsuapi_DsAddEntryErrorInfoX(ndr
, "error", &r
->error
);
8808 ndr_print_uint32(ndr
, "count", r
->count
);
8809 ndr_print_ptr(ndr
, "objects", r
->objects
);
8812 ndr
->print(ndr
, "%s: ARRAY(%d)", "objects", (int)r
->count
);
8814 for (cntr_objects_1
=0;cntr_objects_1
<r
->count
;cntr_objects_1
++) {
8816 if (asprintf(&idx_1
, "[%d]", cntr_objects_1
) != -1) {
8817 ndr_print_drsuapi_DsReplicaObjectIdentifier2(ndr
, "objects", &r
->objects
[cntr_objects_1
]);
8827 static enum ndr_err_code
ndr_push_drsuapi_DsAddEntryCtr3(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsAddEntryCtr3
*r
)
8829 uint32_t cntr_objects_1
;
8830 if (ndr_flags
& NDR_SCALARS
) {
8831 NDR_CHECK(ndr_push_align(ndr
, 4));
8832 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->id
));
8833 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
8834 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->error
));
8835 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
8836 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->objects
));
8838 if (ndr_flags
& NDR_BUFFERS
) {
8840 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->id
));
8843 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->error
, r
->level
));
8844 NDR_CHECK(ndr_push_drsuapi_DsAddEntryError(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->error
));
8847 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
8848 for (cntr_objects_1
= 0; cntr_objects_1
< r
->count
; cntr_objects_1
++) {
8849 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier2(ndr
, NDR_SCALARS
, &r
->objects
[cntr_objects_1
]));
8851 for (cntr_objects_1
= 0; cntr_objects_1
< r
->count
; cntr_objects_1
++) {
8852 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjectIdentifier2(ndr
, NDR_BUFFERS
, &r
->objects
[cntr_objects_1
]));
8856 return NDR_ERR_SUCCESS
;
8859 static enum ndr_err_code
ndr_pull_drsuapi_DsAddEntryCtr3(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsAddEntryCtr3
*r
)
8862 TALLOC_CTX
*_mem_save_id_0
;
8863 uint32_t _ptr_error
;
8864 TALLOC_CTX
*_mem_save_error_0
;
8865 uint32_t _ptr_objects
;
8866 uint32_t cntr_objects_1
;
8867 TALLOC_CTX
*_mem_save_objects_0
;
8868 TALLOC_CTX
*_mem_save_objects_1
;
8869 if (ndr_flags
& NDR_SCALARS
) {
8870 NDR_CHECK(ndr_pull_align(ndr
, 4));
8871 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_id
));
8873 NDR_PULL_ALLOC(ndr
, r
->id
);
8877 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
8878 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_error
));
8880 NDR_PULL_ALLOC(ndr
, r
->error
);
8884 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
8885 if (r
->count
> 10000) {
8886 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
8888 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_objects
));
8890 NDR_PULL_ALLOC(ndr
, r
->objects
);
8895 if (ndr_flags
& NDR_BUFFERS
) {
8897 _mem_save_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8898 NDR_PULL_SET_MEM_CTX(ndr
, r
->id
, 0);
8899 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->id
));
8900 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_id_0
, 0);
8903 _mem_save_error_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8904 NDR_PULL_SET_MEM_CTX(ndr
, r
->error
, 0);
8905 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->error
, r
->level
));
8906 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryError(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->error
));
8907 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_error_0
, 0);
8910 _mem_save_objects_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8911 NDR_PULL_SET_MEM_CTX(ndr
, r
->objects
, 0);
8912 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->objects
));
8913 NDR_PULL_ALLOC_N(ndr
, r
->objects
, ndr_get_array_size(ndr
, &r
->objects
));
8914 _mem_save_objects_1
= NDR_PULL_GET_MEM_CTX(ndr
);
8915 NDR_PULL_SET_MEM_CTX(ndr
, r
->objects
, 0);
8916 for (cntr_objects_1
= 0; cntr_objects_1
< r
->count
; cntr_objects_1
++) {
8917 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier2(ndr
, NDR_SCALARS
, &r
->objects
[cntr_objects_1
]));
8919 for (cntr_objects_1
= 0; cntr_objects_1
< r
->count
; cntr_objects_1
++) {
8920 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjectIdentifier2(ndr
, NDR_BUFFERS
, &r
->objects
[cntr_objects_1
]));
8922 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_objects_1
, 0);
8923 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_objects_0
, 0);
8926 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->objects
, r
->count
));
8929 return NDR_ERR_SUCCESS
;
8932 _PUBLIC_
void ndr_print_drsuapi_DsAddEntryCtr3(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsAddEntryCtr3
*r
)
8934 uint32_t cntr_objects_1
;
8935 ndr_print_struct(ndr
, name
, "drsuapi_DsAddEntryCtr3");
8937 ndr_print_ptr(ndr
, "id", r
->id
);
8940 ndr_print_drsuapi_DsReplicaObjectIdentifier(ndr
, "id", r
->id
);
8943 ndr_print_uint32(ndr
, "level", r
->level
);
8944 ndr_print_ptr(ndr
, "error", r
->error
);
8947 ndr_print_set_switch_value(ndr
, r
->error
, r
->level
);
8948 ndr_print_drsuapi_DsAddEntryError(ndr
, "error", r
->error
);
8951 ndr_print_uint32(ndr
, "count", r
->count
);
8952 ndr_print_ptr(ndr
, "objects", r
->objects
);
8955 ndr
->print(ndr
, "%s: ARRAY(%d)", "objects", (int)r
->count
);
8957 for (cntr_objects_1
=0;cntr_objects_1
<r
->count
;cntr_objects_1
++) {
8959 if (asprintf(&idx_1
, "[%d]", cntr_objects_1
) != -1) {
8960 ndr_print_drsuapi_DsReplicaObjectIdentifier2(ndr
, "objects", &r
->objects
[cntr_objects_1
]);
8970 static enum ndr_err_code
ndr_push_drsuapi_DsAddEntryCtr(struct ndr_push
*ndr
, int ndr_flags
, const union drsuapi_DsAddEntryCtr
*r
)
8972 if (ndr_flags
& NDR_SCALARS
) {
8973 int level
= ndr_push_get_switch_value(ndr
, r
);
8974 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, level
));
8977 NDR_CHECK(ndr_push_drsuapi_DsAddEntryCtr2(ndr
, NDR_SCALARS
, &r
->ctr2
));
8981 NDR_CHECK(ndr_push_drsuapi_DsAddEntryCtr3(ndr
, NDR_SCALARS
, &r
->ctr3
));
8985 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
8988 if (ndr_flags
& NDR_BUFFERS
) {
8989 int level
= ndr_push_get_switch_value(ndr
, r
);
8992 NDR_CHECK(ndr_push_drsuapi_DsAddEntryCtr2(ndr
, NDR_BUFFERS
, &r
->ctr2
));
8996 NDR_CHECK(ndr_push_drsuapi_DsAddEntryCtr3(ndr
, NDR_BUFFERS
, &r
->ctr3
));
9000 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
9003 return NDR_ERR_SUCCESS
;
9006 static enum ndr_err_code
ndr_pull_drsuapi_DsAddEntryCtr(struct ndr_pull
*ndr
, int ndr_flags
, union drsuapi_DsAddEntryCtr
*r
)
9010 level
= ndr_pull_get_switch_value(ndr
, r
);
9011 if (ndr_flags
& NDR_SCALARS
) {
9012 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &_level
));
9013 if (_level
!= level
) {
9014 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
9018 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryCtr2(ndr
, NDR_SCALARS
, &r
->ctr2
));
9022 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryCtr3(ndr
, NDR_SCALARS
, &r
->ctr3
));
9026 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
9029 if (ndr_flags
& NDR_BUFFERS
) {
9032 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryCtr2(ndr
, NDR_BUFFERS
, &r
->ctr2
));
9036 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryCtr3(ndr
, NDR_BUFFERS
, &r
->ctr3
));
9040 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
9043 return NDR_ERR_SUCCESS
;
9046 _PUBLIC_
void ndr_print_drsuapi_DsAddEntryCtr(struct ndr_print
*ndr
, const char *name
, const union drsuapi_DsAddEntryCtr
*r
)
9049 level
= ndr_print_get_switch_value(ndr
, r
);
9050 ndr_print_union(ndr
, name
, level
, "drsuapi_DsAddEntryCtr");
9053 ndr_print_drsuapi_DsAddEntryCtr2(ndr
, "ctr2", &r
->ctr2
);
9057 ndr_print_drsuapi_DsAddEntryCtr3(ndr
, "ctr3", &r
->ctr3
);
9061 ndr_print_bad_level(ndr
, name
, level
);
9065 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaGetInfoLevel(struct ndr_push
*ndr
, int ndr_flags
, enum drsuapi_DsReplicaGetInfoLevel r
)
9067 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
9068 return NDR_ERR_SUCCESS
;
9071 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaGetInfoLevel(struct ndr_pull
*ndr
, int ndr_flags
, enum drsuapi_DsReplicaGetInfoLevel
*r
)
9074 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
9076 return NDR_ERR_SUCCESS
;
9079 _PUBLIC_
void ndr_print_drsuapi_DsReplicaGetInfoLevel(struct ndr_print
*ndr
, const char *name
, enum drsuapi_DsReplicaGetInfoLevel r
)
9081 const char *val
= NULL
;
9084 case DRSUAPI_DS_REPLICA_GET_INFO
: val
= "DRSUAPI_DS_REPLICA_GET_INFO"; break;
9085 case DRSUAPI_DS_REPLICA_GET_INFO2
: val
= "DRSUAPI_DS_REPLICA_GET_INFO2"; break;
9087 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
9090 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaInfoType(struct ndr_push
*ndr
, int ndr_flags
, enum drsuapi_DsReplicaInfoType r
)
9092 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
9093 return NDR_ERR_SUCCESS
;
9096 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaInfoType(struct ndr_pull
*ndr
, int ndr_flags
, enum drsuapi_DsReplicaInfoType
*r
)
9099 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
9101 return NDR_ERR_SUCCESS
;
9104 _PUBLIC_
void ndr_print_drsuapi_DsReplicaInfoType(struct ndr_print
*ndr
, const char *name
, enum drsuapi_DsReplicaInfoType r
)
9106 const char *val
= NULL
;
9109 case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS
: val
= "DRSUAPI_DS_REPLICA_INFO_NEIGHBORS"; break;
9110 case DRSUAPI_DS_REPLICA_INFO_CURSORS
: val
= "DRSUAPI_DS_REPLICA_INFO_CURSORS"; break;
9111 case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA
: val
= "DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA"; break;
9112 case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES
: val
= "DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES"; break;
9113 case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES
: val
= "DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES"; break;
9114 case DRSUAPI_DS_REPLICA_INFO_PENDING_OPS
: val
= "DRSUAPI_DS_REPLICA_INFO_PENDING_OPS"; break;
9115 case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA
: val
= "DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA"; break;
9116 case DRSUAPI_DS_REPLICA_INFO_CURSORS2
: val
= "DRSUAPI_DS_REPLICA_INFO_CURSORS2"; break;
9117 case DRSUAPI_DS_REPLICA_INFO_CURSORS3
: val
= "DRSUAPI_DS_REPLICA_INFO_CURSORS3"; break;
9118 case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2
: val
= "DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2"; break;
9119 case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2
: val
= "DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2"; break;
9120 case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02
: val
= "DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02"; break;
9121 case DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04
: val
= "DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04"; break;
9122 case DRSUAPI_DS_REPLICA_INFO_CURSORS05
: val
= "DRSUAPI_DS_REPLICA_INFO_CURSORS05"; break;
9123 case DRSUAPI_DS_REPLICA_INFO_06
: val
= "DRSUAPI_DS_REPLICA_INFO_06"; break;
9125 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
9128 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaGetInfoRequest1(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaGetInfoRequest1
*r
)
9130 if (ndr_flags
& NDR_SCALARS
) {
9131 NDR_CHECK(ndr_push_align(ndr
, 4));
9132 NDR_CHECK(ndr_push_drsuapi_DsReplicaInfoType(ndr
, NDR_SCALARS
, r
->info_type
));
9133 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->object_dn
));
9134 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->guid1
));
9136 if (ndr_flags
& NDR_BUFFERS
) {
9138 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->object_dn
, CH_UTF16
)));
9139 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9140 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->object_dn
, CH_UTF16
)));
9141 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->object_dn
, ndr_charset_length(r
->object_dn
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9144 return NDR_ERR_SUCCESS
;
9147 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaGetInfoRequest1(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaGetInfoRequest1
*r
)
9149 uint32_t _ptr_object_dn
;
9150 TALLOC_CTX
*_mem_save_object_dn_0
;
9151 if (ndr_flags
& NDR_SCALARS
) {
9152 NDR_CHECK(ndr_pull_align(ndr
, 4));
9153 NDR_CHECK(ndr_pull_drsuapi_DsReplicaInfoType(ndr
, NDR_SCALARS
, &r
->info_type
));
9154 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_object_dn
));
9155 if (_ptr_object_dn
) {
9156 NDR_PULL_ALLOC(ndr
, r
->object_dn
);
9158 r
->object_dn
= NULL
;
9160 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->guid1
));
9162 if (ndr_flags
& NDR_BUFFERS
) {
9164 _mem_save_object_dn_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9165 NDR_PULL_SET_MEM_CTX(ndr
, r
->object_dn
, 0);
9166 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->object_dn
));
9167 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->object_dn
));
9168 if (ndr_get_array_length(ndr
, &r
->object_dn
) > ndr_get_array_size(ndr
, &r
->object_dn
)) {
9169 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->object_dn
), ndr_get_array_length(ndr
, &r
->object_dn
));
9171 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->object_dn
), sizeof(uint16_t)));
9172 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->object_dn
, ndr_get_array_length(ndr
, &r
->object_dn
), sizeof(uint16_t), CH_UTF16
));
9173 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_object_dn_0
, 0);
9176 return NDR_ERR_SUCCESS
;
9179 _PUBLIC_
void ndr_print_drsuapi_DsReplicaGetInfoRequest1(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaGetInfoRequest1
*r
)
9181 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaGetInfoRequest1");
9183 ndr_print_drsuapi_DsReplicaInfoType(ndr
, "info_type", r
->info_type
);
9184 ndr_print_ptr(ndr
, "object_dn", r
->object_dn
);
9187 ndr_print_string(ndr
, "object_dn", r
->object_dn
);
9190 ndr_print_GUID(ndr
, "guid1", &r
->guid1
);
9194 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaGetInfoRequest2(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaGetInfoRequest2
*r
)
9196 if (ndr_flags
& NDR_SCALARS
) {
9197 NDR_CHECK(ndr_push_align(ndr
, 4));
9198 NDR_CHECK(ndr_push_drsuapi_DsReplicaInfoType(ndr
, NDR_SCALARS
, r
->info_type
));
9199 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->object_dn
));
9200 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->guid1
));
9201 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown1
));
9202 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->string1
));
9203 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->string2
));
9204 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown2
));
9206 if (ndr_flags
& NDR_BUFFERS
) {
9208 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->object_dn
, CH_UTF16
)));
9209 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9210 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->object_dn
, CH_UTF16
)));
9211 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->object_dn
, ndr_charset_length(r
->object_dn
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9214 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->string1
, CH_UTF16
)));
9215 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9216 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->string1
, CH_UTF16
)));
9217 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->string1
, ndr_charset_length(r
->string1
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9220 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->string2
, CH_UTF16
)));
9221 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9222 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->string2
, CH_UTF16
)));
9223 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->string2
, ndr_charset_length(r
->string2
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9226 return NDR_ERR_SUCCESS
;
9229 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaGetInfoRequest2(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaGetInfoRequest2
*r
)
9231 uint32_t _ptr_object_dn
;
9232 TALLOC_CTX
*_mem_save_object_dn_0
;
9233 uint32_t _ptr_string1
;
9234 TALLOC_CTX
*_mem_save_string1_0
;
9235 uint32_t _ptr_string2
;
9236 TALLOC_CTX
*_mem_save_string2_0
;
9237 if (ndr_flags
& NDR_SCALARS
) {
9238 NDR_CHECK(ndr_pull_align(ndr
, 4));
9239 NDR_CHECK(ndr_pull_drsuapi_DsReplicaInfoType(ndr
, NDR_SCALARS
, &r
->info_type
));
9240 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_object_dn
));
9241 if (_ptr_object_dn
) {
9242 NDR_PULL_ALLOC(ndr
, r
->object_dn
);
9244 r
->object_dn
= NULL
;
9246 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->guid1
));
9247 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown1
));
9248 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_string1
));
9250 NDR_PULL_ALLOC(ndr
, r
->string1
);
9254 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_string2
));
9256 NDR_PULL_ALLOC(ndr
, r
->string2
);
9260 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown2
));
9262 if (ndr_flags
& NDR_BUFFERS
) {
9264 _mem_save_object_dn_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9265 NDR_PULL_SET_MEM_CTX(ndr
, r
->object_dn
, 0);
9266 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->object_dn
));
9267 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->object_dn
));
9268 if (ndr_get_array_length(ndr
, &r
->object_dn
) > ndr_get_array_size(ndr
, &r
->object_dn
)) {
9269 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->object_dn
), ndr_get_array_length(ndr
, &r
->object_dn
));
9271 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->object_dn
), sizeof(uint16_t)));
9272 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->object_dn
, ndr_get_array_length(ndr
, &r
->object_dn
), sizeof(uint16_t), CH_UTF16
));
9273 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_object_dn_0
, 0);
9276 _mem_save_string1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9277 NDR_PULL_SET_MEM_CTX(ndr
, r
->string1
, 0);
9278 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->string1
));
9279 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->string1
));
9280 if (ndr_get_array_length(ndr
, &r
->string1
) > ndr_get_array_size(ndr
, &r
->string1
)) {
9281 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->string1
), ndr_get_array_length(ndr
, &r
->string1
));
9283 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->string1
), sizeof(uint16_t)));
9284 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->string1
, ndr_get_array_length(ndr
, &r
->string1
), sizeof(uint16_t), CH_UTF16
));
9285 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_string1_0
, 0);
9288 _mem_save_string2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9289 NDR_PULL_SET_MEM_CTX(ndr
, r
->string2
, 0);
9290 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->string2
));
9291 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->string2
));
9292 if (ndr_get_array_length(ndr
, &r
->string2
) > ndr_get_array_size(ndr
, &r
->string2
)) {
9293 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->string2
), ndr_get_array_length(ndr
, &r
->string2
));
9295 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->string2
), sizeof(uint16_t)));
9296 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->string2
, ndr_get_array_length(ndr
, &r
->string2
), sizeof(uint16_t), CH_UTF16
));
9297 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_string2_0
, 0);
9300 return NDR_ERR_SUCCESS
;
9303 _PUBLIC_
void ndr_print_drsuapi_DsReplicaGetInfoRequest2(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaGetInfoRequest2
*r
)
9305 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaGetInfoRequest2");
9307 ndr_print_drsuapi_DsReplicaInfoType(ndr
, "info_type", r
->info_type
);
9308 ndr_print_ptr(ndr
, "object_dn", r
->object_dn
);
9311 ndr_print_string(ndr
, "object_dn", r
->object_dn
);
9314 ndr_print_GUID(ndr
, "guid1", &r
->guid1
);
9315 ndr_print_uint32(ndr
, "unknown1", r
->unknown1
);
9316 ndr_print_ptr(ndr
, "string1", r
->string1
);
9319 ndr_print_string(ndr
, "string1", r
->string1
);
9322 ndr_print_ptr(ndr
, "string2", r
->string2
);
9325 ndr_print_string(ndr
, "string2", r
->string2
);
9328 ndr_print_uint32(ndr
, "unknown2", r
->unknown2
);
9332 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaGetInfoRequest(struct ndr_push
*ndr
, int ndr_flags
, const union drsuapi_DsReplicaGetInfoRequest
*r
)
9334 if (ndr_flags
& NDR_SCALARS
) {
9335 int level
= ndr_push_get_switch_value(ndr
, r
);
9336 NDR_CHECK(ndr_push_drsuapi_DsReplicaGetInfoLevel(ndr
, NDR_SCALARS
, level
));
9338 case DRSUAPI_DS_REPLICA_GET_INFO
: {
9339 NDR_CHECK(ndr_push_drsuapi_DsReplicaGetInfoRequest1(ndr
, NDR_SCALARS
, &r
->req1
));
9342 case DRSUAPI_DS_REPLICA_GET_INFO2
: {
9343 NDR_CHECK(ndr_push_drsuapi_DsReplicaGetInfoRequest2(ndr
, NDR_SCALARS
, &r
->req2
));
9347 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
9350 if (ndr_flags
& NDR_BUFFERS
) {
9351 int level
= ndr_push_get_switch_value(ndr
, r
);
9353 case DRSUAPI_DS_REPLICA_GET_INFO
:
9354 NDR_CHECK(ndr_push_drsuapi_DsReplicaGetInfoRequest1(ndr
, NDR_BUFFERS
, &r
->req1
));
9357 case DRSUAPI_DS_REPLICA_GET_INFO2
:
9358 NDR_CHECK(ndr_push_drsuapi_DsReplicaGetInfoRequest2(ndr
, NDR_BUFFERS
, &r
->req2
));
9362 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
9365 return NDR_ERR_SUCCESS
;
9368 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaGetInfoRequest(struct ndr_pull
*ndr
, int ndr_flags
, union drsuapi_DsReplicaGetInfoRequest
*r
)
9372 level
= ndr_pull_get_switch_value(ndr
, r
);
9373 if (ndr_flags
& NDR_SCALARS
) {
9374 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
9375 if (_level
!= level
) {
9376 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
9379 case DRSUAPI_DS_REPLICA_GET_INFO
: {
9380 NDR_CHECK(ndr_pull_drsuapi_DsReplicaGetInfoRequest1(ndr
, NDR_SCALARS
, &r
->req1
));
9383 case DRSUAPI_DS_REPLICA_GET_INFO2
: {
9384 NDR_CHECK(ndr_pull_drsuapi_DsReplicaGetInfoRequest2(ndr
, NDR_SCALARS
, &r
->req2
));
9388 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
9391 if (ndr_flags
& NDR_BUFFERS
) {
9393 case DRSUAPI_DS_REPLICA_GET_INFO
:
9394 NDR_CHECK(ndr_pull_drsuapi_DsReplicaGetInfoRequest1(ndr
, NDR_BUFFERS
, &r
->req1
));
9397 case DRSUAPI_DS_REPLICA_GET_INFO2
:
9398 NDR_CHECK(ndr_pull_drsuapi_DsReplicaGetInfoRequest2(ndr
, NDR_BUFFERS
, &r
->req2
));
9402 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
9405 return NDR_ERR_SUCCESS
;
9408 _PUBLIC_
void ndr_print_drsuapi_DsReplicaGetInfoRequest(struct ndr_print
*ndr
, const char *name
, const union drsuapi_DsReplicaGetInfoRequest
*r
)
9411 level
= ndr_print_get_switch_value(ndr
, r
);
9412 ndr_print_union(ndr
, name
, level
, "drsuapi_DsReplicaGetInfoRequest");
9414 case DRSUAPI_DS_REPLICA_GET_INFO
:
9415 ndr_print_drsuapi_DsReplicaGetInfoRequest1(ndr
, "req1", &r
->req1
);
9418 case DRSUAPI_DS_REPLICA_GET_INFO2
:
9419 ndr_print_drsuapi_DsReplicaGetInfoRequest2(ndr
, "req2", &r
->req2
);
9423 ndr_print_bad_level(ndr
, name
, level
);
9427 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaNeighbour(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaNeighbour
*r
)
9429 if (ndr_flags
& NDR_SCALARS
) {
9430 NDR_CHECK(ndr_push_align(ndr
, 8));
9431 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->naming_context_dn
));
9432 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->source_dsa_obj_dn
));
9433 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->source_dsa_address
));
9434 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->transport_obj_dn
));
9435 NDR_CHECK(ndr_push_drsuapi_DsReplicaNeighbourFlags(ndr
, NDR_SCALARS
, r
->replica_flags
));
9436 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
9437 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->naming_context_obj_guid
));
9438 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->source_dsa_obj_guid
));
9439 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->source_dsa_invocation_id
));
9440 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->transport_obj_guid
));
9441 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->tmp_highest_usn
));
9442 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->highest_usn
));
9443 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_success
));
9444 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_attempt
));
9445 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->result_last_attempt
));
9446 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->consecutive_sync_failures
));
9448 if (ndr_flags
& NDR_BUFFERS
) {
9449 if (r
->naming_context_dn
) {
9450 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->naming_context_dn
, CH_UTF16
)));
9451 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9452 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->naming_context_dn
, CH_UTF16
)));
9453 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
));
9455 if (r
->source_dsa_obj_dn
) {
9456 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->source_dsa_obj_dn
, CH_UTF16
)));
9457 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9458 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->source_dsa_obj_dn
, CH_UTF16
)));
9459 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
));
9461 if (r
->source_dsa_address
) {
9462 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->source_dsa_address
, CH_UTF16
)));
9463 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9464 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->source_dsa_address
, CH_UTF16
)));
9465 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
));
9467 if (r
->transport_obj_dn
) {
9468 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->transport_obj_dn
, CH_UTF16
)));
9469 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9470 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->transport_obj_dn
, CH_UTF16
)));
9471 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
));
9474 return NDR_ERR_SUCCESS
;
9477 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaNeighbour(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaNeighbour
*r
)
9479 uint32_t _ptr_naming_context_dn
;
9480 TALLOC_CTX
*_mem_save_naming_context_dn_0
;
9481 uint32_t _ptr_source_dsa_obj_dn
;
9482 TALLOC_CTX
*_mem_save_source_dsa_obj_dn_0
;
9483 uint32_t _ptr_source_dsa_address
;
9484 TALLOC_CTX
*_mem_save_source_dsa_address_0
;
9485 uint32_t _ptr_transport_obj_dn
;
9486 TALLOC_CTX
*_mem_save_transport_obj_dn_0
;
9487 if (ndr_flags
& NDR_SCALARS
) {
9488 NDR_CHECK(ndr_pull_align(ndr
, 8));
9489 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_naming_context_dn
));
9490 if (_ptr_naming_context_dn
) {
9491 NDR_PULL_ALLOC(ndr
, r
->naming_context_dn
);
9493 r
->naming_context_dn
= NULL
;
9495 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_source_dsa_obj_dn
));
9496 if (_ptr_source_dsa_obj_dn
) {
9497 NDR_PULL_ALLOC(ndr
, r
->source_dsa_obj_dn
);
9499 r
->source_dsa_obj_dn
= NULL
;
9501 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_source_dsa_address
));
9502 if (_ptr_source_dsa_address
) {
9503 NDR_PULL_ALLOC(ndr
, r
->source_dsa_address
);
9505 r
->source_dsa_address
= NULL
;
9507 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_transport_obj_dn
));
9508 if (_ptr_transport_obj_dn
) {
9509 NDR_PULL_ALLOC(ndr
, r
->transport_obj_dn
);
9511 r
->transport_obj_dn
= NULL
;
9513 NDR_CHECK(ndr_pull_drsuapi_DsReplicaNeighbourFlags(ndr
, NDR_SCALARS
, &r
->replica_flags
));
9514 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
9515 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->naming_context_obj_guid
));
9516 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->source_dsa_obj_guid
));
9517 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->source_dsa_invocation_id
));
9518 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->transport_obj_guid
));
9519 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->tmp_highest_usn
));
9520 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->highest_usn
));
9521 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_success
));
9522 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_attempt
));
9523 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->result_last_attempt
));
9524 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->consecutive_sync_failures
));
9526 if (ndr_flags
& NDR_BUFFERS
) {
9527 if (r
->naming_context_dn
) {
9528 _mem_save_naming_context_dn_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9529 NDR_PULL_SET_MEM_CTX(ndr
, r
->naming_context_dn
, 0);
9530 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->naming_context_dn
));
9531 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->naming_context_dn
));
9532 if (ndr_get_array_length(ndr
, &r
->naming_context_dn
) > ndr_get_array_size(ndr
, &r
->naming_context_dn
)) {
9533 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->naming_context_dn
), ndr_get_array_length(ndr
, &r
->naming_context_dn
));
9535 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->naming_context_dn
), sizeof(uint16_t)));
9536 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->naming_context_dn
, ndr_get_array_length(ndr
, &r
->naming_context_dn
), sizeof(uint16_t), CH_UTF16
));
9537 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_naming_context_dn_0
, 0);
9539 if (r
->source_dsa_obj_dn
) {
9540 _mem_save_source_dsa_obj_dn_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9541 NDR_PULL_SET_MEM_CTX(ndr
, r
->source_dsa_obj_dn
, 0);
9542 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->source_dsa_obj_dn
));
9543 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->source_dsa_obj_dn
));
9544 if (ndr_get_array_length(ndr
, &r
->source_dsa_obj_dn
) > ndr_get_array_size(ndr
, &r
->source_dsa_obj_dn
)) {
9545 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->source_dsa_obj_dn
), ndr_get_array_length(ndr
, &r
->source_dsa_obj_dn
));
9547 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->source_dsa_obj_dn
), sizeof(uint16_t)));
9548 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->source_dsa_obj_dn
, ndr_get_array_length(ndr
, &r
->source_dsa_obj_dn
), sizeof(uint16_t), CH_UTF16
));
9549 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_source_dsa_obj_dn_0
, 0);
9551 if (r
->source_dsa_address
) {
9552 _mem_save_source_dsa_address_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9553 NDR_PULL_SET_MEM_CTX(ndr
, r
->source_dsa_address
, 0);
9554 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->source_dsa_address
));
9555 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->source_dsa_address
));
9556 if (ndr_get_array_length(ndr
, &r
->source_dsa_address
) > ndr_get_array_size(ndr
, &r
->source_dsa_address
)) {
9557 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->source_dsa_address
), ndr_get_array_length(ndr
, &r
->source_dsa_address
));
9559 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->source_dsa_address
), sizeof(uint16_t)));
9560 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->source_dsa_address
, ndr_get_array_length(ndr
, &r
->source_dsa_address
), sizeof(uint16_t), CH_UTF16
));
9561 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_source_dsa_address_0
, 0);
9563 if (r
->transport_obj_dn
) {
9564 _mem_save_transport_obj_dn_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9565 NDR_PULL_SET_MEM_CTX(ndr
, r
->transport_obj_dn
, 0);
9566 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->transport_obj_dn
));
9567 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->transport_obj_dn
));
9568 if (ndr_get_array_length(ndr
, &r
->transport_obj_dn
) > ndr_get_array_size(ndr
, &r
->transport_obj_dn
)) {
9569 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->transport_obj_dn
), ndr_get_array_length(ndr
, &r
->transport_obj_dn
));
9571 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->transport_obj_dn
), sizeof(uint16_t)));
9572 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->transport_obj_dn
, ndr_get_array_length(ndr
, &r
->transport_obj_dn
), sizeof(uint16_t), CH_UTF16
));
9573 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_transport_obj_dn_0
, 0);
9576 return NDR_ERR_SUCCESS
;
9579 _PUBLIC_
void ndr_print_drsuapi_DsReplicaNeighbour(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaNeighbour
*r
)
9581 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaNeighbour");
9583 ndr_print_ptr(ndr
, "naming_context_dn", r
->naming_context_dn
);
9585 if (r
->naming_context_dn
) {
9586 ndr_print_string(ndr
, "naming_context_dn", r
->naming_context_dn
);
9589 ndr_print_ptr(ndr
, "source_dsa_obj_dn", r
->source_dsa_obj_dn
);
9591 if (r
->source_dsa_obj_dn
) {
9592 ndr_print_string(ndr
, "source_dsa_obj_dn", r
->source_dsa_obj_dn
);
9595 ndr_print_ptr(ndr
, "source_dsa_address", r
->source_dsa_address
);
9597 if (r
->source_dsa_address
) {
9598 ndr_print_string(ndr
, "source_dsa_address", r
->source_dsa_address
);
9601 ndr_print_ptr(ndr
, "transport_obj_dn", r
->transport_obj_dn
);
9603 if (r
->transport_obj_dn
) {
9604 ndr_print_string(ndr
, "transport_obj_dn", r
->transport_obj_dn
);
9607 ndr_print_drsuapi_DsReplicaNeighbourFlags(ndr
, "replica_flags", r
->replica_flags
);
9608 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
9609 ndr_print_GUID(ndr
, "naming_context_obj_guid", &r
->naming_context_obj_guid
);
9610 ndr_print_GUID(ndr
, "source_dsa_obj_guid", &r
->source_dsa_obj_guid
);
9611 ndr_print_GUID(ndr
, "source_dsa_invocation_id", &r
->source_dsa_invocation_id
);
9612 ndr_print_GUID(ndr
, "transport_obj_guid", &r
->transport_obj_guid
);
9613 ndr_print_hyper(ndr
, "tmp_highest_usn", r
->tmp_highest_usn
);
9614 ndr_print_hyper(ndr
, "highest_usn", r
->highest_usn
);
9615 ndr_print_NTTIME(ndr
, "last_success", r
->last_success
);
9616 ndr_print_NTTIME(ndr
, "last_attempt", r
->last_attempt
);
9617 ndr_print_WERROR(ndr
, "result_last_attempt", r
->result_last_attempt
);
9618 ndr_print_uint32(ndr
, "consecutive_sync_failures", r
->consecutive_sync_failures
);
9622 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaNeighbourCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaNeighbourCtr
*r
)
9624 uint32_t cntr_array_0
;
9625 if (ndr_flags
& NDR_SCALARS
) {
9626 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
9627 NDR_CHECK(ndr_push_align(ndr
, 8));
9628 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
9629 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
9630 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
9631 NDR_CHECK(ndr_push_drsuapi_DsReplicaNeighbour(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_0
]));
9634 if (ndr_flags
& NDR_BUFFERS
) {
9635 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
9636 NDR_CHECK(ndr_push_drsuapi_DsReplicaNeighbour(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_0
]));
9639 return NDR_ERR_SUCCESS
;
9642 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaNeighbourCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaNeighbourCtr
*r
)
9644 uint32_t cntr_array_0
;
9645 TALLOC_CTX
*_mem_save_array_0
;
9646 if (ndr_flags
& NDR_SCALARS
) {
9647 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->array
));
9648 NDR_CHECK(ndr_pull_align(ndr
, 8));
9649 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
9650 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
9651 NDR_PULL_ALLOC_N(ndr
, r
->array
, ndr_get_array_size(ndr
, &r
->array
));
9652 _mem_save_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9653 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
9654 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
9655 NDR_CHECK(ndr_pull_drsuapi_DsReplicaNeighbour(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_0
]));
9657 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_0
, 0);
9659 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->array
, r
->count
));
9662 if (ndr_flags
& NDR_BUFFERS
) {
9663 _mem_save_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9664 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
9665 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
9666 NDR_CHECK(ndr_pull_drsuapi_DsReplicaNeighbour(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_0
]));
9668 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_0
, 0);
9670 return NDR_ERR_SUCCESS
;
9673 _PUBLIC_
void ndr_print_drsuapi_DsReplicaNeighbourCtr(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaNeighbourCtr
*r
)
9675 uint32_t cntr_array_0
;
9676 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaNeighbourCtr");
9678 ndr_print_uint32(ndr
, "count", r
->count
);
9679 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
9680 ndr
->print(ndr
, "%s: ARRAY(%d)", "array", (int)r
->count
);
9682 for (cntr_array_0
=0;cntr_array_0
<r
->count
;cntr_array_0
++) {
9684 if (asprintf(&idx_0
, "[%d]", cntr_array_0
) != -1) {
9685 ndr_print_drsuapi_DsReplicaNeighbour(ndr
, "array", &r
->array
[cntr_array_0
]);
9693 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaCursorCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaCursorCtr
*r
)
9695 uint32_t cntr_array_0
;
9696 if (ndr_flags
& NDR_SCALARS
) {
9697 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
9698 NDR_CHECK(ndr_push_align(ndr
, 8));
9699 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
9700 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
9701 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
9702 NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_0
]));
9705 if (ndr_flags
& NDR_BUFFERS
) {
9707 return NDR_ERR_SUCCESS
;
9710 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaCursorCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaCursorCtr
*r
)
9712 uint32_t cntr_array_0
;
9713 TALLOC_CTX
*_mem_save_array_0
;
9714 if (ndr_flags
& NDR_SCALARS
) {
9715 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->array
));
9716 NDR_CHECK(ndr_pull_align(ndr
, 8));
9717 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
9718 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
9719 NDR_PULL_ALLOC_N(ndr
, r
->array
, ndr_get_array_size(ndr
, &r
->array
));
9720 _mem_save_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9721 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
9722 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
9723 NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_0
]));
9725 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_0
, 0);
9727 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->array
, r
->count
));
9730 if (ndr_flags
& NDR_BUFFERS
) {
9732 return NDR_ERR_SUCCESS
;
9735 _PUBLIC_
void ndr_print_drsuapi_DsReplicaCursorCtr(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaCursorCtr
*r
)
9737 uint32_t cntr_array_0
;
9738 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaCursorCtr");
9740 ndr_print_uint32(ndr
, "count", r
->count
);
9741 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
9742 ndr
->print(ndr
, "%s: ARRAY(%d)", "array", (int)r
->count
);
9744 for (cntr_array_0
=0;cntr_array_0
<r
->count
;cntr_array_0
++) {
9746 if (asprintf(&idx_0
, "[%d]", cntr_array_0
) != -1) {
9747 ndr_print_drsuapi_DsReplicaCursor(ndr
, "array", &r
->array
[cntr_array_0
]);
9755 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaObjMetaData(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaObjMetaData
*r
)
9757 if (ndr_flags
& NDR_SCALARS
) {
9758 NDR_CHECK(ndr_push_align(ndr
, 8));
9759 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->attribute_name
));
9760 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->version
));
9761 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->originating_change_time
));
9762 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->originating_invocation_id
));
9763 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->originating_usn
));
9764 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->local_usn
));
9766 if (ndr_flags
& NDR_BUFFERS
) {
9767 if (r
->attribute_name
) {
9768 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->attribute_name
, CH_UTF16
)));
9769 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9770 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->attribute_name
, CH_UTF16
)));
9771 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->attribute_name
, ndr_charset_length(r
->attribute_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9774 return NDR_ERR_SUCCESS
;
9777 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaObjMetaData(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaObjMetaData
*r
)
9779 uint32_t _ptr_attribute_name
;
9780 TALLOC_CTX
*_mem_save_attribute_name_0
;
9781 if (ndr_flags
& NDR_SCALARS
) {
9782 NDR_CHECK(ndr_pull_align(ndr
, 8));
9783 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_attribute_name
));
9784 if (_ptr_attribute_name
) {
9785 NDR_PULL_ALLOC(ndr
, r
->attribute_name
);
9787 r
->attribute_name
= NULL
;
9789 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
9790 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->originating_change_time
));
9791 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->originating_invocation_id
));
9792 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->originating_usn
));
9793 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->local_usn
));
9795 if (ndr_flags
& NDR_BUFFERS
) {
9796 if (r
->attribute_name
) {
9797 _mem_save_attribute_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9798 NDR_PULL_SET_MEM_CTX(ndr
, r
->attribute_name
, 0);
9799 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->attribute_name
));
9800 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->attribute_name
));
9801 if (ndr_get_array_length(ndr
, &r
->attribute_name
) > ndr_get_array_size(ndr
, &r
->attribute_name
)) {
9802 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->attribute_name
), ndr_get_array_length(ndr
, &r
->attribute_name
));
9804 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->attribute_name
), sizeof(uint16_t)));
9805 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->attribute_name
, ndr_get_array_length(ndr
, &r
->attribute_name
), sizeof(uint16_t), CH_UTF16
));
9806 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_attribute_name_0
, 0);
9809 return NDR_ERR_SUCCESS
;
9812 _PUBLIC_
void ndr_print_drsuapi_DsReplicaObjMetaData(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaObjMetaData
*r
)
9814 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaObjMetaData");
9816 ndr_print_ptr(ndr
, "attribute_name", r
->attribute_name
);
9818 if (r
->attribute_name
) {
9819 ndr_print_string(ndr
, "attribute_name", r
->attribute_name
);
9822 ndr_print_uint32(ndr
, "version", r
->version
);
9823 ndr_print_NTTIME(ndr
, "originating_change_time", r
->originating_change_time
);
9824 ndr_print_GUID(ndr
, "originating_invocation_id", &r
->originating_invocation_id
);
9825 ndr_print_hyper(ndr
, "originating_usn", r
->originating_usn
);
9826 ndr_print_hyper(ndr
, "local_usn", r
->local_usn
);
9830 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaObjMetaDataCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaObjMetaDataCtr
*r
)
9832 uint32_t cntr_array_0
;
9833 if (ndr_flags
& NDR_SCALARS
) {
9834 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
9835 NDR_CHECK(ndr_push_align(ndr
, 8));
9836 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
9837 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
9838 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
9839 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjMetaData(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_0
]));
9842 if (ndr_flags
& NDR_BUFFERS
) {
9843 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
9844 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjMetaData(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_0
]));
9847 return NDR_ERR_SUCCESS
;
9850 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaObjMetaDataCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaObjMetaDataCtr
*r
)
9852 uint32_t cntr_array_0
;
9853 TALLOC_CTX
*_mem_save_array_0
;
9854 if (ndr_flags
& NDR_SCALARS
) {
9855 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->array
));
9856 NDR_CHECK(ndr_pull_align(ndr
, 8));
9857 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
9858 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
9859 NDR_PULL_ALLOC_N(ndr
, r
->array
, ndr_get_array_size(ndr
, &r
->array
));
9860 _mem_save_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9861 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
9862 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
9863 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjMetaData(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_0
]));
9865 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_0
, 0);
9867 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->array
, r
->count
));
9870 if (ndr_flags
& NDR_BUFFERS
) {
9871 _mem_save_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9872 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
9873 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
9874 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjMetaData(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_0
]));
9876 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_0
, 0);
9878 return NDR_ERR_SUCCESS
;
9881 _PUBLIC_
void ndr_print_drsuapi_DsReplicaObjMetaDataCtr(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaObjMetaDataCtr
*r
)
9883 uint32_t cntr_array_0
;
9884 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaObjMetaDataCtr");
9886 ndr_print_uint32(ndr
, "count", r
->count
);
9887 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
9888 ndr
->print(ndr
, "%s: ARRAY(%d)", "array", (int)r
->count
);
9890 for (cntr_array_0
=0;cntr_array_0
<r
->count
;cntr_array_0
++) {
9892 if (asprintf(&idx_0
, "[%d]", cntr_array_0
) != -1) {
9893 ndr_print_drsuapi_DsReplicaObjMetaData(ndr
, "array", &r
->array
[cntr_array_0
]);
9901 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaKccDsaFailure(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaKccDsaFailure
*r
)
9903 if (ndr_flags
& NDR_SCALARS
) {
9904 NDR_CHECK(ndr_push_align(ndr
, 4));
9905 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dsa_obj_dn
));
9906 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->dsa_obj_guid
));
9907 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->first_failure
));
9908 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_failures
));
9909 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->last_result
));
9911 if (ndr_flags
& NDR_BUFFERS
) {
9912 if (r
->dsa_obj_dn
) {
9913 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dsa_obj_dn
, CH_UTF16
)));
9914 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9915 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->dsa_obj_dn
, CH_UTF16
)));
9916 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
));
9919 return NDR_ERR_SUCCESS
;
9922 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaKccDsaFailure(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaKccDsaFailure
*r
)
9924 uint32_t _ptr_dsa_obj_dn
;
9925 TALLOC_CTX
*_mem_save_dsa_obj_dn_0
;
9926 if (ndr_flags
& NDR_SCALARS
) {
9927 NDR_CHECK(ndr_pull_align(ndr
, 4));
9928 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dsa_obj_dn
));
9929 if (_ptr_dsa_obj_dn
) {
9930 NDR_PULL_ALLOC(ndr
, r
->dsa_obj_dn
);
9932 r
->dsa_obj_dn
= NULL
;
9934 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->dsa_obj_guid
));
9935 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->first_failure
));
9936 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_failures
));
9937 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->last_result
));
9939 if (ndr_flags
& NDR_BUFFERS
) {
9940 if (r
->dsa_obj_dn
) {
9941 _mem_save_dsa_obj_dn_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9942 NDR_PULL_SET_MEM_CTX(ndr
, r
->dsa_obj_dn
, 0);
9943 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->dsa_obj_dn
));
9944 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->dsa_obj_dn
));
9945 if (ndr_get_array_length(ndr
, &r
->dsa_obj_dn
) > ndr_get_array_size(ndr
, &r
->dsa_obj_dn
)) {
9946 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->dsa_obj_dn
), ndr_get_array_length(ndr
, &r
->dsa_obj_dn
));
9948 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->dsa_obj_dn
), sizeof(uint16_t)));
9949 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->dsa_obj_dn
, ndr_get_array_length(ndr
, &r
->dsa_obj_dn
), sizeof(uint16_t), CH_UTF16
));
9950 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dsa_obj_dn_0
, 0);
9953 return NDR_ERR_SUCCESS
;
9956 _PUBLIC_
void ndr_print_drsuapi_DsReplicaKccDsaFailure(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaKccDsaFailure
*r
)
9958 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaKccDsaFailure");
9960 ndr_print_ptr(ndr
, "dsa_obj_dn", r
->dsa_obj_dn
);
9962 if (r
->dsa_obj_dn
) {
9963 ndr_print_string(ndr
, "dsa_obj_dn", r
->dsa_obj_dn
);
9966 ndr_print_GUID(ndr
, "dsa_obj_guid", &r
->dsa_obj_guid
);
9967 ndr_print_NTTIME(ndr
, "first_failure", r
->first_failure
);
9968 ndr_print_uint32(ndr
, "num_failures", r
->num_failures
);
9969 ndr_print_WERROR(ndr
, "last_result", r
->last_result
);
9973 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaKccDsaFailuresCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaKccDsaFailuresCtr
*r
)
9975 uint32_t cntr_array_0
;
9976 if (ndr_flags
& NDR_SCALARS
) {
9977 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
9978 NDR_CHECK(ndr_push_align(ndr
, 4));
9979 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
9980 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
9981 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
9982 NDR_CHECK(ndr_push_drsuapi_DsReplicaKccDsaFailure(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_0
]));
9985 if (ndr_flags
& NDR_BUFFERS
) {
9986 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
9987 NDR_CHECK(ndr_push_drsuapi_DsReplicaKccDsaFailure(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_0
]));
9990 return NDR_ERR_SUCCESS
;
9993 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaKccDsaFailuresCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaKccDsaFailuresCtr
*r
)
9995 uint32_t cntr_array_0
;
9996 TALLOC_CTX
*_mem_save_array_0
;
9997 if (ndr_flags
& NDR_SCALARS
) {
9998 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->array
));
9999 NDR_CHECK(ndr_pull_align(ndr
, 4));
10000 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
10001 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
10002 NDR_PULL_ALLOC_N(ndr
, r
->array
, ndr_get_array_size(ndr
, &r
->array
));
10003 _mem_save_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10004 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
10005 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
10006 NDR_CHECK(ndr_pull_drsuapi_DsReplicaKccDsaFailure(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_0
]));
10008 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_0
, 0);
10010 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->array
, r
->count
));
10013 if (ndr_flags
& NDR_BUFFERS
) {
10014 _mem_save_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10015 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
10016 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
10017 NDR_CHECK(ndr_pull_drsuapi_DsReplicaKccDsaFailure(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_0
]));
10019 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_0
, 0);
10021 return NDR_ERR_SUCCESS
;
10024 _PUBLIC_
void ndr_print_drsuapi_DsReplicaKccDsaFailuresCtr(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaKccDsaFailuresCtr
*r
)
10026 uint32_t cntr_array_0
;
10027 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaKccDsaFailuresCtr");
10029 ndr_print_uint32(ndr
, "count", r
->count
);
10030 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
10031 ndr
->print(ndr
, "%s: ARRAY(%d)", "array", (int)r
->count
);
10033 for (cntr_array_0
=0;cntr_array_0
<r
->count
;cntr_array_0
++) {
10035 if (asprintf(&idx_0
, "[%d]", cntr_array_0
) != -1) {
10036 ndr_print_drsuapi_DsReplicaKccDsaFailure(ndr
, "array", &r
->array
[cntr_array_0
]);
10044 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaOpType(struct ndr_push
*ndr
, int ndr_flags
, enum drsuapi_DsReplicaOpType r
)
10046 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
10047 return NDR_ERR_SUCCESS
;
10050 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaOpType(struct ndr_pull
*ndr
, int ndr_flags
, enum drsuapi_DsReplicaOpType
*r
)
10053 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
10055 return NDR_ERR_SUCCESS
;
10058 _PUBLIC_
void ndr_print_drsuapi_DsReplicaOpType(struct ndr_print
*ndr
, const char *name
, enum drsuapi_DsReplicaOpType r
)
10060 const char *val
= NULL
;
10063 case DRSUAPI_DS_REPLICA_OP_TYPE_SYNC
: val
= "DRSUAPI_DS_REPLICA_OP_TYPE_SYNC"; break;
10064 case DRSUAPI_DS_REPLICA_OP_TYPE_ADD
: val
= "DRSUAPI_DS_REPLICA_OP_TYPE_ADD"; break;
10065 case DRSUAPI_DS_REPLICA_OP_TYPE_DELETE
: val
= "DRSUAPI_DS_REPLICA_OP_TYPE_DELETE"; break;
10066 case DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY
: val
= "DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY"; break;
10067 case DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS
: val
= "DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS"; break;
10069 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
10072 static enum ndr_err_code
ndr_push_drsuapi_DsRplicaOpOptions(struct ndr_push
*ndr
, int ndr_flags
, const union drsuapi_DsRplicaOpOptions
*r
)
10074 if (ndr_flags
& NDR_SCALARS
) {
10075 int level
= ndr_push_get_switch_value(ndr
, r
);
10076 NDR_CHECK(ndr_push_drsuapi_DsReplicaOpType(ndr
, NDR_SCALARS
, level
));
10078 case DRSUAPI_DS_REPLICA_OP_TYPE_SYNC
: {
10079 NDR_CHECK(ndr_push_drsuapi_DsReplicaSyncOptions(ndr
, NDR_SCALARS
, r
->sync
));
10082 case DRSUAPI_DS_REPLICA_OP_TYPE_ADD
: {
10083 NDR_CHECK(ndr_push_drsuapi_DsReplicaAddOptions(ndr
, NDR_SCALARS
, r
->add
));
10086 case DRSUAPI_DS_REPLICA_OP_TYPE_DELETE
: {
10087 NDR_CHECK(ndr_push_drsuapi_DsReplicaDeleteOptions(ndr
, NDR_SCALARS
, r
->op_delete
));
10090 case DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY
: {
10091 NDR_CHECK(ndr_push_drsuapi_DsReplicaModifyOptions(ndr
, NDR_SCALARS
, r
->modify
));
10094 case DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS
: {
10095 NDR_CHECK(ndr_push_drsuapi_DsReplicaUpdateRefsOptions(ndr
, NDR_SCALARS
, r
->update_refs
));
10099 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown
));
10104 if (ndr_flags
& NDR_BUFFERS
) {
10105 int level
= ndr_push_get_switch_value(ndr
, r
);
10107 case DRSUAPI_DS_REPLICA_OP_TYPE_SYNC
:
10110 case DRSUAPI_DS_REPLICA_OP_TYPE_ADD
:
10113 case DRSUAPI_DS_REPLICA_OP_TYPE_DELETE
:
10116 case DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY
:
10119 case DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS
:
10127 return NDR_ERR_SUCCESS
;
10130 static enum ndr_err_code
ndr_pull_drsuapi_DsRplicaOpOptions(struct ndr_pull
*ndr
, int ndr_flags
, union drsuapi_DsRplicaOpOptions
*r
)
10134 level
= ndr_pull_get_switch_value(ndr
, r
);
10135 if (ndr_flags
& NDR_SCALARS
) {
10136 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &_level
));
10137 if (_level
!= level
) {
10138 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
10141 case DRSUAPI_DS_REPLICA_OP_TYPE_SYNC
: {
10142 NDR_CHECK(ndr_pull_drsuapi_DsReplicaSyncOptions(ndr
, NDR_SCALARS
, &r
->sync
));
10145 case DRSUAPI_DS_REPLICA_OP_TYPE_ADD
: {
10146 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAddOptions(ndr
, NDR_SCALARS
, &r
->add
));
10149 case DRSUAPI_DS_REPLICA_OP_TYPE_DELETE
: {
10150 NDR_CHECK(ndr_pull_drsuapi_DsReplicaDeleteOptions(ndr
, NDR_SCALARS
, &r
->op_delete
));
10153 case DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY
: {
10154 NDR_CHECK(ndr_pull_drsuapi_DsReplicaModifyOptions(ndr
, NDR_SCALARS
, &r
->modify
));
10157 case DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS
: {
10158 NDR_CHECK(ndr_pull_drsuapi_DsReplicaUpdateRefsOptions(ndr
, NDR_SCALARS
, &r
->update_refs
));
10162 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown
));
10167 if (ndr_flags
& NDR_BUFFERS
) {
10169 case DRSUAPI_DS_REPLICA_OP_TYPE_SYNC
:
10172 case DRSUAPI_DS_REPLICA_OP_TYPE_ADD
:
10175 case DRSUAPI_DS_REPLICA_OP_TYPE_DELETE
:
10178 case DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY
:
10181 case DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS
:
10189 return NDR_ERR_SUCCESS
;
10192 _PUBLIC_
void ndr_print_drsuapi_DsRplicaOpOptions(struct ndr_print
*ndr
, const char *name
, const union drsuapi_DsRplicaOpOptions
*r
)
10195 level
= ndr_print_get_switch_value(ndr
, r
);
10196 ndr_print_union(ndr
, name
, level
, "drsuapi_DsRplicaOpOptions");
10198 case DRSUAPI_DS_REPLICA_OP_TYPE_SYNC
:
10199 ndr_print_drsuapi_DsReplicaSyncOptions(ndr
, "sync", r
->sync
);
10202 case DRSUAPI_DS_REPLICA_OP_TYPE_ADD
:
10203 ndr_print_drsuapi_DsReplicaAddOptions(ndr
, "add", r
->add
);
10206 case DRSUAPI_DS_REPLICA_OP_TYPE_DELETE
:
10207 ndr_print_drsuapi_DsReplicaDeleteOptions(ndr
, "op_delete", r
->op_delete
);
10210 case DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY
:
10211 ndr_print_drsuapi_DsReplicaModifyOptions(ndr
, "modify", r
->modify
);
10214 case DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS
:
10215 ndr_print_drsuapi_DsReplicaUpdateRefsOptions(ndr
, "update_refs", r
->update_refs
);
10219 ndr_print_uint32(ndr
, "unknown", r
->unknown
);
10225 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaOp(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaOp
*r
)
10227 if (ndr_flags
& NDR_SCALARS
) {
10228 NDR_CHECK(ndr_push_align(ndr
, 4));
10229 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->operation_start
));
10230 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->serial_num
));
10231 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
10232 NDR_CHECK(ndr_push_drsuapi_DsReplicaOpType(ndr
, NDR_SCALARS
, r
->operation_type
));
10233 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->options
, r
->operation_type
));
10234 NDR_CHECK(ndr_push_drsuapi_DsRplicaOpOptions(ndr
, NDR_SCALARS
, &r
->options
));
10235 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->nc_dn
));
10236 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->remote_dsa_obj_dn
));
10237 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->remote_dsa_address
));
10238 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->nc_obj_guid
));
10239 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->remote_dsa_obj_guid
));
10241 if (ndr_flags
& NDR_BUFFERS
) {
10243 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->nc_dn
, CH_UTF16
)));
10244 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10245 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->nc_dn
, CH_UTF16
)));
10246 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->nc_dn
, ndr_charset_length(r
->nc_dn
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10248 if (r
->remote_dsa_obj_dn
) {
10249 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->remote_dsa_obj_dn
, CH_UTF16
)));
10250 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10251 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->remote_dsa_obj_dn
, CH_UTF16
)));
10252 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
));
10254 if (r
->remote_dsa_address
) {
10255 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->remote_dsa_address
, CH_UTF16
)));
10256 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10257 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->remote_dsa_address
, CH_UTF16
)));
10258 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
));
10261 return NDR_ERR_SUCCESS
;
10264 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaOp(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaOp
*r
)
10266 uint32_t _ptr_nc_dn
;
10267 TALLOC_CTX
*_mem_save_nc_dn_0
;
10268 uint32_t _ptr_remote_dsa_obj_dn
;
10269 TALLOC_CTX
*_mem_save_remote_dsa_obj_dn_0
;
10270 uint32_t _ptr_remote_dsa_address
;
10271 TALLOC_CTX
*_mem_save_remote_dsa_address_0
;
10272 if (ndr_flags
& NDR_SCALARS
) {
10273 NDR_CHECK(ndr_pull_align(ndr
, 4));
10274 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->operation_start
));
10275 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->serial_num
));
10276 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
10277 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOpType(ndr
, NDR_SCALARS
, &r
->operation_type
));
10278 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->options
, r
->operation_type
));
10279 NDR_CHECK(ndr_pull_drsuapi_DsRplicaOpOptions(ndr
, NDR_SCALARS
, &r
->options
));
10280 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_nc_dn
));
10282 NDR_PULL_ALLOC(ndr
, r
->nc_dn
);
10286 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_remote_dsa_obj_dn
));
10287 if (_ptr_remote_dsa_obj_dn
) {
10288 NDR_PULL_ALLOC(ndr
, r
->remote_dsa_obj_dn
);
10290 r
->remote_dsa_obj_dn
= NULL
;
10292 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_remote_dsa_address
));
10293 if (_ptr_remote_dsa_address
) {
10294 NDR_PULL_ALLOC(ndr
, r
->remote_dsa_address
);
10296 r
->remote_dsa_address
= NULL
;
10298 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->nc_obj_guid
));
10299 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->remote_dsa_obj_guid
));
10301 if (ndr_flags
& NDR_BUFFERS
) {
10303 _mem_save_nc_dn_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10304 NDR_PULL_SET_MEM_CTX(ndr
, r
->nc_dn
, 0);
10305 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->nc_dn
));
10306 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->nc_dn
));
10307 if (ndr_get_array_length(ndr
, &r
->nc_dn
) > ndr_get_array_size(ndr
, &r
->nc_dn
)) {
10308 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->nc_dn
), ndr_get_array_length(ndr
, &r
->nc_dn
));
10310 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->nc_dn
), sizeof(uint16_t)));
10311 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->nc_dn
, ndr_get_array_length(ndr
, &r
->nc_dn
), sizeof(uint16_t), CH_UTF16
));
10312 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_nc_dn_0
, 0);
10314 if (r
->remote_dsa_obj_dn
) {
10315 _mem_save_remote_dsa_obj_dn_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10316 NDR_PULL_SET_MEM_CTX(ndr
, r
->remote_dsa_obj_dn
, 0);
10317 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->remote_dsa_obj_dn
));
10318 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->remote_dsa_obj_dn
));
10319 if (ndr_get_array_length(ndr
, &r
->remote_dsa_obj_dn
) > ndr_get_array_size(ndr
, &r
->remote_dsa_obj_dn
)) {
10320 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->remote_dsa_obj_dn
), ndr_get_array_length(ndr
, &r
->remote_dsa_obj_dn
));
10322 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->remote_dsa_obj_dn
), sizeof(uint16_t)));
10323 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->remote_dsa_obj_dn
, ndr_get_array_length(ndr
, &r
->remote_dsa_obj_dn
), sizeof(uint16_t), CH_UTF16
));
10324 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_remote_dsa_obj_dn_0
, 0);
10326 if (r
->remote_dsa_address
) {
10327 _mem_save_remote_dsa_address_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10328 NDR_PULL_SET_MEM_CTX(ndr
, r
->remote_dsa_address
, 0);
10329 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->remote_dsa_address
));
10330 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->remote_dsa_address
));
10331 if (ndr_get_array_length(ndr
, &r
->remote_dsa_address
) > ndr_get_array_size(ndr
, &r
->remote_dsa_address
)) {
10332 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->remote_dsa_address
), ndr_get_array_length(ndr
, &r
->remote_dsa_address
));
10334 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->remote_dsa_address
), sizeof(uint16_t)));
10335 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->remote_dsa_address
, ndr_get_array_length(ndr
, &r
->remote_dsa_address
), sizeof(uint16_t), CH_UTF16
));
10336 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_remote_dsa_address_0
, 0);
10339 return NDR_ERR_SUCCESS
;
10342 _PUBLIC_
void ndr_print_drsuapi_DsReplicaOp(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaOp
*r
)
10344 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaOp");
10346 ndr_print_NTTIME(ndr
, "operation_start", r
->operation_start
);
10347 ndr_print_uint32(ndr
, "serial_num", r
->serial_num
);
10348 ndr_print_uint32(ndr
, "priority", r
->priority
);
10349 ndr_print_drsuapi_DsReplicaOpType(ndr
, "operation_type", r
->operation_type
);
10350 ndr_print_set_switch_value(ndr
, &r
->options
, r
->operation_type
);
10351 ndr_print_drsuapi_DsRplicaOpOptions(ndr
, "options", &r
->options
);
10352 ndr_print_ptr(ndr
, "nc_dn", r
->nc_dn
);
10355 ndr_print_string(ndr
, "nc_dn", r
->nc_dn
);
10358 ndr_print_ptr(ndr
, "remote_dsa_obj_dn", r
->remote_dsa_obj_dn
);
10360 if (r
->remote_dsa_obj_dn
) {
10361 ndr_print_string(ndr
, "remote_dsa_obj_dn", r
->remote_dsa_obj_dn
);
10364 ndr_print_ptr(ndr
, "remote_dsa_address", r
->remote_dsa_address
);
10366 if (r
->remote_dsa_address
) {
10367 ndr_print_string(ndr
, "remote_dsa_address", r
->remote_dsa_address
);
10370 ndr_print_GUID(ndr
, "nc_obj_guid", &r
->nc_obj_guid
);
10371 ndr_print_GUID(ndr
, "remote_dsa_obj_guid", &r
->remote_dsa_obj_guid
);
10375 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaOpCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaOpCtr
*r
)
10377 uint32_t cntr_array_0
;
10378 if (ndr_flags
& NDR_SCALARS
) {
10379 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
10380 NDR_CHECK(ndr_push_align(ndr
, 4));
10381 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->time
));
10382 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
10383 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
10384 NDR_CHECK(ndr_push_drsuapi_DsReplicaOp(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_0
]));
10387 if (ndr_flags
& NDR_BUFFERS
) {
10388 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
10389 NDR_CHECK(ndr_push_drsuapi_DsReplicaOp(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_0
]));
10392 return NDR_ERR_SUCCESS
;
10395 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaOpCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaOpCtr
*r
)
10397 uint32_t cntr_array_0
;
10398 TALLOC_CTX
*_mem_save_array_0
;
10399 if (ndr_flags
& NDR_SCALARS
) {
10400 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->array
));
10401 NDR_CHECK(ndr_pull_align(ndr
, 4));
10402 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->time
));
10403 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
10404 NDR_PULL_ALLOC_N(ndr
, r
->array
, ndr_get_array_size(ndr
, &r
->array
));
10405 _mem_save_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10406 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
10407 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
10408 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOp(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_0
]));
10410 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_0
, 0);
10412 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->array
, r
->count
));
10415 if (ndr_flags
& NDR_BUFFERS
) {
10416 _mem_save_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10417 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
10418 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
10419 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOp(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_0
]));
10421 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_0
, 0);
10423 return NDR_ERR_SUCCESS
;
10426 _PUBLIC_
void ndr_print_drsuapi_DsReplicaOpCtr(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaOpCtr
*r
)
10428 uint32_t cntr_array_0
;
10429 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaOpCtr");
10431 ndr_print_NTTIME(ndr
, "time", r
->time
);
10432 ndr_print_uint32(ndr
, "count", r
->count
);
10433 ndr
->print(ndr
, "%s: ARRAY(%d)", "array", (int)r
->count
);
10435 for (cntr_array_0
=0;cntr_array_0
<r
->count
;cntr_array_0
++) {
10437 if (asprintf(&idx_0
, "[%d]", cntr_array_0
) != -1) {
10438 ndr_print_drsuapi_DsReplicaOp(ndr
, "array", &r
->array
[cntr_array_0
]);
10446 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaAttrValMetaData(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaAttrValMetaData
*r
)
10448 if (ndr_flags
& NDR_SCALARS
) {
10449 NDR_CHECK(ndr_push_align(ndr
, 8));
10450 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->attribute_name
));
10451 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->object_dn
));
10452 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_DATA_BLOB(0, r
->binary
, 0)));
10453 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->binary
));
10454 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->deleted
));
10455 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->created
));
10456 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->version
));
10457 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->originating_change_time
));
10458 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->originating_invocation_id
));
10459 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->originating_usn
));
10460 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->local_usn
));
10462 if (ndr_flags
& NDR_BUFFERS
) {
10463 if (r
->attribute_name
) {
10464 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->attribute_name
, CH_UTF16
)));
10465 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10466 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->attribute_name
, CH_UTF16
)));
10467 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->attribute_name
, ndr_charset_length(r
->attribute_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10469 if (r
->object_dn
) {
10470 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->object_dn
, CH_UTF16
)));
10471 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10472 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->object_dn
, CH_UTF16
)));
10473 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->object_dn
, ndr_charset_length(r
->object_dn
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10476 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->binary
));
10479 return NDR_ERR_SUCCESS
;
10482 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaAttrValMetaData(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaAttrValMetaData
*r
)
10484 uint32_t _ptr_attribute_name
;
10485 TALLOC_CTX
*_mem_save_attribute_name_0
;
10486 uint32_t _ptr_object_dn
;
10487 TALLOC_CTX
*_mem_save_object_dn_0
;
10488 uint32_t _ptr_binary
;
10489 TALLOC_CTX
*_mem_save_binary_0
;
10490 if (ndr_flags
& NDR_SCALARS
) {
10491 NDR_CHECK(ndr_pull_align(ndr
, 8));
10492 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_attribute_name
));
10493 if (_ptr_attribute_name
) {
10494 NDR_PULL_ALLOC(ndr
, r
->attribute_name
);
10496 r
->attribute_name
= NULL
;
10498 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_object_dn
));
10499 if (_ptr_object_dn
) {
10500 NDR_PULL_ALLOC(ndr
, r
->object_dn
);
10502 r
->object_dn
= NULL
;
10504 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->__ndr_size_binary
));
10505 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_binary
));
10507 NDR_PULL_ALLOC(ndr
, r
->binary
);
10511 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->deleted
));
10512 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->created
));
10513 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
10514 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->originating_change_time
));
10515 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->originating_invocation_id
));
10516 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->originating_usn
));
10517 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->local_usn
));
10519 if (ndr_flags
& NDR_BUFFERS
) {
10520 if (r
->attribute_name
) {
10521 _mem_save_attribute_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10522 NDR_PULL_SET_MEM_CTX(ndr
, r
->attribute_name
, 0);
10523 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->attribute_name
));
10524 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->attribute_name
));
10525 if (ndr_get_array_length(ndr
, &r
->attribute_name
) > ndr_get_array_size(ndr
, &r
->attribute_name
)) {
10526 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->attribute_name
), ndr_get_array_length(ndr
, &r
->attribute_name
));
10528 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->attribute_name
), sizeof(uint16_t)));
10529 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->attribute_name
, ndr_get_array_length(ndr
, &r
->attribute_name
), sizeof(uint16_t), CH_UTF16
));
10530 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_attribute_name_0
, 0);
10532 if (r
->object_dn
) {
10533 _mem_save_object_dn_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10534 NDR_PULL_SET_MEM_CTX(ndr
, r
->object_dn
, 0);
10535 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->object_dn
));
10536 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->object_dn
));
10537 if (ndr_get_array_length(ndr
, &r
->object_dn
) > ndr_get_array_size(ndr
, &r
->object_dn
)) {
10538 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->object_dn
), ndr_get_array_length(ndr
, &r
->object_dn
));
10540 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->object_dn
), sizeof(uint16_t)));
10541 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->object_dn
, ndr_get_array_length(ndr
, &r
->object_dn
), sizeof(uint16_t), CH_UTF16
));
10542 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_object_dn_0
, 0);
10545 _mem_save_binary_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10546 NDR_PULL_SET_MEM_CTX(ndr
, r
->binary
, 0);
10547 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->binary
));
10548 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_binary_0
, 0);
10551 return NDR_ERR_SUCCESS
;
10554 _PUBLIC_
void ndr_print_drsuapi_DsReplicaAttrValMetaData(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaAttrValMetaData
*r
)
10556 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaAttrValMetaData");
10558 ndr_print_ptr(ndr
, "attribute_name", r
->attribute_name
);
10560 if (r
->attribute_name
) {
10561 ndr_print_string(ndr
, "attribute_name", r
->attribute_name
);
10564 ndr_print_ptr(ndr
, "object_dn", r
->object_dn
);
10566 if (r
->object_dn
) {
10567 ndr_print_string(ndr
, "object_dn", r
->object_dn
);
10570 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
);
10571 ndr_print_ptr(ndr
, "binary", r
->binary
);
10574 ndr_print_DATA_BLOB(ndr
, "binary", *r
->binary
);
10577 ndr_print_NTTIME(ndr
, "deleted", r
->deleted
);
10578 ndr_print_NTTIME(ndr
, "created", r
->created
);
10579 ndr_print_uint32(ndr
, "version", r
->version
);
10580 ndr_print_NTTIME(ndr
, "originating_change_time", r
->originating_change_time
);
10581 ndr_print_GUID(ndr
, "originating_invocation_id", &r
->originating_invocation_id
);
10582 ndr_print_hyper(ndr
, "originating_usn", r
->originating_usn
);
10583 ndr_print_hyper(ndr
, "local_usn", r
->local_usn
);
10587 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaAttrValMetaDataCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaAttrValMetaDataCtr
*r
)
10589 uint32_t cntr_array_0
;
10590 if (ndr_flags
& NDR_SCALARS
) {
10591 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
10592 NDR_CHECK(ndr_push_align(ndr
, 8));
10593 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
10594 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, r
->enumeration_context
));
10595 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
10596 NDR_CHECK(ndr_push_drsuapi_DsReplicaAttrValMetaData(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_0
]));
10599 if (ndr_flags
& NDR_BUFFERS
) {
10600 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
10601 NDR_CHECK(ndr_push_drsuapi_DsReplicaAttrValMetaData(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_0
]));
10604 return NDR_ERR_SUCCESS
;
10607 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaAttrValMetaDataCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaAttrValMetaDataCtr
*r
)
10609 uint32_t cntr_array_0
;
10610 TALLOC_CTX
*_mem_save_array_0
;
10611 if (ndr_flags
& NDR_SCALARS
) {
10612 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->array
));
10613 NDR_CHECK(ndr_pull_align(ndr
, 8));
10614 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
10615 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &r
->enumeration_context
));
10616 NDR_PULL_ALLOC_N(ndr
, r
->array
, ndr_get_array_size(ndr
, &r
->array
));
10617 _mem_save_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10618 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
10619 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
10620 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttrValMetaData(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_0
]));
10622 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_0
, 0);
10624 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->array
, r
->count
));
10627 if (ndr_flags
& NDR_BUFFERS
) {
10628 _mem_save_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10629 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
10630 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
10631 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttrValMetaData(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_0
]));
10633 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_0
, 0);
10635 return NDR_ERR_SUCCESS
;
10638 _PUBLIC_
void ndr_print_drsuapi_DsReplicaAttrValMetaDataCtr(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaAttrValMetaDataCtr
*r
)
10640 uint32_t cntr_array_0
;
10641 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaAttrValMetaDataCtr");
10643 ndr_print_uint32(ndr
, "count", r
->count
);
10644 ndr_print_int32(ndr
, "enumeration_context", r
->enumeration_context
);
10645 ndr
->print(ndr
, "%s: ARRAY(%d)", "array", (int)r
->count
);
10647 for (cntr_array_0
=0;cntr_array_0
<r
->count
;cntr_array_0
++) {
10649 if (asprintf(&idx_0
, "[%d]", cntr_array_0
) != -1) {
10650 ndr_print_drsuapi_DsReplicaAttrValMetaData(ndr
, "array", &r
->array
[cntr_array_0
]);
10658 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaCursor2Ctr(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaCursor2Ctr
*r
)
10660 uint32_t cntr_array_0
;
10661 if (ndr_flags
& NDR_SCALARS
) {
10662 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
10663 NDR_CHECK(ndr_push_align(ndr
, 8));
10664 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
10665 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, r
->enumeration_context
));
10666 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
10667 NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor2(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_0
]));
10670 if (ndr_flags
& NDR_BUFFERS
) {
10672 return NDR_ERR_SUCCESS
;
10675 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaCursor2Ctr(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaCursor2Ctr
*r
)
10677 uint32_t cntr_array_0
;
10678 TALLOC_CTX
*_mem_save_array_0
;
10679 if (ndr_flags
& NDR_SCALARS
) {
10680 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->array
));
10681 NDR_CHECK(ndr_pull_align(ndr
, 8));
10682 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
10683 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &r
->enumeration_context
));
10684 NDR_PULL_ALLOC_N(ndr
, r
->array
, ndr_get_array_size(ndr
, &r
->array
));
10685 _mem_save_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10686 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
10687 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
10688 NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor2(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_0
]));
10690 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_0
, 0);
10692 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->array
, r
->count
));
10695 if (ndr_flags
& NDR_BUFFERS
) {
10697 return NDR_ERR_SUCCESS
;
10700 _PUBLIC_
void ndr_print_drsuapi_DsReplicaCursor2Ctr(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaCursor2Ctr
*r
)
10702 uint32_t cntr_array_0
;
10703 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaCursor2Ctr");
10705 ndr_print_uint32(ndr
, "count", r
->count
);
10706 ndr_print_int32(ndr
, "enumeration_context", r
->enumeration_context
);
10707 ndr
->print(ndr
, "%s: ARRAY(%d)", "array", (int)r
->count
);
10709 for (cntr_array_0
=0;cntr_array_0
<r
->count
;cntr_array_0
++) {
10711 if (asprintf(&idx_0
, "[%d]", cntr_array_0
) != -1) {
10712 ndr_print_drsuapi_DsReplicaCursor2(ndr
, "array", &r
->array
[cntr_array_0
]);
10720 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaCursor3(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaCursor3
*r
)
10722 if (ndr_flags
& NDR_SCALARS
) {
10723 NDR_CHECK(ndr_push_align(ndr
, 8));
10724 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->source_dsa_invocation_id
));
10725 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->highest_usn
));
10726 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->last_sync_success
));
10727 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->source_dsa_obj_dn
));
10729 if (ndr_flags
& NDR_BUFFERS
) {
10730 if (r
->source_dsa_obj_dn
) {
10731 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->source_dsa_obj_dn
, CH_UTF16
)));
10732 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10733 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->source_dsa_obj_dn
, CH_UTF16
)));
10734 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
));
10737 return NDR_ERR_SUCCESS
;
10740 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaCursor3(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaCursor3
*r
)
10742 uint32_t _ptr_source_dsa_obj_dn
;
10743 TALLOC_CTX
*_mem_save_source_dsa_obj_dn_0
;
10744 if (ndr_flags
& NDR_SCALARS
) {
10745 NDR_CHECK(ndr_pull_align(ndr
, 8));
10746 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->source_dsa_invocation_id
));
10747 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->highest_usn
));
10748 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->last_sync_success
));
10749 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_source_dsa_obj_dn
));
10750 if (_ptr_source_dsa_obj_dn
) {
10751 NDR_PULL_ALLOC(ndr
, r
->source_dsa_obj_dn
);
10753 r
->source_dsa_obj_dn
= NULL
;
10756 if (ndr_flags
& NDR_BUFFERS
) {
10757 if (r
->source_dsa_obj_dn
) {
10758 _mem_save_source_dsa_obj_dn_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10759 NDR_PULL_SET_MEM_CTX(ndr
, r
->source_dsa_obj_dn
, 0);
10760 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->source_dsa_obj_dn
));
10761 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->source_dsa_obj_dn
));
10762 if (ndr_get_array_length(ndr
, &r
->source_dsa_obj_dn
) > ndr_get_array_size(ndr
, &r
->source_dsa_obj_dn
)) {
10763 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->source_dsa_obj_dn
), ndr_get_array_length(ndr
, &r
->source_dsa_obj_dn
));
10765 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->source_dsa_obj_dn
), sizeof(uint16_t)));
10766 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->source_dsa_obj_dn
, ndr_get_array_length(ndr
, &r
->source_dsa_obj_dn
), sizeof(uint16_t), CH_UTF16
));
10767 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_source_dsa_obj_dn_0
, 0);
10770 return NDR_ERR_SUCCESS
;
10773 _PUBLIC_
void ndr_print_drsuapi_DsReplicaCursor3(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaCursor3
*r
)
10775 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaCursor3");
10777 ndr_print_GUID(ndr
, "source_dsa_invocation_id", &r
->source_dsa_invocation_id
);
10778 ndr_print_hyper(ndr
, "highest_usn", r
->highest_usn
);
10779 ndr_print_NTTIME(ndr
, "last_sync_success", r
->last_sync_success
);
10780 ndr_print_ptr(ndr
, "source_dsa_obj_dn", r
->source_dsa_obj_dn
);
10782 if (r
->source_dsa_obj_dn
) {
10783 ndr_print_string(ndr
, "source_dsa_obj_dn", r
->source_dsa_obj_dn
);
10789 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaCursor3Ctr(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaCursor3Ctr
*r
)
10791 uint32_t cntr_array_0
;
10792 if (ndr_flags
& NDR_SCALARS
) {
10793 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
10794 NDR_CHECK(ndr_push_align(ndr
, 8));
10795 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
10796 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, r
->enumeration_context
));
10797 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
10798 NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor3(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_0
]));
10801 if (ndr_flags
& NDR_BUFFERS
) {
10802 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
10803 NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor3(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_0
]));
10806 return NDR_ERR_SUCCESS
;
10809 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaCursor3Ctr(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaCursor3Ctr
*r
)
10811 uint32_t cntr_array_0
;
10812 TALLOC_CTX
*_mem_save_array_0
;
10813 if (ndr_flags
& NDR_SCALARS
) {
10814 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->array
));
10815 NDR_CHECK(ndr_pull_align(ndr
, 8));
10816 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
10817 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &r
->enumeration_context
));
10818 NDR_PULL_ALLOC_N(ndr
, r
->array
, ndr_get_array_size(ndr
, &r
->array
));
10819 _mem_save_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10820 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
10821 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
10822 NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor3(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_0
]));
10824 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_0
, 0);
10826 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->array
, r
->count
));
10829 if (ndr_flags
& NDR_BUFFERS
) {
10830 _mem_save_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10831 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
10832 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
10833 NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor3(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_0
]));
10835 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_0
, 0);
10837 return NDR_ERR_SUCCESS
;
10840 _PUBLIC_
void ndr_print_drsuapi_DsReplicaCursor3Ctr(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaCursor3Ctr
*r
)
10842 uint32_t cntr_array_0
;
10843 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaCursor3Ctr");
10845 ndr_print_uint32(ndr
, "count", r
->count
);
10846 ndr_print_int32(ndr
, "enumeration_context", r
->enumeration_context
);
10847 ndr
->print(ndr
, "%s: ARRAY(%d)", "array", (int)r
->count
);
10849 for (cntr_array_0
=0;cntr_array_0
<r
->count
;cntr_array_0
++) {
10851 if (asprintf(&idx_0
, "[%d]", cntr_array_0
) != -1) {
10852 ndr_print_drsuapi_DsReplicaCursor3(ndr
, "array", &r
->array
[cntr_array_0
]);
10860 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaObjMetaData2(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaObjMetaData2
*r
)
10862 if (ndr_flags
& NDR_SCALARS
) {
10863 NDR_CHECK(ndr_push_align(ndr
, 8));
10864 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->attribute_name
));
10865 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->version
));
10866 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->originating_change_time
));
10867 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->originating_invocation_id
));
10868 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->originating_usn
));
10869 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->local_usn
));
10870 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->originating_dsa_dn
));
10872 if (ndr_flags
& NDR_BUFFERS
) {
10873 if (r
->attribute_name
) {
10874 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->attribute_name
, CH_UTF16
)));
10875 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10876 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->attribute_name
, CH_UTF16
)));
10877 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->attribute_name
, ndr_charset_length(r
->attribute_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10879 if (r
->originating_dsa_dn
) {
10880 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->originating_dsa_dn
, CH_UTF16
)));
10881 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
10882 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->originating_dsa_dn
, CH_UTF16
)));
10883 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
));
10886 return NDR_ERR_SUCCESS
;
10889 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaObjMetaData2(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaObjMetaData2
*r
)
10891 uint32_t _ptr_attribute_name
;
10892 TALLOC_CTX
*_mem_save_attribute_name_0
;
10893 uint32_t _ptr_originating_dsa_dn
;
10894 TALLOC_CTX
*_mem_save_originating_dsa_dn_0
;
10895 if (ndr_flags
& NDR_SCALARS
) {
10896 NDR_CHECK(ndr_pull_align(ndr
, 8));
10897 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_attribute_name
));
10898 if (_ptr_attribute_name
) {
10899 NDR_PULL_ALLOC(ndr
, r
->attribute_name
);
10901 r
->attribute_name
= NULL
;
10903 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
10904 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->originating_change_time
));
10905 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->originating_invocation_id
));
10906 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->originating_usn
));
10907 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->local_usn
));
10908 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_originating_dsa_dn
));
10909 if (_ptr_originating_dsa_dn
) {
10910 NDR_PULL_ALLOC(ndr
, r
->originating_dsa_dn
);
10912 r
->originating_dsa_dn
= NULL
;
10915 if (ndr_flags
& NDR_BUFFERS
) {
10916 if (r
->attribute_name
) {
10917 _mem_save_attribute_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10918 NDR_PULL_SET_MEM_CTX(ndr
, r
->attribute_name
, 0);
10919 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->attribute_name
));
10920 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->attribute_name
));
10921 if (ndr_get_array_length(ndr
, &r
->attribute_name
) > ndr_get_array_size(ndr
, &r
->attribute_name
)) {
10922 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->attribute_name
), ndr_get_array_length(ndr
, &r
->attribute_name
));
10924 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->attribute_name
), sizeof(uint16_t)));
10925 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->attribute_name
, ndr_get_array_length(ndr
, &r
->attribute_name
), sizeof(uint16_t), CH_UTF16
));
10926 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_attribute_name_0
, 0);
10928 if (r
->originating_dsa_dn
) {
10929 _mem_save_originating_dsa_dn_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10930 NDR_PULL_SET_MEM_CTX(ndr
, r
->originating_dsa_dn
, 0);
10931 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->originating_dsa_dn
));
10932 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->originating_dsa_dn
));
10933 if (ndr_get_array_length(ndr
, &r
->originating_dsa_dn
) > ndr_get_array_size(ndr
, &r
->originating_dsa_dn
)) {
10934 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->originating_dsa_dn
), ndr_get_array_length(ndr
, &r
->originating_dsa_dn
));
10936 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->originating_dsa_dn
), sizeof(uint16_t)));
10937 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->originating_dsa_dn
, ndr_get_array_length(ndr
, &r
->originating_dsa_dn
), sizeof(uint16_t), CH_UTF16
));
10938 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_originating_dsa_dn_0
, 0);
10941 return NDR_ERR_SUCCESS
;
10944 _PUBLIC_
void ndr_print_drsuapi_DsReplicaObjMetaData2(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaObjMetaData2
*r
)
10946 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaObjMetaData2");
10948 ndr_print_ptr(ndr
, "attribute_name", r
->attribute_name
);
10950 if (r
->attribute_name
) {
10951 ndr_print_string(ndr
, "attribute_name", r
->attribute_name
);
10954 ndr_print_uint32(ndr
, "version", r
->version
);
10955 ndr_print_NTTIME(ndr
, "originating_change_time", r
->originating_change_time
);
10956 ndr_print_GUID(ndr
, "originating_invocation_id", &r
->originating_invocation_id
);
10957 ndr_print_hyper(ndr
, "originating_usn", r
->originating_usn
);
10958 ndr_print_hyper(ndr
, "local_usn", r
->local_usn
);
10959 ndr_print_ptr(ndr
, "originating_dsa_dn", r
->originating_dsa_dn
);
10961 if (r
->originating_dsa_dn
) {
10962 ndr_print_string(ndr
, "originating_dsa_dn", r
->originating_dsa_dn
);
10968 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaObjMetaData2Ctr(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaObjMetaData2Ctr
*r
)
10970 uint32_t cntr_array_0
;
10971 if (ndr_flags
& NDR_SCALARS
) {
10972 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
10973 NDR_CHECK(ndr_push_align(ndr
, 8));
10974 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
10975 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, r
->enumeration_context
));
10976 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
10977 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjMetaData2(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_0
]));
10980 if (ndr_flags
& NDR_BUFFERS
) {
10981 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
10982 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjMetaData2(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_0
]));
10985 return NDR_ERR_SUCCESS
;
10988 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaObjMetaData2Ctr(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaObjMetaData2Ctr
*r
)
10990 uint32_t cntr_array_0
;
10991 TALLOC_CTX
*_mem_save_array_0
;
10992 if (ndr_flags
& NDR_SCALARS
) {
10993 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->array
));
10994 NDR_CHECK(ndr_pull_align(ndr
, 8));
10995 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
10996 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &r
->enumeration_context
));
10997 NDR_PULL_ALLOC_N(ndr
, r
->array
, ndr_get_array_size(ndr
, &r
->array
));
10998 _mem_save_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10999 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
11000 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
11001 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjMetaData2(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_0
]));
11003 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_0
, 0);
11005 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->array
, r
->count
));
11008 if (ndr_flags
& NDR_BUFFERS
) {
11009 _mem_save_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11010 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
11011 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
11012 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjMetaData2(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_0
]));
11014 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_0
, 0);
11016 return NDR_ERR_SUCCESS
;
11019 _PUBLIC_
void ndr_print_drsuapi_DsReplicaObjMetaData2Ctr(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaObjMetaData2Ctr
*r
)
11021 uint32_t cntr_array_0
;
11022 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaObjMetaData2Ctr");
11024 ndr_print_uint32(ndr
, "count", r
->count
);
11025 ndr_print_int32(ndr
, "enumeration_context", r
->enumeration_context
);
11026 ndr
->print(ndr
, "%s: ARRAY(%d)", "array", (int)r
->count
);
11028 for (cntr_array_0
=0;cntr_array_0
<r
->count
;cntr_array_0
++) {
11030 if (asprintf(&idx_0
, "[%d]", cntr_array_0
) != -1) {
11031 ndr_print_drsuapi_DsReplicaObjMetaData2(ndr
, "array", &r
->array
[cntr_array_0
]);
11039 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaAttrValMetaData2(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaAttrValMetaData2
*r
)
11041 if (ndr_flags
& NDR_SCALARS
) {
11042 NDR_CHECK(ndr_push_align(ndr
, 8));
11043 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->attribute_name
));
11044 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->object_dn
));
11045 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_DATA_BLOB(0, r
->binary
, 0)));
11046 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->binary
));
11047 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->deleted
));
11048 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->created
));
11049 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->version
));
11050 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->originating_change_time
));
11051 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->originating_invocation_id
));
11052 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->originating_usn
));
11053 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->local_usn
));
11054 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->originating_dsa_dn
));
11056 if (ndr_flags
& NDR_BUFFERS
) {
11057 if (r
->attribute_name
) {
11058 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->attribute_name
, CH_UTF16
)));
11059 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11060 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->attribute_name
, CH_UTF16
)));
11061 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->attribute_name
, ndr_charset_length(r
->attribute_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11063 if (r
->object_dn
) {
11064 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->object_dn
, CH_UTF16
)));
11065 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11066 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->object_dn
, CH_UTF16
)));
11067 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->object_dn
, ndr_charset_length(r
->object_dn
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11070 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->binary
));
11072 if (r
->originating_dsa_dn
) {
11073 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->originating_dsa_dn
, CH_UTF16
)));
11074 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11075 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->originating_dsa_dn
, CH_UTF16
)));
11076 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
));
11079 return NDR_ERR_SUCCESS
;
11082 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaAttrValMetaData2(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaAttrValMetaData2
*r
)
11084 uint32_t _ptr_attribute_name
;
11085 TALLOC_CTX
*_mem_save_attribute_name_0
;
11086 uint32_t _ptr_object_dn
;
11087 TALLOC_CTX
*_mem_save_object_dn_0
;
11088 uint32_t _ptr_binary
;
11089 TALLOC_CTX
*_mem_save_binary_0
;
11090 uint32_t _ptr_originating_dsa_dn
;
11091 TALLOC_CTX
*_mem_save_originating_dsa_dn_0
;
11092 if (ndr_flags
& NDR_SCALARS
) {
11093 NDR_CHECK(ndr_pull_align(ndr
, 8));
11094 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_attribute_name
));
11095 if (_ptr_attribute_name
) {
11096 NDR_PULL_ALLOC(ndr
, r
->attribute_name
);
11098 r
->attribute_name
= NULL
;
11100 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_object_dn
));
11101 if (_ptr_object_dn
) {
11102 NDR_PULL_ALLOC(ndr
, r
->object_dn
);
11104 r
->object_dn
= NULL
;
11106 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->__ndr_size_binary
));
11107 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_binary
));
11109 NDR_PULL_ALLOC(ndr
, r
->binary
);
11113 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->deleted
));
11114 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->created
));
11115 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
11116 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->originating_change_time
));
11117 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->originating_invocation_id
));
11118 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->originating_usn
));
11119 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->local_usn
));
11120 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_originating_dsa_dn
));
11121 if (_ptr_originating_dsa_dn
) {
11122 NDR_PULL_ALLOC(ndr
, r
->originating_dsa_dn
);
11124 r
->originating_dsa_dn
= NULL
;
11127 if (ndr_flags
& NDR_BUFFERS
) {
11128 if (r
->attribute_name
) {
11129 _mem_save_attribute_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11130 NDR_PULL_SET_MEM_CTX(ndr
, r
->attribute_name
, 0);
11131 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->attribute_name
));
11132 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->attribute_name
));
11133 if (ndr_get_array_length(ndr
, &r
->attribute_name
) > ndr_get_array_size(ndr
, &r
->attribute_name
)) {
11134 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->attribute_name
), ndr_get_array_length(ndr
, &r
->attribute_name
));
11136 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->attribute_name
), sizeof(uint16_t)));
11137 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->attribute_name
, ndr_get_array_length(ndr
, &r
->attribute_name
), sizeof(uint16_t), CH_UTF16
));
11138 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_attribute_name_0
, 0);
11140 if (r
->object_dn
) {
11141 _mem_save_object_dn_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11142 NDR_PULL_SET_MEM_CTX(ndr
, r
->object_dn
, 0);
11143 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->object_dn
));
11144 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->object_dn
));
11145 if (ndr_get_array_length(ndr
, &r
->object_dn
) > ndr_get_array_size(ndr
, &r
->object_dn
)) {
11146 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->object_dn
), ndr_get_array_length(ndr
, &r
->object_dn
));
11148 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->object_dn
), sizeof(uint16_t)));
11149 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->object_dn
, ndr_get_array_length(ndr
, &r
->object_dn
), sizeof(uint16_t), CH_UTF16
));
11150 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_object_dn_0
, 0);
11153 _mem_save_binary_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11154 NDR_PULL_SET_MEM_CTX(ndr
, r
->binary
, 0);
11155 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->binary
));
11156 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_binary_0
, 0);
11158 if (r
->originating_dsa_dn
) {
11159 _mem_save_originating_dsa_dn_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11160 NDR_PULL_SET_MEM_CTX(ndr
, r
->originating_dsa_dn
, 0);
11161 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->originating_dsa_dn
));
11162 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->originating_dsa_dn
));
11163 if (ndr_get_array_length(ndr
, &r
->originating_dsa_dn
) > ndr_get_array_size(ndr
, &r
->originating_dsa_dn
)) {
11164 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->originating_dsa_dn
), ndr_get_array_length(ndr
, &r
->originating_dsa_dn
));
11166 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->originating_dsa_dn
), sizeof(uint16_t)));
11167 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->originating_dsa_dn
, ndr_get_array_length(ndr
, &r
->originating_dsa_dn
), sizeof(uint16_t), CH_UTF16
));
11168 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_originating_dsa_dn_0
, 0);
11171 return NDR_ERR_SUCCESS
;
11174 _PUBLIC_
void ndr_print_drsuapi_DsReplicaAttrValMetaData2(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaAttrValMetaData2
*r
)
11176 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaAttrValMetaData2");
11178 ndr_print_ptr(ndr
, "attribute_name", r
->attribute_name
);
11180 if (r
->attribute_name
) {
11181 ndr_print_string(ndr
, "attribute_name", r
->attribute_name
);
11184 ndr_print_ptr(ndr
, "object_dn", r
->object_dn
);
11186 if (r
->object_dn
) {
11187 ndr_print_string(ndr
, "object_dn", r
->object_dn
);
11190 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
);
11191 ndr_print_ptr(ndr
, "binary", r
->binary
);
11194 ndr_print_DATA_BLOB(ndr
, "binary", *r
->binary
);
11197 ndr_print_NTTIME(ndr
, "deleted", r
->deleted
);
11198 ndr_print_NTTIME(ndr
, "created", r
->created
);
11199 ndr_print_uint32(ndr
, "version", r
->version
);
11200 ndr_print_NTTIME(ndr
, "originating_change_time", r
->originating_change_time
);
11201 ndr_print_GUID(ndr
, "originating_invocation_id", &r
->originating_invocation_id
);
11202 ndr_print_hyper(ndr
, "originating_usn", r
->originating_usn
);
11203 ndr_print_hyper(ndr
, "local_usn", r
->local_usn
);
11204 ndr_print_ptr(ndr
, "originating_dsa_dn", r
->originating_dsa_dn
);
11206 if (r
->originating_dsa_dn
) {
11207 ndr_print_string(ndr
, "originating_dsa_dn", r
->originating_dsa_dn
);
11213 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaAttrValMetaData2Ctr(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaAttrValMetaData2Ctr
*r
)
11215 uint32_t cntr_array_0
;
11216 if (ndr_flags
& NDR_SCALARS
) {
11217 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
11218 NDR_CHECK(ndr_push_align(ndr
, 8));
11219 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
11220 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, r
->enumeration_context
));
11221 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
11222 NDR_CHECK(ndr_push_drsuapi_DsReplicaAttrValMetaData2(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_0
]));
11225 if (ndr_flags
& NDR_BUFFERS
) {
11226 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
11227 NDR_CHECK(ndr_push_drsuapi_DsReplicaAttrValMetaData2(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_0
]));
11230 return NDR_ERR_SUCCESS
;
11233 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaAttrValMetaData2Ctr(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaAttrValMetaData2Ctr
*r
)
11235 uint32_t cntr_array_0
;
11236 TALLOC_CTX
*_mem_save_array_0
;
11237 if (ndr_flags
& NDR_SCALARS
) {
11238 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->array
));
11239 NDR_CHECK(ndr_pull_align(ndr
, 8));
11240 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
11241 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &r
->enumeration_context
));
11242 NDR_PULL_ALLOC_N(ndr
, r
->array
, ndr_get_array_size(ndr
, &r
->array
));
11243 _mem_save_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11244 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
11245 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
11246 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttrValMetaData2(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_0
]));
11248 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_0
, 0);
11250 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->array
, r
->count
));
11253 if (ndr_flags
& NDR_BUFFERS
) {
11254 _mem_save_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11255 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
11256 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
11257 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttrValMetaData2(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_0
]));
11259 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_0
, 0);
11261 return NDR_ERR_SUCCESS
;
11264 _PUBLIC_
void ndr_print_drsuapi_DsReplicaAttrValMetaData2Ctr(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaAttrValMetaData2Ctr
*r
)
11266 uint32_t cntr_array_0
;
11267 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaAttrValMetaData2Ctr");
11269 ndr_print_uint32(ndr
, "count", r
->count
);
11270 ndr_print_int32(ndr
, "enumeration_context", r
->enumeration_context
);
11271 ndr
->print(ndr
, "%s: ARRAY(%d)", "array", (int)r
->count
);
11273 for (cntr_array_0
=0;cntr_array_0
<r
->count
;cntr_array_0
++) {
11275 if (asprintf(&idx_0
, "[%d]", cntr_array_0
) != -1) {
11276 ndr_print_drsuapi_DsReplicaAttrValMetaData2(ndr
, "array", &r
->array
[cntr_array_0
]);
11284 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaConnection04(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaConnection04
*r
)
11286 if (ndr_flags
& NDR_SCALARS
) {
11287 NDR_CHECK(ndr_push_align(ndr
, 8));
11288 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->u1
));
11289 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->u2
));
11290 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->u3
));
11291 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->bind_guid
));
11292 NDR_CHECK(ndr_push_NTTIME_1sec(ndr
, NDR_SCALARS
, r
->bind_time
));
11294 uint32_t _flags_save_ipv4address
= ndr
->flags
;
11295 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_BIGENDIAN
);
11296 NDR_CHECK(ndr_push_ipv4address(ndr
, NDR_SCALARS
, r
->client_ip_address
));
11297 ndr
->flags
= _flags_save_ipv4address
;
11299 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->u5
));
11301 if (ndr_flags
& NDR_BUFFERS
) {
11303 return NDR_ERR_SUCCESS
;
11306 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaConnection04(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaConnection04
*r
)
11308 if (ndr_flags
& NDR_SCALARS
) {
11309 NDR_CHECK(ndr_pull_align(ndr
, 8));
11310 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->u1
));
11311 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->u2
));
11312 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->u3
));
11313 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->bind_guid
));
11314 NDR_CHECK(ndr_pull_NTTIME_1sec(ndr
, NDR_SCALARS
, &r
->bind_time
));
11316 uint32_t _flags_save_ipv4address
= ndr
->flags
;
11317 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_BIGENDIAN
);
11318 NDR_CHECK(ndr_pull_ipv4address(ndr
, NDR_SCALARS
, &r
->client_ip_address
));
11319 ndr
->flags
= _flags_save_ipv4address
;
11321 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->u5
));
11323 if (ndr_flags
& NDR_BUFFERS
) {
11325 return NDR_ERR_SUCCESS
;
11328 _PUBLIC_
void ndr_print_drsuapi_DsReplicaConnection04(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaConnection04
*r
)
11330 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaConnection04");
11332 ndr_print_hyper(ndr
, "u1", r
->u1
);
11333 ndr_print_uint32(ndr
, "u2", r
->u2
);
11334 ndr_print_uint32(ndr
, "u3", r
->u3
);
11335 ndr_print_GUID(ndr
, "bind_guid", &r
->bind_guid
);
11336 ndr_print_NTTIME_1sec(ndr
, "bind_time", r
->bind_time
);
11337 ndr_print_ipv4address(ndr
, "client_ip_address", r
->client_ip_address
);
11338 ndr_print_uint32(ndr
, "u5", r
->u5
);
11342 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaConnection04Ctr(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplicaConnection04Ctr
*r
)
11344 uint32_t cntr_array_0
;
11345 if (ndr_flags
& NDR_SCALARS
) {
11346 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
11347 NDR_CHECK(ndr_push_align(ndr
, 8));
11348 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
11349 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
11350 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
11351 NDR_CHECK(ndr_push_drsuapi_DsReplicaConnection04(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_0
]));
11354 if (ndr_flags
& NDR_BUFFERS
) {
11356 return NDR_ERR_SUCCESS
;
11359 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaConnection04Ctr(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplicaConnection04Ctr
*r
)
11361 uint32_t cntr_array_0
;
11362 TALLOC_CTX
*_mem_save_array_0
;
11363 if (ndr_flags
& NDR_SCALARS
) {
11364 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->array
));
11365 NDR_CHECK(ndr_pull_align(ndr
, 8));
11366 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
11367 if (r
->count
> 10000) {
11368 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
11370 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
11371 NDR_PULL_ALLOC_N(ndr
, r
->array
, ndr_get_array_size(ndr
, &r
->array
));
11372 _mem_save_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11373 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
11374 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
11375 NDR_CHECK(ndr_pull_drsuapi_DsReplicaConnection04(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_0
]));
11377 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_0
, 0);
11379 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->array
, r
->count
));
11382 if (ndr_flags
& NDR_BUFFERS
) {
11384 return NDR_ERR_SUCCESS
;
11387 _PUBLIC_
void ndr_print_drsuapi_DsReplicaConnection04Ctr(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplicaConnection04Ctr
*r
)
11389 uint32_t cntr_array_0
;
11390 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaConnection04Ctr");
11392 ndr_print_uint32(ndr
, "count", r
->count
);
11393 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
11394 ndr
->print(ndr
, "%s: ARRAY(%d)", "array", (int)r
->count
);
11396 for (cntr_array_0
=0;cntr_array_0
<r
->count
;cntr_array_0
++) {
11398 if (asprintf(&idx_0
, "[%d]", cntr_array_0
) != -1) {
11399 ndr_print_drsuapi_DsReplicaConnection04(ndr
, "array", &r
->array
[cntr_array_0
]);
11407 static enum ndr_err_code
ndr_push_drsuapi_DsReplica06(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplica06
*r
)
11409 if (ndr_flags
& NDR_SCALARS
) {
11410 NDR_CHECK(ndr_push_align(ndr
, 8));
11411 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->str1
));
11412 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->u1
));
11413 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->u2
));
11414 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->u3
));
11415 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->u4
));
11416 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->u5
));
11417 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->u6
));
11418 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->u7
));
11420 if (ndr_flags
& NDR_BUFFERS
) {
11422 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->str1
, CH_UTF16
)));
11423 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
11424 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->str1
, CH_UTF16
)));
11425 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->str1
, ndr_charset_length(r
->str1
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
11428 return NDR_ERR_SUCCESS
;
11431 static enum ndr_err_code
ndr_pull_drsuapi_DsReplica06(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplica06
*r
)
11433 uint32_t _ptr_str1
;
11434 TALLOC_CTX
*_mem_save_str1_0
;
11435 if (ndr_flags
& NDR_SCALARS
) {
11436 NDR_CHECK(ndr_pull_align(ndr
, 8));
11437 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_str1
));
11439 NDR_PULL_ALLOC(ndr
, r
->str1
);
11443 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->u1
));
11444 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->u2
));
11445 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->u3
));
11446 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->u4
));
11447 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->u5
));
11448 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->u6
));
11449 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->u7
));
11451 if (ndr_flags
& NDR_BUFFERS
) {
11453 _mem_save_str1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11454 NDR_PULL_SET_MEM_CTX(ndr
, r
->str1
, 0);
11455 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->str1
));
11456 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->str1
));
11457 if (ndr_get_array_length(ndr
, &r
->str1
) > ndr_get_array_size(ndr
, &r
->str1
)) {
11458 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->str1
), ndr_get_array_length(ndr
, &r
->str1
));
11460 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->str1
), sizeof(uint16_t)));
11461 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->str1
, ndr_get_array_length(ndr
, &r
->str1
), sizeof(uint16_t), CH_UTF16
));
11462 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_str1_0
, 0);
11465 return NDR_ERR_SUCCESS
;
11468 _PUBLIC_
void ndr_print_drsuapi_DsReplica06(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplica06
*r
)
11470 ndr_print_struct(ndr
, name
, "drsuapi_DsReplica06");
11472 ndr_print_ptr(ndr
, "str1", r
->str1
);
11475 ndr_print_string(ndr
, "str1", r
->str1
);
11478 ndr_print_uint32(ndr
, "u1", r
->u1
);
11479 ndr_print_uint32(ndr
, "u2", r
->u2
);
11480 ndr_print_uint32(ndr
, "u3", r
->u3
);
11481 ndr_print_uint32(ndr
, "u4", r
->u4
);
11482 ndr_print_uint32(ndr
, "u5", r
->u5
);
11483 ndr_print_hyper(ndr
, "u6", r
->u6
);
11484 ndr_print_uint32(ndr
, "u7", r
->u7
);
11488 static enum ndr_err_code
ndr_push_drsuapi_DsReplica06Ctr(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsReplica06Ctr
*r
)
11490 uint32_t cntr_array_0
;
11491 if (ndr_flags
& NDR_SCALARS
) {
11492 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
11493 NDR_CHECK(ndr_push_align(ndr
, 8));
11494 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
11495 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
11496 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
11497 NDR_CHECK(ndr_push_drsuapi_DsReplica06(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_0
]));
11500 if (ndr_flags
& NDR_BUFFERS
) {
11501 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
11502 NDR_CHECK(ndr_push_drsuapi_DsReplica06(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_0
]));
11505 return NDR_ERR_SUCCESS
;
11508 static enum ndr_err_code
ndr_pull_drsuapi_DsReplica06Ctr(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsReplica06Ctr
*r
)
11510 uint32_t cntr_array_0
;
11511 TALLOC_CTX
*_mem_save_array_0
;
11512 if (ndr_flags
& NDR_SCALARS
) {
11513 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->array
));
11514 NDR_CHECK(ndr_pull_align(ndr
, 8));
11515 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
11516 if (r
->count
> 256) {
11517 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
11519 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
11520 NDR_PULL_ALLOC_N(ndr
, r
->array
, ndr_get_array_size(ndr
, &r
->array
));
11521 _mem_save_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11522 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
11523 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
11524 NDR_CHECK(ndr_pull_drsuapi_DsReplica06(ndr
, NDR_SCALARS
, &r
->array
[cntr_array_0
]));
11526 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_0
, 0);
11528 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->array
, r
->count
));
11531 if (ndr_flags
& NDR_BUFFERS
) {
11532 _mem_save_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11533 NDR_PULL_SET_MEM_CTX(ndr
, r
->array
, 0);
11534 for (cntr_array_0
= 0; cntr_array_0
< r
->count
; cntr_array_0
++) {
11535 NDR_CHECK(ndr_pull_drsuapi_DsReplica06(ndr
, NDR_BUFFERS
, &r
->array
[cntr_array_0
]));
11537 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_array_0
, 0);
11539 return NDR_ERR_SUCCESS
;
11542 _PUBLIC_
void ndr_print_drsuapi_DsReplica06Ctr(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsReplica06Ctr
*r
)
11544 uint32_t cntr_array_0
;
11545 ndr_print_struct(ndr
, name
, "drsuapi_DsReplica06Ctr");
11547 ndr_print_uint32(ndr
, "count", r
->count
);
11548 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
11549 ndr
->print(ndr
, "%s: ARRAY(%d)", "array", (int)r
->count
);
11551 for (cntr_array_0
=0;cntr_array_0
<r
->count
;cntr_array_0
++) {
11553 if (asprintf(&idx_0
, "[%d]", cntr_array_0
) != -1) {
11554 ndr_print_drsuapi_DsReplica06(ndr
, "array", &r
->array
[cntr_array_0
]);
11562 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaInfo(struct ndr_push
*ndr
, int ndr_flags
, const union drsuapi_DsReplicaInfo
*r
)
11564 if (ndr_flags
& NDR_SCALARS
) {
11565 int level
= ndr_push_get_switch_value(ndr
, r
);
11566 NDR_CHECK(ndr_push_drsuapi_DsReplicaInfoType(ndr
, NDR_SCALARS
, level
));
11568 case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS
: {
11569 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->neighbours
));
11572 case DRSUAPI_DS_REPLICA_INFO_CURSORS
: {
11573 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->cursors
));
11576 case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA
: {
11577 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->objmetadata
));
11580 case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES
: {
11581 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->connectfailures
));
11584 case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES
: {
11585 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->linkfailures
));
11588 case DRSUAPI_DS_REPLICA_INFO_PENDING_OPS
: {
11589 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->pendingops
));
11592 case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA
: {
11593 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->attrvalmetadata
));
11596 case DRSUAPI_DS_REPLICA_INFO_CURSORS2
: {
11597 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->cursors2
));
11600 case DRSUAPI_DS_REPLICA_INFO_CURSORS3
: {
11601 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->cursors3
));
11604 case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2
: {
11605 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->objmetadata2
));
11608 case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2
: {
11609 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->attrvalmetadata2
));
11612 case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02
: {
11613 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->neighbours02
));
11616 case DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04
: {
11617 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->connections04
));
11620 case DRSUAPI_DS_REPLICA_INFO_CURSORS05
: {
11621 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->cursors05
));
11624 case DRSUAPI_DS_REPLICA_INFO_06
: {
11625 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->i06
));
11629 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
11632 if (ndr_flags
& NDR_BUFFERS
) {
11633 int level
= ndr_push_get_switch_value(ndr
, r
);
11635 case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS
:
11636 if (r
->neighbours
) {
11637 NDR_CHECK(ndr_push_drsuapi_DsReplicaNeighbourCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->neighbours
));
11641 case DRSUAPI_DS_REPLICA_INFO_CURSORS
:
11643 NDR_CHECK(ndr_push_drsuapi_DsReplicaCursorCtr(ndr
, NDR_SCALARS
, r
->cursors
));
11647 case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA
:
11648 if (r
->objmetadata
) {
11649 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjMetaDataCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->objmetadata
));
11653 case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES
:
11654 if (r
->connectfailures
) {
11655 NDR_CHECK(ndr_push_drsuapi_DsReplicaKccDsaFailuresCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->connectfailures
));
11659 case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES
:
11660 if (r
->linkfailures
) {
11661 NDR_CHECK(ndr_push_drsuapi_DsReplicaKccDsaFailuresCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->linkfailures
));
11665 case DRSUAPI_DS_REPLICA_INFO_PENDING_OPS
:
11666 if (r
->pendingops
) {
11667 NDR_CHECK(ndr_push_drsuapi_DsReplicaOpCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->pendingops
));
11671 case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA
:
11672 if (r
->attrvalmetadata
) {
11673 NDR_CHECK(ndr_push_drsuapi_DsReplicaAttrValMetaDataCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->attrvalmetadata
));
11677 case DRSUAPI_DS_REPLICA_INFO_CURSORS2
:
11679 NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor2Ctr(ndr
, NDR_SCALARS
, r
->cursors2
));
11683 case DRSUAPI_DS_REPLICA_INFO_CURSORS3
:
11685 NDR_CHECK(ndr_push_drsuapi_DsReplicaCursor3Ctr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->cursors3
));
11689 case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2
:
11690 if (r
->objmetadata2
) {
11691 NDR_CHECK(ndr_push_drsuapi_DsReplicaObjMetaData2Ctr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->objmetadata2
));
11695 case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2
:
11696 if (r
->attrvalmetadata2
) {
11697 NDR_CHECK(ndr_push_drsuapi_DsReplicaAttrValMetaData2Ctr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->attrvalmetadata2
));
11701 case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02
:
11702 if (r
->neighbours02
) {
11703 NDR_CHECK(ndr_push_drsuapi_DsReplicaNeighbourCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->neighbours02
));
11707 case DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04
:
11708 if (r
->connections04
) {
11709 NDR_CHECK(ndr_push_drsuapi_DsReplicaConnection04Ctr(ndr
, NDR_SCALARS
, r
->connections04
));
11713 case DRSUAPI_DS_REPLICA_INFO_CURSORS05
:
11714 if (r
->cursors05
) {
11715 NDR_CHECK(ndr_push_drsuapi_DsReplicaCursorCtrEx(ndr
, NDR_SCALARS
, r
->cursors05
));
11719 case DRSUAPI_DS_REPLICA_INFO_06
:
11721 NDR_CHECK(ndr_push_drsuapi_DsReplica06Ctr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->i06
));
11726 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
11729 return NDR_ERR_SUCCESS
;
11732 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaInfo(struct ndr_pull
*ndr
, int ndr_flags
, union drsuapi_DsReplicaInfo
*r
)
11736 TALLOC_CTX
*_mem_save_neighbours_0
;
11737 TALLOC_CTX
*_mem_save_cursors_0
;
11738 TALLOC_CTX
*_mem_save_objmetadata_0
;
11739 TALLOC_CTX
*_mem_save_connectfailures_0
;
11740 TALLOC_CTX
*_mem_save_linkfailures_0
;
11741 TALLOC_CTX
*_mem_save_pendingops_0
;
11742 TALLOC_CTX
*_mem_save_attrvalmetadata_0
;
11743 TALLOC_CTX
*_mem_save_cursors2_0
;
11744 TALLOC_CTX
*_mem_save_cursors3_0
;
11745 TALLOC_CTX
*_mem_save_objmetadata2_0
;
11746 TALLOC_CTX
*_mem_save_attrvalmetadata2_0
;
11747 TALLOC_CTX
*_mem_save_neighbours02_0
;
11748 TALLOC_CTX
*_mem_save_connections04_0
;
11749 TALLOC_CTX
*_mem_save_cursors05_0
;
11750 TALLOC_CTX
*_mem_save_i06_0
;
11751 level
= ndr_pull_get_switch_value(ndr
, r
);
11752 if (ndr_flags
& NDR_SCALARS
) {
11753 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
11754 if (_level
!= level
) {
11755 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
11758 case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS
: {
11759 uint32_t _ptr_neighbours
;
11760 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_neighbours
));
11761 if (_ptr_neighbours
) {
11762 NDR_PULL_ALLOC(ndr
, r
->neighbours
);
11764 r
->neighbours
= NULL
;
11768 case DRSUAPI_DS_REPLICA_INFO_CURSORS
: {
11769 uint32_t _ptr_cursors
;
11770 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_cursors
));
11771 if (_ptr_cursors
) {
11772 NDR_PULL_ALLOC(ndr
, r
->cursors
);
11778 case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA
: {
11779 uint32_t _ptr_objmetadata
;
11780 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_objmetadata
));
11781 if (_ptr_objmetadata
) {
11782 NDR_PULL_ALLOC(ndr
, r
->objmetadata
);
11784 r
->objmetadata
= NULL
;
11788 case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES
: {
11789 uint32_t _ptr_connectfailures
;
11790 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_connectfailures
));
11791 if (_ptr_connectfailures
) {
11792 NDR_PULL_ALLOC(ndr
, r
->connectfailures
);
11794 r
->connectfailures
= NULL
;
11798 case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES
: {
11799 uint32_t _ptr_linkfailures
;
11800 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_linkfailures
));
11801 if (_ptr_linkfailures
) {
11802 NDR_PULL_ALLOC(ndr
, r
->linkfailures
);
11804 r
->linkfailures
= NULL
;
11808 case DRSUAPI_DS_REPLICA_INFO_PENDING_OPS
: {
11809 uint32_t _ptr_pendingops
;
11810 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_pendingops
));
11811 if (_ptr_pendingops
) {
11812 NDR_PULL_ALLOC(ndr
, r
->pendingops
);
11814 r
->pendingops
= NULL
;
11818 case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA
: {
11819 uint32_t _ptr_attrvalmetadata
;
11820 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_attrvalmetadata
));
11821 if (_ptr_attrvalmetadata
) {
11822 NDR_PULL_ALLOC(ndr
, r
->attrvalmetadata
);
11824 r
->attrvalmetadata
= NULL
;
11828 case DRSUAPI_DS_REPLICA_INFO_CURSORS2
: {
11829 uint32_t _ptr_cursors2
;
11830 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_cursors2
));
11831 if (_ptr_cursors2
) {
11832 NDR_PULL_ALLOC(ndr
, r
->cursors2
);
11834 r
->cursors2
= NULL
;
11838 case DRSUAPI_DS_REPLICA_INFO_CURSORS3
: {
11839 uint32_t _ptr_cursors3
;
11840 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_cursors3
));
11841 if (_ptr_cursors3
) {
11842 NDR_PULL_ALLOC(ndr
, r
->cursors3
);
11844 r
->cursors3
= NULL
;
11848 case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2
: {
11849 uint32_t _ptr_objmetadata2
;
11850 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_objmetadata2
));
11851 if (_ptr_objmetadata2
) {
11852 NDR_PULL_ALLOC(ndr
, r
->objmetadata2
);
11854 r
->objmetadata2
= NULL
;
11858 case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2
: {
11859 uint32_t _ptr_attrvalmetadata2
;
11860 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_attrvalmetadata2
));
11861 if (_ptr_attrvalmetadata2
) {
11862 NDR_PULL_ALLOC(ndr
, r
->attrvalmetadata2
);
11864 r
->attrvalmetadata2
= NULL
;
11868 case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02
: {
11869 uint32_t _ptr_neighbours02
;
11870 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_neighbours02
));
11871 if (_ptr_neighbours02
) {
11872 NDR_PULL_ALLOC(ndr
, r
->neighbours02
);
11874 r
->neighbours02
= NULL
;
11878 case DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04
: {
11879 uint32_t _ptr_connections04
;
11880 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_connections04
));
11881 if (_ptr_connections04
) {
11882 NDR_PULL_ALLOC(ndr
, r
->connections04
);
11884 r
->connections04
= NULL
;
11888 case DRSUAPI_DS_REPLICA_INFO_CURSORS05
: {
11889 uint32_t _ptr_cursors05
;
11890 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_cursors05
));
11891 if (_ptr_cursors05
) {
11892 NDR_PULL_ALLOC(ndr
, r
->cursors05
);
11894 r
->cursors05
= NULL
;
11898 case DRSUAPI_DS_REPLICA_INFO_06
: {
11900 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_i06
));
11902 NDR_PULL_ALLOC(ndr
, r
->i06
);
11909 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
11912 if (ndr_flags
& NDR_BUFFERS
) {
11914 case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS
:
11915 if (r
->neighbours
) {
11916 _mem_save_neighbours_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11917 NDR_PULL_SET_MEM_CTX(ndr
, r
->neighbours
, 0);
11918 NDR_CHECK(ndr_pull_drsuapi_DsReplicaNeighbourCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->neighbours
));
11919 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_neighbours_0
, 0);
11923 case DRSUAPI_DS_REPLICA_INFO_CURSORS
:
11925 _mem_save_cursors_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11926 NDR_PULL_SET_MEM_CTX(ndr
, r
->cursors
, 0);
11927 NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursorCtr(ndr
, NDR_SCALARS
, r
->cursors
));
11928 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_cursors_0
, 0);
11932 case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA
:
11933 if (r
->objmetadata
) {
11934 _mem_save_objmetadata_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11935 NDR_PULL_SET_MEM_CTX(ndr
, r
->objmetadata
, 0);
11936 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjMetaDataCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->objmetadata
));
11937 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_objmetadata_0
, 0);
11941 case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES
:
11942 if (r
->connectfailures
) {
11943 _mem_save_connectfailures_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11944 NDR_PULL_SET_MEM_CTX(ndr
, r
->connectfailures
, 0);
11945 NDR_CHECK(ndr_pull_drsuapi_DsReplicaKccDsaFailuresCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->connectfailures
));
11946 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_connectfailures_0
, 0);
11950 case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES
:
11951 if (r
->linkfailures
) {
11952 _mem_save_linkfailures_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11953 NDR_PULL_SET_MEM_CTX(ndr
, r
->linkfailures
, 0);
11954 NDR_CHECK(ndr_pull_drsuapi_DsReplicaKccDsaFailuresCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->linkfailures
));
11955 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_linkfailures_0
, 0);
11959 case DRSUAPI_DS_REPLICA_INFO_PENDING_OPS
:
11960 if (r
->pendingops
) {
11961 _mem_save_pendingops_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11962 NDR_PULL_SET_MEM_CTX(ndr
, r
->pendingops
, 0);
11963 NDR_CHECK(ndr_pull_drsuapi_DsReplicaOpCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->pendingops
));
11964 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_pendingops_0
, 0);
11968 case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA
:
11969 if (r
->attrvalmetadata
) {
11970 _mem_save_attrvalmetadata_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11971 NDR_PULL_SET_MEM_CTX(ndr
, r
->attrvalmetadata
, 0);
11972 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttrValMetaDataCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->attrvalmetadata
));
11973 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_attrvalmetadata_0
, 0);
11977 case DRSUAPI_DS_REPLICA_INFO_CURSORS2
:
11979 _mem_save_cursors2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11980 NDR_PULL_SET_MEM_CTX(ndr
, r
->cursors2
, 0);
11981 NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor2Ctr(ndr
, NDR_SCALARS
, r
->cursors2
));
11982 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_cursors2_0
, 0);
11986 case DRSUAPI_DS_REPLICA_INFO_CURSORS3
:
11988 _mem_save_cursors3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11989 NDR_PULL_SET_MEM_CTX(ndr
, r
->cursors3
, 0);
11990 NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursor3Ctr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->cursors3
));
11991 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_cursors3_0
, 0);
11995 case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2
:
11996 if (r
->objmetadata2
) {
11997 _mem_save_objmetadata2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11998 NDR_PULL_SET_MEM_CTX(ndr
, r
->objmetadata2
, 0);
11999 NDR_CHECK(ndr_pull_drsuapi_DsReplicaObjMetaData2Ctr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->objmetadata2
));
12000 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_objmetadata2_0
, 0);
12004 case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2
:
12005 if (r
->attrvalmetadata2
) {
12006 _mem_save_attrvalmetadata2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12007 NDR_PULL_SET_MEM_CTX(ndr
, r
->attrvalmetadata2
, 0);
12008 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAttrValMetaData2Ctr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->attrvalmetadata2
));
12009 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_attrvalmetadata2_0
, 0);
12013 case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02
:
12014 if (r
->neighbours02
) {
12015 _mem_save_neighbours02_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12016 NDR_PULL_SET_MEM_CTX(ndr
, r
->neighbours02
, 0);
12017 NDR_CHECK(ndr_pull_drsuapi_DsReplicaNeighbourCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->neighbours02
));
12018 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_neighbours02_0
, 0);
12022 case DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04
:
12023 if (r
->connections04
) {
12024 _mem_save_connections04_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12025 NDR_PULL_SET_MEM_CTX(ndr
, r
->connections04
, 0);
12026 NDR_CHECK(ndr_pull_drsuapi_DsReplicaConnection04Ctr(ndr
, NDR_SCALARS
, r
->connections04
));
12027 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_connections04_0
, 0);
12031 case DRSUAPI_DS_REPLICA_INFO_CURSORS05
:
12032 if (r
->cursors05
) {
12033 _mem_save_cursors05_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12034 NDR_PULL_SET_MEM_CTX(ndr
, r
->cursors05
, 0);
12035 NDR_CHECK(ndr_pull_drsuapi_DsReplicaCursorCtrEx(ndr
, NDR_SCALARS
, r
->cursors05
));
12036 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_cursors05_0
, 0);
12040 case DRSUAPI_DS_REPLICA_INFO_06
:
12042 _mem_save_i06_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12043 NDR_PULL_SET_MEM_CTX(ndr
, r
->i06
, 0);
12044 NDR_CHECK(ndr_pull_drsuapi_DsReplica06Ctr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->i06
));
12045 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_i06_0
, 0);
12050 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
12053 return NDR_ERR_SUCCESS
;
12056 _PUBLIC_
void ndr_print_drsuapi_DsReplicaInfo(struct ndr_print
*ndr
, const char *name
, const union drsuapi_DsReplicaInfo
*r
)
12059 level
= ndr_print_get_switch_value(ndr
, r
);
12060 ndr_print_union(ndr
, name
, level
, "drsuapi_DsReplicaInfo");
12062 case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS
:
12063 ndr_print_ptr(ndr
, "neighbours", r
->neighbours
);
12065 if (r
->neighbours
) {
12066 ndr_print_drsuapi_DsReplicaNeighbourCtr(ndr
, "neighbours", r
->neighbours
);
12071 case DRSUAPI_DS_REPLICA_INFO_CURSORS
:
12072 ndr_print_ptr(ndr
, "cursors", r
->cursors
);
12075 ndr_print_drsuapi_DsReplicaCursorCtr(ndr
, "cursors", r
->cursors
);
12080 case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA
:
12081 ndr_print_ptr(ndr
, "objmetadata", r
->objmetadata
);
12083 if (r
->objmetadata
) {
12084 ndr_print_drsuapi_DsReplicaObjMetaDataCtr(ndr
, "objmetadata", r
->objmetadata
);
12089 case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_CONNECT_FAILURES
:
12090 ndr_print_ptr(ndr
, "connectfailures", r
->connectfailures
);
12092 if (r
->connectfailures
) {
12093 ndr_print_drsuapi_DsReplicaKccDsaFailuresCtr(ndr
, "connectfailures", r
->connectfailures
);
12098 case DRSUAPI_DS_REPLICA_INFO_KCC_DSA_LINK_FAILURES
:
12099 ndr_print_ptr(ndr
, "linkfailures", r
->linkfailures
);
12101 if (r
->linkfailures
) {
12102 ndr_print_drsuapi_DsReplicaKccDsaFailuresCtr(ndr
, "linkfailures", r
->linkfailures
);
12107 case DRSUAPI_DS_REPLICA_INFO_PENDING_OPS
:
12108 ndr_print_ptr(ndr
, "pendingops", r
->pendingops
);
12110 if (r
->pendingops
) {
12111 ndr_print_drsuapi_DsReplicaOpCtr(ndr
, "pendingops", r
->pendingops
);
12116 case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA
:
12117 ndr_print_ptr(ndr
, "attrvalmetadata", r
->attrvalmetadata
);
12119 if (r
->attrvalmetadata
) {
12120 ndr_print_drsuapi_DsReplicaAttrValMetaDataCtr(ndr
, "attrvalmetadata", r
->attrvalmetadata
);
12125 case DRSUAPI_DS_REPLICA_INFO_CURSORS2
:
12126 ndr_print_ptr(ndr
, "cursors2", r
->cursors2
);
12129 ndr_print_drsuapi_DsReplicaCursor2Ctr(ndr
, "cursors2", r
->cursors2
);
12134 case DRSUAPI_DS_REPLICA_INFO_CURSORS3
:
12135 ndr_print_ptr(ndr
, "cursors3", r
->cursors3
);
12138 ndr_print_drsuapi_DsReplicaCursor3Ctr(ndr
, "cursors3", r
->cursors3
);
12143 case DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2
:
12144 ndr_print_ptr(ndr
, "objmetadata2", r
->objmetadata2
);
12146 if (r
->objmetadata2
) {
12147 ndr_print_drsuapi_DsReplicaObjMetaData2Ctr(ndr
, "objmetadata2", r
->objmetadata2
);
12152 case DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2
:
12153 ndr_print_ptr(ndr
, "attrvalmetadata2", r
->attrvalmetadata2
);
12155 if (r
->attrvalmetadata2
) {
12156 ndr_print_drsuapi_DsReplicaAttrValMetaData2Ctr(ndr
, "attrvalmetadata2", r
->attrvalmetadata2
);
12161 case DRSUAPI_DS_REPLICA_INFO_NEIGHBORS02
:
12162 ndr_print_ptr(ndr
, "neighbours02", r
->neighbours02
);
12164 if (r
->neighbours02
) {
12165 ndr_print_drsuapi_DsReplicaNeighbourCtr(ndr
, "neighbours02", r
->neighbours02
);
12170 case DRSUAPI_DS_REPLICA_INFO_CONNECTIONS04
:
12171 ndr_print_ptr(ndr
, "connections04", r
->connections04
);
12173 if (r
->connections04
) {
12174 ndr_print_drsuapi_DsReplicaConnection04Ctr(ndr
, "connections04", r
->connections04
);
12179 case DRSUAPI_DS_REPLICA_INFO_CURSORS05
:
12180 ndr_print_ptr(ndr
, "cursors05", r
->cursors05
);
12182 if (r
->cursors05
) {
12183 ndr_print_drsuapi_DsReplicaCursorCtrEx(ndr
, "cursors05", r
->cursors05
);
12188 case DRSUAPI_DS_REPLICA_INFO_06
:
12189 ndr_print_ptr(ndr
, "i06", r
->i06
);
12192 ndr_print_drsuapi_DsReplica06Ctr(ndr
, "i06", r
->i06
);
12198 ndr_print_bad_level(ndr
, name
, level
);
12202 static enum ndr_err_code
ndr_push_drsuapi_DsGetMemberships2Ctr(struct ndr_push
*ndr
, int ndr_flags
, const union drsuapi_DsGetMemberships2Ctr
*r
)
12204 if (ndr_flags
& NDR_SCALARS
) {
12205 int level
= ndr_push_get_switch_value(ndr
, r
);
12206 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, level
));
12209 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsCtr1(ndr
, NDR_SCALARS
, &r
->ctr1
));
12213 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
12216 if (ndr_flags
& NDR_BUFFERS
) {
12217 int level
= ndr_push_get_switch_value(ndr
, r
);
12220 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsCtr1(ndr
, NDR_BUFFERS
, &r
->ctr1
));
12224 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
12227 return NDR_ERR_SUCCESS
;
12230 static enum ndr_err_code
ndr_pull_drsuapi_DsGetMemberships2Ctr(struct ndr_pull
*ndr
, int ndr_flags
, union drsuapi_DsGetMemberships2Ctr
*r
)
12234 level
= ndr_pull_get_switch_value(ndr
, r
);
12235 if (ndr_flags
& NDR_SCALARS
) {
12236 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &_level
));
12237 if (_level
!= level
) {
12238 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
12242 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsCtr1(ndr
, NDR_SCALARS
, &r
->ctr1
));
12246 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
12249 if (ndr_flags
& NDR_BUFFERS
) {
12252 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsCtr1(ndr
, NDR_BUFFERS
, &r
->ctr1
));
12256 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
12259 return NDR_ERR_SUCCESS
;
12262 _PUBLIC_
void ndr_print_drsuapi_DsGetMemberships2Ctr(struct ndr_print
*ndr
, const char *name
, const union drsuapi_DsGetMemberships2Ctr
*r
)
12265 level
= ndr_print_get_switch_value(ndr
, r
);
12266 ndr_print_union(ndr
, name
, level
, "drsuapi_DsGetMemberships2Ctr");
12269 ndr_print_drsuapi_DsGetMembershipsCtr1(ndr
, "ctr1", &r
->ctr1
);
12273 ndr_print_bad_level(ndr
, name
, level
);
12277 static enum ndr_err_code
ndr_push_drsuapi_DsGetMemberships2Request1(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsGetMemberships2Request1
*r
)
12279 uint32_t cntr_req_array_1
;
12280 if (ndr_flags
& NDR_SCALARS
) {
12281 NDR_CHECK(ndr_push_align(ndr
, 4));
12282 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_req
));
12283 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->req_array
));
12285 if (ndr_flags
& NDR_BUFFERS
) {
12286 if (r
->req_array
) {
12287 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_req
));
12288 for (cntr_req_array_1
= 0; cntr_req_array_1
< r
->num_req
; cntr_req_array_1
++) {
12289 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->req_array
[cntr_req_array_1
]));
12291 for (cntr_req_array_1
= 0; cntr_req_array_1
< r
->num_req
; cntr_req_array_1
++) {
12292 if (r
->req_array
[cntr_req_array_1
]) {
12293 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsRequest1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->req_array
[cntr_req_array_1
]));
12298 return NDR_ERR_SUCCESS
;
12301 static enum ndr_err_code
ndr_pull_drsuapi_DsGetMemberships2Request1(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsGetMemberships2Request1
*r
)
12303 uint32_t _ptr_req_array
;
12304 uint32_t cntr_req_array_1
;
12305 TALLOC_CTX
*_mem_save_req_array_0
;
12306 TALLOC_CTX
*_mem_save_req_array_1
;
12307 TALLOC_CTX
*_mem_save_req_array_2
;
12308 if (ndr_flags
& NDR_SCALARS
) {
12309 NDR_CHECK(ndr_pull_align(ndr
, 4));
12310 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_req
));
12311 if (r
->num_req
< 1 || r
->num_req
> 10000) {
12312 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
12314 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_req_array
));
12315 if (_ptr_req_array
) {
12316 NDR_PULL_ALLOC(ndr
, r
->req_array
);
12318 r
->req_array
= NULL
;
12321 if (ndr_flags
& NDR_BUFFERS
) {
12322 if (r
->req_array
) {
12323 _mem_save_req_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12324 NDR_PULL_SET_MEM_CTX(ndr
, r
->req_array
, 0);
12325 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->req_array
));
12326 NDR_PULL_ALLOC_N(ndr
, r
->req_array
, ndr_get_array_size(ndr
, &r
->req_array
));
12327 _mem_save_req_array_1
= NDR_PULL_GET_MEM_CTX(ndr
);
12328 NDR_PULL_SET_MEM_CTX(ndr
, r
->req_array
, 0);
12329 for (cntr_req_array_1
= 0; cntr_req_array_1
< r
->num_req
; cntr_req_array_1
++) {
12330 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_req_array
));
12331 if (_ptr_req_array
) {
12332 NDR_PULL_ALLOC(ndr
, r
->req_array
[cntr_req_array_1
]);
12334 r
->req_array
[cntr_req_array_1
] = NULL
;
12337 for (cntr_req_array_1
= 0; cntr_req_array_1
< r
->num_req
; cntr_req_array_1
++) {
12338 if (r
->req_array
[cntr_req_array_1
]) {
12339 _mem_save_req_array_2
= NDR_PULL_GET_MEM_CTX(ndr
);
12340 NDR_PULL_SET_MEM_CTX(ndr
, r
->req_array
[cntr_req_array_1
], 0);
12341 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsRequest1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->req_array
[cntr_req_array_1
]));
12342 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_req_array_2
, 0);
12345 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_req_array_1
, 0);
12346 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_req_array_0
, 0);
12348 if (r
->req_array
) {
12349 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->req_array
, r
->num_req
));
12352 return NDR_ERR_SUCCESS
;
12355 _PUBLIC_
void ndr_print_drsuapi_DsGetMemberships2Request1(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsGetMemberships2Request1
*r
)
12357 uint32_t cntr_req_array_1
;
12358 ndr_print_struct(ndr
, name
, "drsuapi_DsGetMemberships2Request1");
12360 ndr_print_uint32(ndr
, "num_req", r
->num_req
);
12361 ndr_print_ptr(ndr
, "req_array", r
->req_array
);
12363 if (r
->req_array
) {
12364 ndr
->print(ndr
, "%s: ARRAY(%d)", "req_array", (int)r
->num_req
);
12366 for (cntr_req_array_1
=0;cntr_req_array_1
<r
->num_req
;cntr_req_array_1
++) {
12368 if (asprintf(&idx_1
, "[%d]", cntr_req_array_1
) != -1) {
12369 ndr_print_ptr(ndr
, "req_array", r
->req_array
[cntr_req_array_1
]);
12371 if (r
->req_array
[cntr_req_array_1
]) {
12372 ndr_print_drsuapi_DsGetMembershipsRequest1(ndr
, "req_array", r
->req_array
[cntr_req_array_1
]);
12384 static enum ndr_err_code
ndr_push_drsuapi_DsGetMemberships2Request(struct ndr_push
*ndr
, int ndr_flags
, const union drsuapi_DsGetMemberships2Request
*r
)
12386 if (ndr_flags
& NDR_SCALARS
) {
12387 int level
= ndr_push_get_switch_value(ndr
, r
);
12388 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, level
));
12391 NDR_CHECK(ndr_push_drsuapi_DsGetMemberships2Request1(ndr
, NDR_SCALARS
, &r
->req1
));
12395 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
12398 if (ndr_flags
& NDR_BUFFERS
) {
12399 int level
= ndr_push_get_switch_value(ndr
, r
);
12402 NDR_CHECK(ndr_push_drsuapi_DsGetMemberships2Request1(ndr
, NDR_BUFFERS
, &r
->req1
));
12406 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
12409 return NDR_ERR_SUCCESS
;
12412 static enum ndr_err_code
ndr_pull_drsuapi_DsGetMemberships2Request(struct ndr_pull
*ndr
, int ndr_flags
, union drsuapi_DsGetMemberships2Request
*r
)
12416 level
= ndr_pull_get_switch_value(ndr
, r
);
12417 if (ndr_flags
& NDR_SCALARS
) {
12418 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &_level
));
12419 if (_level
!= level
) {
12420 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
12424 NDR_CHECK(ndr_pull_drsuapi_DsGetMemberships2Request1(ndr
, NDR_SCALARS
, &r
->req1
));
12428 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
12431 if (ndr_flags
& NDR_BUFFERS
) {
12434 NDR_CHECK(ndr_pull_drsuapi_DsGetMemberships2Request1(ndr
, NDR_BUFFERS
, &r
->req1
));
12438 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
12441 return NDR_ERR_SUCCESS
;
12444 _PUBLIC_
void ndr_print_drsuapi_DsGetMemberships2Request(struct ndr_print
*ndr
, const char *name
, const union drsuapi_DsGetMemberships2Request
*r
)
12447 level
= ndr_print_get_switch_value(ndr
, r
);
12448 ndr_print_union(ndr
, name
, level
, "drsuapi_DsGetMemberships2Request");
12451 ndr_print_drsuapi_DsGetMemberships2Request1(ndr
, "req1", &r
->req1
);
12455 ndr_print_bad_level(ndr
, name
, level
);
12459 static enum ndr_err_code
ndr_push_drsuapi_DsSiteCostInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_DsSiteCostInfo
*r
)
12461 if (ndr_flags
& NDR_SCALARS
) {
12462 NDR_CHECK(ndr_push_align(ndr
, 4));
12463 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->error_code
));
12464 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->site_cost
));
12466 if (ndr_flags
& NDR_BUFFERS
) {
12468 return NDR_ERR_SUCCESS
;
12471 static enum ndr_err_code
ndr_pull_drsuapi_DsSiteCostInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_DsSiteCostInfo
*r
)
12473 if (ndr_flags
& NDR_SCALARS
) {
12474 NDR_CHECK(ndr_pull_align(ndr
, 4));
12475 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->error_code
));
12476 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->site_cost
));
12478 if (ndr_flags
& NDR_BUFFERS
) {
12480 return NDR_ERR_SUCCESS
;
12483 _PUBLIC_
void ndr_print_drsuapi_DsSiteCostInfo(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_DsSiteCostInfo
*r
)
12485 ndr_print_struct(ndr
, name
, "drsuapi_DsSiteCostInfo");
12487 ndr_print_WERROR(ndr
, "error_code", r
->error_code
);
12488 ndr_print_uint32(ndr
, "site_cost", r
->site_cost
);
12492 static enum ndr_err_code
ndr_push_drsuapi_QuerySitesByCostCtr1(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_QuerySitesByCostCtr1
*r
)
12494 uint32_t cntr_info_1
;
12495 if (ndr_flags
& NDR_SCALARS
) {
12496 NDR_CHECK(ndr_push_align(ndr
, 4));
12497 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_info
));
12498 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info
));
12499 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown
));
12501 if (ndr_flags
& NDR_BUFFERS
) {
12503 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_info
));
12504 for (cntr_info_1
= 0; cntr_info_1
< r
->num_info
; cntr_info_1
++) {
12505 NDR_CHECK(ndr_push_drsuapi_DsSiteCostInfo(ndr
, NDR_SCALARS
, &r
->info
[cntr_info_1
]));
12509 return NDR_ERR_SUCCESS
;
12512 static enum ndr_err_code
ndr_pull_drsuapi_QuerySitesByCostCtr1(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_QuerySitesByCostCtr1
*r
)
12514 uint32_t _ptr_info
;
12515 uint32_t cntr_info_1
;
12516 TALLOC_CTX
*_mem_save_info_0
;
12517 TALLOC_CTX
*_mem_save_info_1
;
12518 if (ndr_flags
& NDR_SCALARS
) {
12519 NDR_CHECK(ndr_pull_align(ndr
, 4));
12520 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_info
));
12521 if (r
->num_info
> 10000) {
12522 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
12524 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
12526 NDR_PULL_ALLOC(ndr
, r
->info
);
12530 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown
));
12532 if (ndr_flags
& NDR_BUFFERS
) {
12534 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12535 NDR_PULL_SET_MEM_CTX(ndr
, r
->info
, 0);
12536 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->info
));
12537 NDR_PULL_ALLOC_N(ndr
, r
->info
, ndr_get_array_size(ndr
, &r
->info
));
12538 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
12539 NDR_PULL_SET_MEM_CTX(ndr
, r
->info
, 0);
12540 for (cntr_info_1
= 0; cntr_info_1
< r
->num_info
; cntr_info_1
++) {
12541 NDR_CHECK(ndr_pull_drsuapi_DsSiteCostInfo(ndr
, NDR_SCALARS
, &r
->info
[cntr_info_1
]));
12543 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
12544 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
12547 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->info
, r
->num_info
));
12550 return NDR_ERR_SUCCESS
;
12553 _PUBLIC_
void ndr_print_drsuapi_QuerySitesByCostCtr1(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_QuerySitesByCostCtr1
*r
)
12555 uint32_t cntr_info_1
;
12556 ndr_print_struct(ndr
, name
, "drsuapi_QuerySitesByCostCtr1");
12558 ndr_print_uint32(ndr
, "num_info", r
->num_info
);
12559 ndr_print_ptr(ndr
, "info", r
->info
);
12562 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)r
->num_info
);
12564 for (cntr_info_1
=0;cntr_info_1
<r
->num_info
;cntr_info_1
++) {
12566 if (asprintf(&idx_1
, "[%d]", cntr_info_1
) != -1) {
12567 ndr_print_drsuapi_DsSiteCostInfo(ndr
, "info", &r
->info
[cntr_info_1
]);
12574 ndr_print_uint32(ndr
, "unknown", r
->unknown
);
12578 static enum ndr_err_code
ndr_push_drsuapi_QuerySitesByCostCtr(struct ndr_push
*ndr
, int ndr_flags
, const union drsuapi_QuerySitesByCostCtr
*r
)
12580 if (ndr_flags
& NDR_SCALARS
) {
12581 int level
= ndr_push_get_switch_value(ndr
, r
);
12582 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, level
));
12585 NDR_CHECK(ndr_push_drsuapi_QuerySitesByCostCtr1(ndr
, NDR_SCALARS
, &r
->ctr1
));
12589 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
12592 if (ndr_flags
& NDR_BUFFERS
) {
12593 int level
= ndr_push_get_switch_value(ndr
, r
);
12596 NDR_CHECK(ndr_push_drsuapi_QuerySitesByCostCtr1(ndr
, NDR_BUFFERS
, &r
->ctr1
));
12600 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
12603 return NDR_ERR_SUCCESS
;
12606 static enum ndr_err_code
ndr_pull_drsuapi_QuerySitesByCostCtr(struct ndr_pull
*ndr
, int ndr_flags
, union drsuapi_QuerySitesByCostCtr
*r
)
12610 level
= ndr_pull_get_switch_value(ndr
, r
);
12611 if (ndr_flags
& NDR_SCALARS
) {
12612 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &_level
));
12613 if (_level
!= level
) {
12614 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
12618 NDR_CHECK(ndr_pull_drsuapi_QuerySitesByCostCtr1(ndr
, NDR_SCALARS
, &r
->ctr1
));
12622 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
12625 if (ndr_flags
& NDR_BUFFERS
) {
12628 NDR_CHECK(ndr_pull_drsuapi_QuerySitesByCostCtr1(ndr
, NDR_BUFFERS
, &r
->ctr1
));
12632 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
12635 return NDR_ERR_SUCCESS
;
12638 _PUBLIC_
void ndr_print_drsuapi_QuerySitesByCostCtr(struct ndr_print
*ndr
, const char *name
, const union drsuapi_QuerySitesByCostCtr
*r
)
12641 level
= ndr_print_get_switch_value(ndr
, r
);
12642 ndr_print_union(ndr
, name
, level
, "drsuapi_QuerySitesByCostCtr");
12645 ndr_print_drsuapi_QuerySitesByCostCtr1(ndr
, "ctr1", &r
->ctr1
);
12649 ndr_print_bad_level(ndr
, name
, level
);
12653 static enum ndr_err_code
ndr_push_drsuapi_QuerySitesByCostRequest1(struct ndr_push
*ndr
, int ndr_flags
, const struct drsuapi_QuerySitesByCostRequest1
*r
)
12655 uint32_t cntr_site_to_1
;
12656 if (ndr_flags
& NDR_SCALARS
) {
12657 NDR_CHECK(ndr_push_align(ndr
, 4));
12658 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->site_from
));
12659 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_req
));
12660 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->site_to
));
12661 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->flags
));
12663 if (ndr_flags
& NDR_BUFFERS
) {
12664 if (r
->site_from
) {
12665 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->site_from
, CH_UTF16
)));
12666 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12667 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->site_from
, CH_UTF16
)));
12668 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->site_from
, ndr_charset_length(r
->site_from
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
12671 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_req
));
12672 for (cntr_site_to_1
= 0; cntr_site_to_1
< r
->num_req
; cntr_site_to_1
++) {
12673 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->site_to
[cntr_site_to_1
]));
12675 for (cntr_site_to_1
= 0; cntr_site_to_1
< r
->num_req
; cntr_site_to_1
++) {
12676 if (r
->site_to
[cntr_site_to_1
]) {
12677 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->site_to
[cntr_site_to_1
], CH_UTF16
)));
12678 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12679 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->site_to
[cntr_site_to_1
], CH_UTF16
)));
12680 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
));
12685 return NDR_ERR_SUCCESS
;
12688 static enum ndr_err_code
ndr_pull_drsuapi_QuerySitesByCostRequest1(struct ndr_pull
*ndr
, int ndr_flags
, struct drsuapi_QuerySitesByCostRequest1
*r
)
12690 uint32_t _ptr_site_from
;
12691 TALLOC_CTX
*_mem_save_site_from_0
;
12692 uint32_t _ptr_site_to
;
12693 uint32_t cntr_site_to_1
;
12694 TALLOC_CTX
*_mem_save_site_to_0
;
12695 TALLOC_CTX
*_mem_save_site_to_1
;
12696 TALLOC_CTX
*_mem_save_site_to_2
;
12697 if (ndr_flags
& NDR_SCALARS
) {
12698 NDR_CHECK(ndr_pull_align(ndr
, 4));
12699 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_site_from
));
12700 if (_ptr_site_from
) {
12701 NDR_PULL_ALLOC(ndr
, r
->site_from
);
12703 r
->site_from
= NULL
;
12705 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_req
));
12706 if (r
->num_req
< 1 || r
->num_req
> 10000) {
12707 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
12709 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_site_to
));
12710 if (_ptr_site_to
) {
12711 NDR_PULL_ALLOC(ndr
, r
->site_to
);
12715 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->flags
));
12717 if (ndr_flags
& NDR_BUFFERS
) {
12718 if (r
->site_from
) {
12719 _mem_save_site_from_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12720 NDR_PULL_SET_MEM_CTX(ndr
, r
->site_from
, 0);
12721 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->site_from
));
12722 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->site_from
));
12723 if (ndr_get_array_length(ndr
, &r
->site_from
) > ndr_get_array_size(ndr
, &r
->site_from
)) {
12724 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->site_from
), ndr_get_array_length(ndr
, &r
->site_from
));
12726 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->site_from
), sizeof(uint16_t)));
12727 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->site_from
, ndr_get_array_length(ndr
, &r
->site_from
), sizeof(uint16_t), CH_UTF16
));
12728 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_from_0
, 0);
12731 _mem_save_site_to_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12732 NDR_PULL_SET_MEM_CTX(ndr
, r
->site_to
, 0);
12733 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->site_to
));
12734 NDR_PULL_ALLOC_N(ndr
, r
->site_to
, ndr_get_array_size(ndr
, &r
->site_to
));
12735 _mem_save_site_to_1
= NDR_PULL_GET_MEM_CTX(ndr
);
12736 NDR_PULL_SET_MEM_CTX(ndr
, r
->site_to
, 0);
12737 for (cntr_site_to_1
= 0; cntr_site_to_1
< r
->num_req
; cntr_site_to_1
++) {
12738 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_site_to
));
12739 if (_ptr_site_to
) {
12740 NDR_PULL_ALLOC(ndr
, r
->site_to
[cntr_site_to_1
]);
12742 r
->site_to
[cntr_site_to_1
] = NULL
;
12745 for (cntr_site_to_1
= 0; cntr_site_to_1
< r
->num_req
; cntr_site_to_1
++) {
12746 if (r
->site_to
[cntr_site_to_1
]) {
12747 _mem_save_site_to_2
= NDR_PULL_GET_MEM_CTX(ndr
);
12748 NDR_PULL_SET_MEM_CTX(ndr
, r
->site_to
[cntr_site_to_1
], 0);
12749 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->site_to
[cntr_site_to_1
]));
12750 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->site_to
[cntr_site_to_1
]));
12751 if (ndr_get_array_length(ndr
, &r
->site_to
[cntr_site_to_1
]) > ndr_get_array_size(ndr
, &r
->site_to
[cntr_site_to_1
])) {
12752 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->site_to
[cntr_site_to_1
]), ndr_get_array_length(ndr
, &r
->site_to
[cntr_site_to_1
]));
12754 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->site_to
[cntr_site_to_1
]), sizeof(uint16_t)));
12755 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->site_to
[cntr_site_to_1
], ndr_get_array_length(ndr
, &r
->site_to
[cntr_site_to_1
]), sizeof(uint16_t), CH_UTF16
));
12756 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_to_2
, 0);
12759 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_to_1
, 0);
12760 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_site_to_0
, 0);
12763 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->site_to
, r
->num_req
));
12766 return NDR_ERR_SUCCESS
;
12769 _PUBLIC_
void ndr_print_drsuapi_QuerySitesByCostRequest1(struct ndr_print
*ndr
, const char *name
, const struct drsuapi_QuerySitesByCostRequest1
*r
)
12771 uint32_t cntr_site_to_1
;
12772 ndr_print_struct(ndr
, name
, "drsuapi_QuerySitesByCostRequest1");
12774 ndr_print_ptr(ndr
, "site_from", r
->site_from
);
12776 if (r
->site_from
) {
12777 ndr_print_string(ndr
, "site_from", r
->site_from
);
12780 ndr_print_uint32(ndr
, "num_req", r
->num_req
);
12781 ndr_print_ptr(ndr
, "site_to", r
->site_to
);
12784 ndr
->print(ndr
, "%s: ARRAY(%d)", "site_to", (int)r
->num_req
);
12786 for (cntr_site_to_1
=0;cntr_site_to_1
<r
->num_req
;cntr_site_to_1
++) {
12788 if (asprintf(&idx_1
, "[%d]", cntr_site_to_1
) != -1) {
12789 ndr_print_ptr(ndr
, "site_to", r
->site_to
[cntr_site_to_1
]);
12791 if (r
->site_to
[cntr_site_to_1
]) {
12792 ndr_print_string(ndr
, "site_to", r
->site_to
[cntr_site_to_1
]);
12801 ndr_print_uint32(ndr
, "flags", r
->flags
);
12805 static enum ndr_err_code
ndr_push_drsuapi_QuerySitesByCostRequest(struct ndr_push
*ndr
, int ndr_flags
, const union drsuapi_QuerySitesByCostRequest
*r
)
12807 if (ndr_flags
& NDR_SCALARS
) {
12808 int level
= ndr_push_get_switch_value(ndr
, r
);
12809 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, level
));
12812 NDR_CHECK(ndr_push_drsuapi_QuerySitesByCostRequest1(ndr
, NDR_SCALARS
, &r
->req1
));
12816 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
12819 if (ndr_flags
& NDR_BUFFERS
) {
12820 int level
= ndr_push_get_switch_value(ndr
, r
);
12823 NDR_CHECK(ndr_push_drsuapi_QuerySitesByCostRequest1(ndr
, NDR_BUFFERS
, &r
->req1
));
12827 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
12830 return NDR_ERR_SUCCESS
;
12833 static enum ndr_err_code
ndr_pull_drsuapi_QuerySitesByCostRequest(struct ndr_pull
*ndr
, int ndr_flags
, union drsuapi_QuerySitesByCostRequest
*r
)
12837 level
= ndr_pull_get_switch_value(ndr
, r
);
12838 if (ndr_flags
& NDR_SCALARS
) {
12839 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &_level
));
12840 if (_level
!= level
) {
12841 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
12845 NDR_CHECK(ndr_pull_drsuapi_QuerySitesByCostRequest1(ndr
, NDR_SCALARS
, &r
->req1
));
12849 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
12852 if (ndr_flags
& NDR_BUFFERS
) {
12855 NDR_CHECK(ndr_pull_drsuapi_QuerySitesByCostRequest1(ndr
, NDR_BUFFERS
, &r
->req1
));
12859 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
12862 return NDR_ERR_SUCCESS
;
12865 _PUBLIC_
void ndr_print_drsuapi_QuerySitesByCostRequest(struct ndr_print
*ndr
, const char *name
, const union drsuapi_QuerySitesByCostRequest
*r
)
12868 level
= ndr_print_get_switch_value(ndr
, r
);
12869 ndr_print_union(ndr
, name
, level
, "drsuapi_QuerySitesByCostRequest");
12872 ndr_print_drsuapi_QuerySitesByCostRequest1(ndr
, "req1", &r
->req1
);
12876 ndr_print_bad_level(ndr
, name
, level
);
12880 _PUBLIC_
enum ndr_err_code
ndr_push_drsuapi_DsBind(struct ndr_push
*ndr
, int flags
, const struct drsuapi_DsBind
*r
)
12882 if (flags
& NDR_IN
) {
12883 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.bind_guid
));
12884 if (r
->in
.bind_guid
) {
12885 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, r
->in
.bind_guid
));
12887 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.bind_info
));
12888 if (r
->in
.bind_info
) {
12889 NDR_CHECK(ndr_push_drsuapi_DsBindInfoCtr(ndr
, NDR_SCALARS
, r
->in
.bind_info
));
12892 if (flags
& NDR_OUT
) {
12893 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.bind_info
));
12894 if (r
->out
.bind_info
) {
12895 NDR_CHECK(ndr_push_drsuapi_DsBindInfoCtr(ndr
, NDR_SCALARS
, r
->out
.bind_info
));
12897 if (r
->out
.bind_handle
== NULL
) {
12898 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
12900 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.bind_handle
));
12901 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
12903 return NDR_ERR_SUCCESS
;
12906 _PUBLIC_
enum ndr_err_code
ndr_pull_drsuapi_DsBind(struct ndr_pull
*ndr
, int flags
, struct drsuapi_DsBind
*r
)
12908 uint32_t _ptr_bind_guid
;
12909 uint32_t _ptr_bind_info
;
12910 TALLOC_CTX
*_mem_save_bind_guid_0
;
12911 TALLOC_CTX
*_mem_save_bind_info_0
;
12912 TALLOC_CTX
*_mem_save_bind_handle_0
;
12913 if (flags
& NDR_IN
) {
12914 ZERO_STRUCT(r
->out
);
12916 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_bind_guid
));
12917 if (_ptr_bind_guid
) {
12918 NDR_PULL_ALLOC(ndr
, r
->in
.bind_guid
);
12920 r
->in
.bind_guid
= NULL
;
12922 if (r
->in
.bind_guid
) {
12923 _mem_save_bind_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12924 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.bind_guid
, 0);
12925 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, r
->in
.bind_guid
));
12926 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_bind_guid_0
, 0);
12928 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_bind_info
));
12929 if (_ptr_bind_info
) {
12930 NDR_PULL_ALLOC(ndr
, r
->in
.bind_info
);
12932 r
->in
.bind_info
= NULL
;
12934 if (r
->in
.bind_info
) {
12935 _mem_save_bind_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12936 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.bind_info
, 0);
12937 NDR_CHECK(ndr_pull_drsuapi_DsBindInfoCtr(ndr
, NDR_SCALARS
, r
->in
.bind_info
));
12938 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_bind_info_0
, 0);
12940 NDR_PULL_ALLOC(ndr
, r
->out
.bind_handle
);
12941 ZERO_STRUCTP(r
->out
.bind_handle
);
12943 if (flags
& NDR_OUT
) {
12944 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_bind_info
));
12945 if (_ptr_bind_info
) {
12946 NDR_PULL_ALLOC(ndr
, r
->out
.bind_info
);
12948 r
->out
.bind_info
= NULL
;
12950 if (r
->out
.bind_info
) {
12951 _mem_save_bind_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12952 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.bind_info
, 0);
12953 NDR_CHECK(ndr_pull_drsuapi_DsBindInfoCtr(ndr
, NDR_SCALARS
, r
->out
.bind_info
));
12954 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_bind_info_0
, 0);
12956 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
12957 NDR_PULL_ALLOC(ndr
, r
->out
.bind_handle
);
12959 _mem_save_bind_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12960 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.bind_handle
, LIBNDR_FLAG_REF_ALLOC
);
12961 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.bind_handle
));
12962 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_bind_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
12963 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
12965 return NDR_ERR_SUCCESS
;
12968 _PUBLIC_
void ndr_print_drsuapi_DsBind(struct ndr_print
*ndr
, const char *name
, int flags
, const struct drsuapi_DsBind
*r
)
12970 ndr_print_struct(ndr
, name
, "drsuapi_DsBind");
12972 if (flags
& NDR_SET_VALUES
) {
12973 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
12975 if (flags
& NDR_IN
) {
12976 ndr_print_struct(ndr
, "in", "drsuapi_DsBind");
12978 ndr_print_ptr(ndr
, "bind_guid", r
->in
.bind_guid
);
12980 if (r
->in
.bind_guid
) {
12981 ndr_print_GUID(ndr
, "bind_guid", r
->in
.bind_guid
);
12984 ndr_print_ptr(ndr
, "bind_info", r
->in
.bind_info
);
12986 if (r
->in
.bind_info
) {
12987 ndr_print_drsuapi_DsBindInfoCtr(ndr
, "bind_info", r
->in
.bind_info
);
12992 if (flags
& NDR_OUT
) {
12993 ndr_print_struct(ndr
, "out", "drsuapi_DsBind");
12995 ndr_print_ptr(ndr
, "bind_info", r
->out
.bind_info
);
12997 if (r
->out
.bind_info
) {
12998 ndr_print_drsuapi_DsBindInfoCtr(ndr
, "bind_info", r
->out
.bind_info
);
13001 ndr_print_ptr(ndr
, "bind_handle", r
->out
.bind_handle
);
13003 ndr_print_policy_handle(ndr
, "bind_handle", r
->out
.bind_handle
);
13005 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13011 static enum ndr_err_code
ndr_push_drsuapi_DsUnbind(struct ndr_push
*ndr
, int flags
, const struct drsuapi_DsUnbind
*r
)
13013 if (flags
& NDR_IN
) {
13014 if (r
->in
.bind_handle
== NULL
) {
13015 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13017 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.bind_handle
));
13019 if (flags
& NDR_OUT
) {
13020 if (r
->out
.bind_handle
== NULL
) {
13021 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13023 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.bind_handle
));
13024 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13026 return NDR_ERR_SUCCESS
;
13029 static enum ndr_err_code
ndr_pull_drsuapi_DsUnbind(struct ndr_pull
*ndr
, int flags
, struct drsuapi_DsUnbind
*r
)
13031 TALLOC_CTX
*_mem_save_bind_handle_0
;
13032 if (flags
& NDR_IN
) {
13033 ZERO_STRUCT(r
->out
);
13035 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13036 NDR_PULL_ALLOC(ndr
, r
->in
.bind_handle
);
13038 _mem_save_bind_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13039 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.bind_handle
, LIBNDR_FLAG_REF_ALLOC
);
13040 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.bind_handle
));
13041 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_bind_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
13042 NDR_PULL_ALLOC(ndr
, r
->out
.bind_handle
);
13043 *r
->out
.bind_handle
= *r
->in
.bind_handle
;
13045 if (flags
& NDR_OUT
) {
13046 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13047 NDR_PULL_ALLOC(ndr
, r
->out
.bind_handle
);
13049 _mem_save_bind_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13050 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.bind_handle
, LIBNDR_FLAG_REF_ALLOC
);
13051 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.bind_handle
));
13052 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_bind_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
13053 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13055 return NDR_ERR_SUCCESS
;
13058 _PUBLIC_
void ndr_print_drsuapi_DsUnbind(struct ndr_print
*ndr
, const char *name
, int flags
, const struct drsuapi_DsUnbind
*r
)
13060 ndr_print_struct(ndr
, name
, "drsuapi_DsUnbind");
13062 if (flags
& NDR_SET_VALUES
) {
13063 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13065 if (flags
& NDR_IN
) {
13066 ndr_print_struct(ndr
, "in", "drsuapi_DsUnbind");
13068 ndr_print_ptr(ndr
, "bind_handle", r
->in
.bind_handle
);
13070 ndr_print_policy_handle(ndr
, "bind_handle", r
->in
.bind_handle
);
13074 if (flags
& NDR_OUT
) {
13075 ndr_print_struct(ndr
, "out", "drsuapi_DsUnbind");
13077 ndr_print_ptr(ndr
, "bind_handle", r
->out
.bind_handle
);
13079 ndr_print_policy_handle(ndr
, "bind_handle", r
->out
.bind_handle
);
13081 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13087 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaSync(struct ndr_push
*ndr
, int flags
, const struct drsuapi_DsReplicaSync
*r
)
13089 if (flags
& NDR_IN
) {
13090 if (r
->in
.bind_handle
== NULL
) {
13091 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13093 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.bind_handle
));
13094 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, r
->in
.level
));
13095 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.req
, r
->in
.level
));
13096 NDR_CHECK(ndr_push_drsuapi_DsReplicaSyncRequest(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.req
));
13098 if (flags
& NDR_OUT
) {
13099 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13101 return NDR_ERR_SUCCESS
;
13104 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaSync(struct ndr_pull
*ndr
, int flags
, struct drsuapi_DsReplicaSync
*r
)
13106 TALLOC_CTX
*_mem_save_bind_handle_0
;
13107 if (flags
& NDR_IN
) {
13108 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13109 NDR_PULL_ALLOC(ndr
, r
->in
.bind_handle
);
13111 _mem_save_bind_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13112 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.bind_handle
, LIBNDR_FLAG_REF_ALLOC
);
13113 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.bind_handle
));
13114 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_bind_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
13115 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &r
->in
.level
));
13116 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.req
, r
->in
.level
));
13117 NDR_CHECK(ndr_pull_drsuapi_DsReplicaSyncRequest(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.req
));
13119 if (flags
& NDR_OUT
) {
13120 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13122 return NDR_ERR_SUCCESS
;
13125 _PUBLIC_
void ndr_print_drsuapi_DsReplicaSync(struct ndr_print
*ndr
, const char *name
, int flags
, const struct drsuapi_DsReplicaSync
*r
)
13127 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaSync");
13129 if (flags
& NDR_SET_VALUES
) {
13130 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13132 if (flags
& NDR_IN
) {
13133 ndr_print_struct(ndr
, "in", "drsuapi_DsReplicaSync");
13135 ndr_print_ptr(ndr
, "bind_handle", r
->in
.bind_handle
);
13137 ndr_print_policy_handle(ndr
, "bind_handle", r
->in
.bind_handle
);
13139 ndr_print_int32(ndr
, "level", r
->in
.level
);
13140 ndr_print_set_switch_value(ndr
, &r
->in
.req
, r
->in
.level
);
13141 ndr_print_drsuapi_DsReplicaSyncRequest(ndr
, "req", &r
->in
.req
);
13144 if (flags
& NDR_OUT
) {
13145 ndr_print_struct(ndr
, "out", "drsuapi_DsReplicaSync");
13147 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13153 static enum ndr_err_code
ndr_push_drsuapi_DsGetNCChanges(struct ndr_push
*ndr
, int flags
, const struct drsuapi_DsGetNCChanges
*r
)
13155 if (flags
& NDR_IN
) {
13156 if (r
->in
.bind_handle
== NULL
) {
13157 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13159 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.bind_handle
));
13160 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, r
->in
.level
));
13161 if (r
->in
.req
== NULL
) {
13162 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13164 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.req
, r
->in
.level
));
13165 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesRequest(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.req
));
13167 if (flags
& NDR_OUT
) {
13168 if (r
->out
.level_out
== NULL
) {
13169 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13171 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, *r
->out
.level_out
));
13172 if (r
->out
.ctr
== NULL
) {
13173 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13175 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.ctr
, *r
->out
.level_out
));
13176 NDR_CHECK(ndr_push_drsuapi_DsGetNCChangesCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.ctr
));
13177 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13179 return NDR_ERR_SUCCESS
;
13182 static enum ndr_err_code
ndr_pull_drsuapi_DsGetNCChanges(struct ndr_pull
*ndr
, int flags
, struct drsuapi_DsGetNCChanges
*r
)
13184 TALLOC_CTX
*_mem_save_bind_handle_0
;
13185 TALLOC_CTX
*_mem_save_req_0
;
13186 TALLOC_CTX
*_mem_save_level_out_0
;
13187 TALLOC_CTX
*_mem_save_ctr_0
;
13188 if (flags
& NDR_IN
) {
13189 ZERO_STRUCT(r
->out
);
13191 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13192 NDR_PULL_ALLOC(ndr
, r
->in
.bind_handle
);
13194 _mem_save_bind_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13195 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.bind_handle
, LIBNDR_FLAG_REF_ALLOC
);
13196 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.bind_handle
));
13197 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_bind_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
13198 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &r
->in
.level
));
13199 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13200 NDR_PULL_ALLOC(ndr
, r
->in
.req
);
13202 _mem_save_req_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13203 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.req
, LIBNDR_FLAG_REF_ALLOC
);
13204 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.req
, r
->in
.level
));
13205 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesRequest(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.req
));
13206 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_req_0
, LIBNDR_FLAG_REF_ALLOC
);
13207 NDR_PULL_ALLOC(ndr
, r
->out
.level_out
);
13208 ZERO_STRUCTP(r
->out
.level_out
);
13209 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
13210 ZERO_STRUCTP(r
->out
.ctr
);
13212 if (flags
& NDR_OUT
) {
13213 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13214 NDR_PULL_ALLOC(ndr
, r
->out
.level_out
);
13216 _mem_save_level_out_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13217 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.level_out
, LIBNDR_FLAG_REF_ALLOC
);
13218 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, r
->out
.level_out
));
13219 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level_out_0
, LIBNDR_FLAG_REF_ALLOC
);
13220 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13221 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
13223 _mem_save_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13224 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.ctr
, LIBNDR_FLAG_REF_ALLOC
);
13225 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.ctr
, *r
->out
.level_out
));
13226 NDR_CHECK(ndr_pull_drsuapi_DsGetNCChangesCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.ctr
));
13227 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
13228 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13230 return NDR_ERR_SUCCESS
;
13233 _PUBLIC_
void ndr_print_drsuapi_DsGetNCChanges(struct ndr_print
*ndr
, const char *name
, int flags
, const struct drsuapi_DsGetNCChanges
*r
)
13235 ndr_print_struct(ndr
, name
, "drsuapi_DsGetNCChanges");
13237 if (flags
& NDR_SET_VALUES
) {
13238 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13240 if (flags
& NDR_IN
) {
13241 ndr_print_struct(ndr
, "in", "drsuapi_DsGetNCChanges");
13243 ndr_print_ptr(ndr
, "bind_handle", r
->in
.bind_handle
);
13245 ndr_print_policy_handle(ndr
, "bind_handle", r
->in
.bind_handle
);
13247 ndr_print_int32(ndr
, "level", r
->in
.level
);
13248 ndr_print_ptr(ndr
, "req", r
->in
.req
);
13250 ndr_print_set_switch_value(ndr
, r
->in
.req
, r
->in
.level
);
13251 ndr_print_drsuapi_DsGetNCChangesRequest(ndr
, "req", r
->in
.req
);
13255 if (flags
& NDR_OUT
) {
13256 ndr_print_struct(ndr
, "out", "drsuapi_DsGetNCChanges");
13258 ndr_print_ptr(ndr
, "level_out", r
->out
.level_out
);
13260 ndr_print_int32(ndr
, "level_out", *r
->out
.level_out
);
13262 ndr_print_ptr(ndr
, "ctr", r
->out
.ctr
);
13264 ndr_print_set_switch_value(ndr
, r
->out
.ctr
, *r
->out
.level_out
);
13265 ndr_print_drsuapi_DsGetNCChangesCtr(ndr
, "ctr", r
->out
.ctr
);
13267 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13273 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaUpdateRefs(struct ndr_push
*ndr
, int flags
, const struct drsuapi_DsReplicaUpdateRefs
*r
)
13275 if (flags
& NDR_IN
) {
13276 if (r
->in
.bind_handle
== NULL
) {
13277 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13279 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.bind_handle
));
13280 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, r
->in
.level
));
13281 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.req
, r
->in
.level
));
13282 NDR_CHECK(ndr_push_drsuapi_DsReplicaUpdateRefsRequest(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.req
));
13284 if (flags
& NDR_OUT
) {
13285 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13287 return NDR_ERR_SUCCESS
;
13290 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaUpdateRefs(struct ndr_pull
*ndr
, int flags
, struct drsuapi_DsReplicaUpdateRefs
*r
)
13292 TALLOC_CTX
*_mem_save_bind_handle_0
;
13293 if (flags
& NDR_IN
) {
13294 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13295 NDR_PULL_ALLOC(ndr
, r
->in
.bind_handle
);
13297 _mem_save_bind_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13298 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.bind_handle
, LIBNDR_FLAG_REF_ALLOC
);
13299 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.bind_handle
));
13300 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_bind_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
13301 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &r
->in
.level
));
13302 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.req
, r
->in
.level
));
13303 NDR_CHECK(ndr_pull_drsuapi_DsReplicaUpdateRefsRequest(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.req
));
13305 if (flags
& NDR_OUT
) {
13306 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13308 return NDR_ERR_SUCCESS
;
13311 _PUBLIC_
void ndr_print_drsuapi_DsReplicaUpdateRefs(struct ndr_print
*ndr
, const char *name
, int flags
, const struct drsuapi_DsReplicaUpdateRefs
*r
)
13313 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaUpdateRefs");
13315 if (flags
& NDR_SET_VALUES
) {
13316 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13318 if (flags
& NDR_IN
) {
13319 ndr_print_struct(ndr
, "in", "drsuapi_DsReplicaUpdateRefs");
13321 ndr_print_ptr(ndr
, "bind_handle", r
->in
.bind_handle
);
13323 ndr_print_policy_handle(ndr
, "bind_handle", r
->in
.bind_handle
);
13325 ndr_print_int32(ndr
, "level", r
->in
.level
);
13326 ndr_print_set_switch_value(ndr
, &r
->in
.req
, r
->in
.level
);
13327 ndr_print_drsuapi_DsReplicaUpdateRefsRequest(ndr
, "req", &r
->in
.req
);
13330 if (flags
& NDR_OUT
) {
13331 ndr_print_struct(ndr
, "out", "drsuapi_DsReplicaUpdateRefs");
13333 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13339 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaAdd(struct ndr_push
*ndr
, int flags
, const struct drsuapi_DsReplicaAdd
*r
)
13341 if (flags
& NDR_IN
) {
13342 if (r
->in
.bind_handle
== NULL
) {
13343 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13345 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.bind_handle
));
13346 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, r
->in
.level
));
13347 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.req
, r
->in
.level
));
13348 NDR_CHECK(ndr_push_drsuapi_DsReplicaAddRequest(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.req
));
13350 if (flags
& NDR_OUT
) {
13351 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13353 return NDR_ERR_SUCCESS
;
13356 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaAdd(struct ndr_pull
*ndr
, int flags
, struct drsuapi_DsReplicaAdd
*r
)
13358 TALLOC_CTX
*_mem_save_bind_handle_0
;
13359 if (flags
& NDR_IN
) {
13360 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13361 NDR_PULL_ALLOC(ndr
, r
->in
.bind_handle
);
13363 _mem_save_bind_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13364 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.bind_handle
, LIBNDR_FLAG_REF_ALLOC
);
13365 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.bind_handle
));
13366 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_bind_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
13367 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &r
->in
.level
));
13368 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.req
, r
->in
.level
));
13369 NDR_CHECK(ndr_pull_drsuapi_DsReplicaAddRequest(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.req
));
13371 if (flags
& NDR_OUT
) {
13372 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13374 return NDR_ERR_SUCCESS
;
13377 _PUBLIC_
void ndr_print_drsuapi_DsReplicaAdd(struct ndr_print
*ndr
, const char *name
, int flags
, const struct drsuapi_DsReplicaAdd
*r
)
13379 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaAdd");
13381 if (flags
& NDR_SET_VALUES
) {
13382 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13384 if (flags
& NDR_IN
) {
13385 ndr_print_struct(ndr
, "in", "drsuapi_DsReplicaAdd");
13387 ndr_print_ptr(ndr
, "bind_handle", r
->in
.bind_handle
);
13389 ndr_print_policy_handle(ndr
, "bind_handle", r
->in
.bind_handle
);
13391 ndr_print_int32(ndr
, "level", r
->in
.level
);
13392 ndr_print_set_switch_value(ndr
, &r
->in
.req
, r
->in
.level
);
13393 ndr_print_drsuapi_DsReplicaAddRequest(ndr
, "req", &r
->in
.req
);
13396 if (flags
& NDR_OUT
) {
13397 ndr_print_struct(ndr
, "out", "drsuapi_DsReplicaAdd");
13399 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13405 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaDel(struct ndr_push
*ndr
, int flags
, const struct drsuapi_DsReplicaDel
*r
)
13407 if (flags
& NDR_IN
) {
13408 if (r
->in
.bind_handle
== NULL
) {
13409 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13411 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.bind_handle
));
13412 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, r
->in
.level
));
13413 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.req
, r
->in
.level
));
13414 NDR_CHECK(ndr_push_drsuapi_DsReplicaDelRequest(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.req
));
13416 if (flags
& NDR_OUT
) {
13417 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13419 return NDR_ERR_SUCCESS
;
13422 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaDel(struct ndr_pull
*ndr
, int flags
, struct drsuapi_DsReplicaDel
*r
)
13424 TALLOC_CTX
*_mem_save_bind_handle_0
;
13425 if (flags
& NDR_IN
) {
13426 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13427 NDR_PULL_ALLOC(ndr
, r
->in
.bind_handle
);
13429 _mem_save_bind_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13430 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.bind_handle
, LIBNDR_FLAG_REF_ALLOC
);
13431 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.bind_handle
));
13432 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_bind_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
13433 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &r
->in
.level
));
13434 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.req
, r
->in
.level
));
13435 NDR_CHECK(ndr_pull_drsuapi_DsReplicaDelRequest(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.req
));
13437 if (flags
& NDR_OUT
) {
13438 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13440 return NDR_ERR_SUCCESS
;
13443 _PUBLIC_
void ndr_print_drsuapi_DsReplicaDel(struct ndr_print
*ndr
, const char *name
, int flags
, const struct drsuapi_DsReplicaDel
*r
)
13445 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaDel");
13447 if (flags
& NDR_SET_VALUES
) {
13448 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13450 if (flags
& NDR_IN
) {
13451 ndr_print_struct(ndr
, "in", "drsuapi_DsReplicaDel");
13453 ndr_print_ptr(ndr
, "bind_handle", r
->in
.bind_handle
);
13455 ndr_print_policy_handle(ndr
, "bind_handle", r
->in
.bind_handle
);
13457 ndr_print_int32(ndr
, "level", r
->in
.level
);
13458 ndr_print_set_switch_value(ndr
, &r
->in
.req
, r
->in
.level
);
13459 ndr_print_drsuapi_DsReplicaDelRequest(ndr
, "req", &r
->in
.req
);
13462 if (flags
& NDR_OUT
) {
13463 ndr_print_struct(ndr
, "out", "drsuapi_DsReplicaDel");
13465 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13471 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaMod(struct ndr_push
*ndr
, int flags
, const struct drsuapi_DsReplicaMod
*r
)
13473 if (flags
& NDR_IN
) {
13474 if (r
->in
.bind_handle
== NULL
) {
13475 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13477 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.bind_handle
));
13478 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, r
->in
.level
));
13479 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.req
, r
->in
.level
));
13480 NDR_CHECK(ndr_push_drsuapi_DsReplicaModRequest(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.req
));
13482 if (flags
& NDR_OUT
) {
13483 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13485 return NDR_ERR_SUCCESS
;
13488 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaMod(struct ndr_pull
*ndr
, int flags
, struct drsuapi_DsReplicaMod
*r
)
13490 TALLOC_CTX
*_mem_save_bind_handle_0
;
13491 if (flags
& NDR_IN
) {
13492 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13493 NDR_PULL_ALLOC(ndr
, r
->in
.bind_handle
);
13495 _mem_save_bind_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13496 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.bind_handle
, LIBNDR_FLAG_REF_ALLOC
);
13497 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.bind_handle
));
13498 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_bind_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
13499 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &r
->in
.level
));
13500 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.req
, r
->in
.level
));
13501 NDR_CHECK(ndr_pull_drsuapi_DsReplicaModRequest(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.req
));
13503 if (flags
& NDR_OUT
) {
13504 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13506 return NDR_ERR_SUCCESS
;
13509 _PUBLIC_
void ndr_print_drsuapi_DsReplicaMod(struct ndr_print
*ndr
, const char *name
, int flags
, const struct drsuapi_DsReplicaMod
*r
)
13511 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaMod");
13513 if (flags
& NDR_SET_VALUES
) {
13514 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13516 if (flags
& NDR_IN
) {
13517 ndr_print_struct(ndr
, "in", "drsuapi_DsReplicaMod");
13519 ndr_print_ptr(ndr
, "bind_handle", r
->in
.bind_handle
);
13521 ndr_print_policy_handle(ndr
, "bind_handle", r
->in
.bind_handle
);
13523 ndr_print_int32(ndr
, "level", r
->in
.level
);
13524 ndr_print_set_switch_value(ndr
, &r
->in
.req
, r
->in
.level
);
13525 ndr_print_drsuapi_DsReplicaModRequest(ndr
, "req", &r
->in
.req
);
13528 if (flags
& NDR_OUT
) {
13529 ndr_print_struct(ndr
, "out", "drsuapi_DsReplicaMod");
13531 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13537 static enum ndr_err_code
ndr_push_DRSUAPI_VERIFY_NAMES(struct ndr_push
*ndr
, int flags
, const struct DRSUAPI_VERIFY_NAMES
*r
)
13539 if (flags
& NDR_IN
) {
13541 if (flags
& NDR_OUT
) {
13542 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13544 return NDR_ERR_SUCCESS
;
13547 static enum ndr_err_code
ndr_pull_DRSUAPI_VERIFY_NAMES(struct ndr_pull
*ndr
, int flags
, struct DRSUAPI_VERIFY_NAMES
*r
)
13549 if (flags
& NDR_IN
) {
13551 if (flags
& NDR_OUT
) {
13552 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13554 return NDR_ERR_SUCCESS
;
13557 _PUBLIC_
void ndr_print_DRSUAPI_VERIFY_NAMES(struct ndr_print
*ndr
, const char *name
, int flags
, const struct DRSUAPI_VERIFY_NAMES
*r
)
13559 ndr_print_struct(ndr
, name
, "DRSUAPI_VERIFY_NAMES");
13561 if (flags
& NDR_SET_VALUES
) {
13562 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13564 if (flags
& NDR_IN
) {
13565 ndr_print_struct(ndr
, "in", "DRSUAPI_VERIFY_NAMES");
13569 if (flags
& NDR_OUT
) {
13570 ndr_print_struct(ndr
, "out", "DRSUAPI_VERIFY_NAMES");
13572 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13578 static enum ndr_err_code
ndr_push_drsuapi_DsGetMemberships(struct ndr_push
*ndr
, int flags
, const struct drsuapi_DsGetMemberships
*r
)
13580 if (flags
& NDR_IN
) {
13581 if (r
->in
.bind_handle
== NULL
) {
13582 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13584 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.bind_handle
));
13585 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, r
->in
.level
));
13586 if (r
->in
.req
== NULL
) {
13587 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13589 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.req
, r
->in
.level
));
13590 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsRequest(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.req
));
13592 if (flags
& NDR_OUT
) {
13593 if (r
->out
.level_out
== NULL
) {
13594 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13596 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, *r
->out
.level_out
));
13597 if (r
->out
.ctr
== NULL
) {
13598 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13600 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.ctr
, *r
->out
.level_out
));
13601 NDR_CHECK(ndr_push_drsuapi_DsGetMembershipsCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.ctr
));
13602 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13604 return NDR_ERR_SUCCESS
;
13607 static enum ndr_err_code
ndr_pull_drsuapi_DsGetMemberships(struct ndr_pull
*ndr
, int flags
, struct drsuapi_DsGetMemberships
*r
)
13609 TALLOC_CTX
*_mem_save_bind_handle_0
;
13610 TALLOC_CTX
*_mem_save_req_0
;
13611 TALLOC_CTX
*_mem_save_level_out_0
;
13612 TALLOC_CTX
*_mem_save_ctr_0
;
13613 if (flags
& NDR_IN
) {
13614 ZERO_STRUCT(r
->out
);
13616 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13617 NDR_PULL_ALLOC(ndr
, r
->in
.bind_handle
);
13619 _mem_save_bind_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13620 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.bind_handle
, LIBNDR_FLAG_REF_ALLOC
);
13621 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.bind_handle
));
13622 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_bind_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
13623 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &r
->in
.level
));
13624 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13625 NDR_PULL_ALLOC(ndr
, r
->in
.req
);
13627 _mem_save_req_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13628 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.req
, LIBNDR_FLAG_REF_ALLOC
);
13629 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.req
, r
->in
.level
));
13630 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsRequest(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.req
));
13631 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_req_0
, LIBNDR_FLAG_REF_ALLOC
);
13632 NDR_PULL_ALLOC(ndr
, r
->out
.level_out
);
13633 ZERO_STRUCTP(r
->out
.level_out
);
13634 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
13635 ZERO_STRUCTP(r
->out
.ctr
);
13637 if (flags
& NDR_OUT
) {
13638 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13639 NDR_PULL_ALLOC(ndr
, r
->out
.level_out
);
13641 _mem_save_level_out_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13642 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.level_out
, LIBNDR_FLAG_REF_ALLOC
);
13643 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, r
->out
.level_out
));
13644 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level_out_0
, LIBNDR_FLAG_REF_ALLOC
);
13645 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13646 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
13648 _mem_save_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13649 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.ctr
, LIBNDR_FLAG_REF_ALLOC
);
13650 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.ctr
, *r
->out
.level_out
));
13651 NDR_CHECK(ndr_pull_drsuapi_DsGetMembershipsCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.ctr
));
13652 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
13653 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13655 return NDR_ERR_SUCCESS
;
13658 _PUBLIC_
void ndr_print_drsuapi_DsGetMemberships(struct ndr_print
*ndr
, const char *name
, int flags
, const struct drsuapi_DsGetMemberships
*r
)
13660 ndr_print_struct(ndr
, name
, "drsuapi_DsGetMemberships");
13662 if (flags
& NDR_SET_VALUES
) {
13663 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13665 if (flags
& NDR_IN
) {
13666 ndr_print_struct(ndr
, "in", "drsuapi_DsGetMemberships");
13668 ndr_print_ptr(ndr
, "bind_handle", r
->in
.bind_handle
);
13670 ndr_print_policy_handle(ndr
, "bind_handle", r
->in
.bind_handle
);
13672 ndr_print_int32(ndr
, "level", r
->in
.level
);
13673 ndr_print_ptr(ndr
, "req", r
->in
.req
);
13675 ndr_print_set_switch_value(ndr
, r
->in
.req
, r
->in
.level
);
13676 ndr_print_drsuapi_DsGetMembershipsRequest(ndr
, "req", r
->in
.req
);
13680 if (flags
& NDR_OUT
) {
13681 ndr_print_struct(ndr
, "out", "drsuapi_DsGetMemberships");
13683 ndr_print_ptr(ndr
, "level_out", r
->out
.level_out
);
13685 ndr_print_int32(ndr
, "level_out", *r
->out
.level_out
);
13687 ndr_print_ptr(ndr
, "ctr", r
->out
.ctr
);
13689 ndr_print_set_switch_value(ndr
, r
->out
.ctr
, *r
->out
.level_out
);
13690 ndr_print_drsuapi_DsGetMembershipsCtr(ndr
, "ctr", r
->out
.ctr
);
13692 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13698 static enum ndr_err_code
ndr_push_DRSUAPI_INTER_DOMAIN_MOVE(struct ndr_push
*ndr
, int flags
, const struct DRSUAPI_INTER_DOMAIN_MOVE
*r
)
13700 if (flags
& NDR_IN
) {
13702 if (flags
& NDR_OUT
) {
13703 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13705 return NDR_ERR_SUCCESS
;
13708 static enum ndr_err_code
ndr_pull_DRSUAPI_INTER_DOMAIN_MOVE(struct ndr_pull
*ndr
, int flags
, struct DRSUAPI_INTER_DOMAIN_MOVE
*r
)
13710 if (flags
& NDR_IN
) {
13712 if (flags
& NDR_OUT
) {
13713 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13715 return NDR_ERR_SUCCESS
;
13718 _PUBLIC_
void ndr_print_DRSUAPI_INTER_DOMAIN_MOVE(struct ndr_print
*ndr
, const char *name
, int flags
, const struct DRSUAPI_INTER_DOMAIN_MOVE
*r
)
13720 ndr_print_struct(ndr
, name
, "DRSUAPI_INTER_DOMAIN_MOVE");
13722 if (flags
& NDR_SET_VALUES
) {
13723 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13725 if (flags
& NDR_IN
) {
13726 ndr_print_struct(ndr
, "in", "DRSUAPI_INTER_DOMAIN_MOVE");
13730 if (flags
& NDR_OUT
) {
13731 ndr_print_struct(ndr
, "out", "DRSUAPI_INTER_DOMAIN_MOVE");
13733 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13739 static enum ndr_err_code
ndr_push_drsuapi_DsGetNT4ChangeLog(struct ndr_push
*ndr
, int flags
, const struct drsuapi_DsGetNT4ChangeLog
*r
)
13741 if (flags
& NDR_IN
) {
13742 if (r
->in
.bind_handle
== NULL
) {
13743 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13745 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.bind_handle
));
13746 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
13747 if (r
->in
.req
== NULL
) {
13748 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13750 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.req
, r
->in
.level
));
13751 NDR_CHECK(ndr_push_drsuapi_DsGetNT4ChangeLogRequest(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.req
));
13753 if (flags
& NDR_OUT
) {
13754 if (r
->out
.level_out
== NULL
) {
13755 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13757 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.level_out
));
13758 if (r
->out
.info
== NULL
) {
13759 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13761 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.info
, *r
->out
.level_out
));
13762 NDR_CHECK(ndr_push_drsuapi_DsGetNT4ChangeLogInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
13763 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13765 return NDR_ERR_SUCCESS
;
13768 static enum ndr_err_code
ndr_pull_drsuapi_DsGetNT4ChangeLog(struct ndr_pull
*ndr
, int flags
, struct drsuapi_DsGetNT4ChangeLog
*r
)
13770 TALLOC_CTX
*_mem_save_bind_handle_0
;
13771 TALLOC_CTX
*_mem_save_req_0
;
13772 TALLOC_CTX
*_mem_save_level_out_0
;
13773 TALLOC_CTX
*_mem_save_info_0
;
13774 if (flags
& NDR_IN
) {
13775 ZERO_STRUCT(r
->out
);
13777 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13778 NDR_PULL_ALLOC(ndr
, r
->in
.bind_handle
);
13780 _mem_save_bind_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13781 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.bind_handle
, LIBNDR_FLAG_REF_ALLOC
);
13782 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.bind_handle
));
13783 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_bind_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
13784 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
13785 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13786 NDR_PULL_ALLOC(ndr
, r
->in
.req
);
13788 _mem_save_req_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13789 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.req
, LIBNDR_FLAG_REF_ALLOC
);
13790 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.req
, r
->in
.level
));
13791 NDR_CHECK(ndr_pull_drsuapi_DsGetNT4ChangeLogRequest(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.req
));
13792 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_req_0
, LIBNDR_FLAG_REF_ALLOC
);
13793 NDR_PULL_ALLOC(ndr
, r
->out
.level_out
);
13794 ZERO_STRUCTP(r
->out
.level_out
);
13795 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
13796 ZERO_STRUCTP(r
->out
.info
);
13798 if (flags
& NDR_OUT
) {
13799 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13800 NDR_PULL_ALLOC(ndr
, r
->out
.level_out
);
13802 _mem_save_level_out_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13803 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.level_out
, LIBNDR_FLAG_REF_ALLOC
);
13804 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.level_out
));
13805 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level_out_0
, LIBNDR_FLAG_REF_ALLOC
);
13806 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13807 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
13809 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13810 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
13811 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.info
, *r
->out
.level_out
));
13812 NDR_CHECK(ndr_pull_drsuapi_DsGetNT4ChangeLogInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
13813 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
13814 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13816 return NDR_ERR_SUCCESS
;
13819 _PUBLIC_
void ndr_print_drsuapi_DsGetNT4ChangeLog(struct ndr_print
*ndr
, const char *name
, int flags
, const struct drsuapi_DsGetNT4ChangeLog
*r
)
13821 ndr_print_struct(ndr
, name
, "drsuapi_DsGetNT4ChangeLog");
13823 if (flags
& NDR_SET_VALUES
) {
13824 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13826 if (flags
& NDR_IN
) {
13827 ndr_print_struct(ndr
, "in", "drsuapi_DsGetNT4ChangeLog");
13829 ndr_print_ptr(ndr
, "bind_handle", r
->in
.bind_handle
);
13831 ndr_print_policy_handle(ndr
, "bind_handle", r
->in
.bind_handle
);
13833 ndr_print_uint32(ndr
, "level", r
->in
.level
);
13834 ndr_print_ptr(ndr
, "req", r
->in
.req
);
13836 ndr_print_set_switch_value(ndr
, r
->in
.req
, r
->in
.level
);
13837 ndr_print_drsuapi_DsGetNT4ChangeLogRequest(ndr
, "req", r
->in
.req
);
13841 if (flags
& NDR_OUT
) {
13842 ndr_print_struct(ndr
, "out", "drsuapi_DsGetNT4ChangeLog");
13844 ndr_print_ptr(ndr
, "level_out", r
->out
.level_out
);
13846 ndr_print_uint32(ndr
, "level_out", *r
->out
.level_out
);
13848 ndr_print_ptr(ndr
, "info", r
->out
.info
);
13850 ndr_print_set_switch_value(ndr
, r
->out
.info
, *r
->out
.level_out
);
13851 ndr_print_drsuapi_DsGetNT4ChangeLogInfo(ndr
, "info", r
->out
.info
);
13853 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13859 static enum ndr_err_code
ndr_push_drsuapi_DsCrackNames(struct ndr_push
*ndr
, int flags
, const struct drsuapi_DsCrackNames
*r
)
13861 if (flags
& NDR_IN
) {
13862 if (r
->in
.bind_handle
== NULL
) {
13863 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13865 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.bind_handle
));
13866 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, r
->in
.level
));
13867 if (r
->in
.req
== NULL
) {
13868 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13870 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.req
, r
->in
.level
));
13871 NDR_CHECK(ndr_push_drsuapi_DsNameRequest(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.req
));
13873 if (flags
& NDR_OUT
) {
13874 if (r
->out
.level_out
== NULL
) {
13875 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13877 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, *r
->out
.level_out
));
13878 if (r
->out
.ctr
== NULL
) {
13879 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13881 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.ctr
, *r
->out
.level_out
));
13882 NDR_CHECK(ndr_push_drsuapi_DsNameCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.ctr
));
13883 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
13885 return NDR_ERR_SUCCESS
;
13888 static enum ndr_err_code
ndr_pull_drsuapi_DsCrackNames(struct ndr_pull
*ndr
, int flags
, struct drsuapi_DsCrackNames
*r
)
13890 TALLOC_CTX
*_mem_save_bind_handle_0
;
13891 TALLOC_CTX
*_mem_save_req_0
;
13892 TALLOC_CTX
*_mem_save_level_out_0
;
13893 TALLOC_CTX
*_mem_save_ctr_0
;
13894 if (flags
& NDR_IN
) {
13895 ZERO_STRUCT(r
->out
);
13897 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13898 NDR_PULL_ALLOC(ndr
, r
->in
.bind_handle
);
13900 _mem_save_bind_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13901 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.bind_handle
, LIBNDR_FLAG_REF_ALLOC
);
13902 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.bind_handle
));
13903 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_bind_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
13904 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &r
->in
.level
));
13905 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13906 NDR_PULL_ALLOC(ndr
, r
->in
.req
);
13908 _mem_save_req_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13909 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.req
, LIBNDR_FLAG_REF_ALLOC
);
13910 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.req
, r
->in
.level
));
13911 NDR_CHECK(ndr_pull_drsuapi_DsNameRequest(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.req
));
13912 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_req_0
, LIBNDR_FLAG_REF_ALLOC
);
13913 NDR_PULL_ALLOC(ndr
, r
->out
.level_out
);
13914 ZERO_STRUCTP(r
->out
.level_out
);
13915 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
13916 ZERO_STRUCTP(r
->out
.ctr
);
13918 if (flags
& NDR_OUT
) {
13919 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13920 NDR_PULL_ALLOC(ndr
, r
->out
.level_out
);
13922 _mem_save_level_out_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13923 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.level_out
, LIBNDR_FLAG_REF_ALLOC
);
13924 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, r
->out
.level_out
));
13925 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level_out_0
, LIBNDR_FLAG_REF_ALLOC
);
13926 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
13927 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
13929 _mem_save_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13930 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.ctr
, LIBNDR_FLAG_REF_ALLOC
);
13931 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.ctr
, *r
->out
.level_out
));
13932 NDR_CHECK(ndr_pull_drsuapi_DsNameCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.ctr
));
13933 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
13934 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
13936 return NDR_ERR_SUCCESS
;
13939 _PUBLIC_
void ndr_print_drsuapi_DsCrackNames(struct ndr_print
*ndr
, const char *name
, int flags
, const struct drsuapi_DsCrackNames
*r
)
13941 ndr_print_struct(ndr
, name
, "drsuapi_DsCrackNames");
13943 if (flags
& NDR_SET_VALUES
) {
13944 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
13946 if (flags
& NDR_IN
) {
13947 ndr_print_struct(ndr
, "in", "drsuapi_DsCrackNames");
13949 ndr_print_ptr(ndr
, "bind_handle", r
->in
.bind_handle
);
13951 ndr_print_policy_handle(ndr
, "bind_handle", r
->in
.bind_handle
);
13953 ndr_print_int32(ndr
, "level", r
->in
.level
);
13954 ndr_print_ptr(ndr
, "req", r
->in
.req
);
13956 ndr_print_set_switch_value(ndr
, r
->in
.req
, r
->in
.level
);
13957 ndr_print_drsuapi_DsNameRequest(ndr
, "req", r
->in
.req
);
13961 if (flags
& NDR_OUT
) {
13962 ndr_print_struct(ndr
, "out", "drsuapi_DsCrackNames");
13964 ndr_print_ptr(ndr
, "level_out", r
->out
.level_out
);
13966 ndr_print_int32(ndr
, "level_out", *r
->out
.level_out
);
13968 ndr_print_ptr(ndr
, "ctr", r
->out
.ctr
);
13970 ndr_print_set_switch_value(ndr
, r
->out
.ctr
, *r
->out
.level_out
);
13971 ndr_print_drsuapi_DsNameCtr(ndr
, "ctr", r
->out
.ctr
);
13973 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
13979 static enum ndr_err_code
ndr_push_drsuapi_DsWriteAccountSpn(struct ndr_push
*ndr
, int flags
, const struct drsuapi_DsWriteAccountSpn
*r
)
13981 if (flags
& NDR_IN
) {
13982 if (r
->in
.bind_handle
== NULL
) {
13983 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13985 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.bind_handle
));
13986 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, r
->in
.level
));
13987 if (r
->in
.req
== NULL
) {
13988 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13990 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.req
, r
->in
.level
));
13991 NDR_CHECK(ndr_push_drsuapi_DsWriteAccountSpnRequest(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.req
));
13993 if (flags
& NDR_OUT
) {
13994 if (r
->out
.level_out
== NULL
) {
13995 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
13997 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, *r
->out
.level_out
));
13998 if (r
->out
.res
== NULL
) {
13999 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14001 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.res
, *r
->out
.level_out
));
14002 NDR_CHECK(ndr_push_drsuapi_DsWriteAccountSpnResult(ndr
, NDR_SCALARS
, r
->out
.res
));
14003 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14005 return NDR_ERR_SUCCESS
;
14008 static enum ndr_err_code
ndr_pull_drsuapi_DsWriteAccountSpn(struct ndr_pull
*ndr
, int flags
, struct drsuapi_DsWriteAccountSpn
*r
)
14010 TALLOC_CTX
*_mem_save_bind_handle_0
;
14011 TALLOC_CTX
*_mem_save_req_0
;
14012 TALLOC_CTX
*_mem_save_level_out_0
;
14013 TALLOC_CTX
*_mem_save_res_0
;
14014 if (flags
& NDR_IN
) {
14015 ZERO_STRUCT(r
->out
);
14017 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14018 NDR_PULL_ALLOC(ndr
, r
->in
.bind_handle
);
14020 _mem_save_bind_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14021 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.bind_handle
, LIBNDR_FLAG_REF_ALLOC
);
14022 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.bind_handle
));
14023 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_bind_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
14024 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &r
->in
.level
));
14025 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14026 NDR_PULL_ALLOC(ndr
, r
->in
.req
);
14028 _mem_save_req_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14029 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.req
, LIBNDR_FLAG_REF_ALLOC
);
14030 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.req
, r
->in
.level
));
14031 NDR_CHECK(ndr_pull_drsuapi_DsWriteAccountSpnRequest(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.req
));
14032 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_req_0
, LIBNDR_FLAG_REF_ALLOC
);
14033 NDR_PULL_ALLOC(ndr
, r
->out
.level_out
);
14034 ZERO_STRUCTP(r
->out
.level_out
);
14035 NDR_PULL_ALLOC(ndr
, r
->out
.res
);
14036 ZERO_STRUCTP(r
->out
.res
);
14038 if (flags
& NDR_OUT
) {
14039 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14040 NDR_PULL_ALLOC(ndr
, r
->out
.level_out
);
14042 _mem_save_level_out_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14043 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.level_out
, LIBNDR_FLAG_REF_ALLOC
);
14044 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, r
->out
.level_out
));
14045 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level_out_0
, LIBNDR_FLAG_REF_ALLOC
);
14046 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14047 NDR_PULL_ALLOC(ndr
, r
->out
.res
);
14049 _mem_save_res_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14050 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.res
, LIBNDR_FLAG_REF_ALLOC
);
14051 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.res
, *r
->out
.level_out
));
14052 NDR_CHECK(ndr_pull_drsuapi_DsWriteAccountSpnResult(ndr
, NDR_SCALARS
, r
->out
.res
));
14053 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_res_0
, LIBNDR_FLAG_REF_ALLOC
);
14054 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14056 return NDR_ERR_SUCCESS
;
14059 _PUBLIC_
void ndr_print_drsuapi_DsWriteAccountSpn(struct ndr_print
*ndr
, const char *name
, int flags
, const struct drsuapi_DsWriteAccountSpn
*r
)
14061 ndr_print_struct(ndr
, name
, "drsuapi_DsWriteAccountSpn");
14063 if (flags
& NDR_SET_VALUES
) {
14064 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14066 if (flags
& NDR_IN
) {
14067 ndr_print_struct(ndr
, "in", "drsuapi_DsWriteAccountSpn");
14069 ndr_print_ptr(ndr
, "bind_handle", r
->in
.bind_handle
);
14071 ndr_print_policy_handle(ndr
, "bind_handle", r
->in
.bind_handle
);
14073 ndr_print_int32(ndr
, "level", r
->in
.level
);
14074 ndr_print_ptr(ndr
, "req", r
->in
.req
);
14076 ndr_print_set_switch_value(ndr
, r
->in
.req
, r
->in
.level
);
14077 ndr_print_drsuapi_DsWriteAccountSpnRequest(ndr
, "req", r
->in
.req
);
14081 if (flags
& NDR_OUT
) {
14082 ndr_print_struct(ndr
, "out", "drsuapi_DsWriteAccountSpn");
14084 ndr_print_ptr(ndr
, "level_out", r
->out
.level_out
);
14086 ndr_print_int32(ndr
, "level_out", *r
->out
.level_out
);
14088 ndr_print_ptr(ndr
, "res", r
->out
.res
);
14090 ndr_print_set_switch_value(ndr
, r
->out
.res
, *r
->out
.level_out
);
14091 ndr_print_drsuapi_DsWriteAccountSpnResult(ndr
, "res", r
->out
.res
);
14093 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14099 static enum ndr_err_code
ndr_push_drsuapi_DsRemoveDSServer(struct ndr_push
*ndr
, int flags
, const struct drsuapi_DsRemoveDSServer
*r
)
14101 if (flags
& NDR_IN
) {
14102 if (r
->in
.bind_handle
== NULL
) {
14103 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14105 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.bind_handle
));
14106 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, r
->in
.level
));
14107 if (r
->in
.req
== NULL
) {
14108 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14110 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.req
, r
->in
.level
));
14111 NDR_CHECK(ndr_push_drsuapi_DsRemoveDSServerRequest(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.req
));
14113 if (flags
& NDR_OUT
) {
14114 if (r
->out
.level_out
== NULL
) {
14115 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14117 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, *r
->out
.level_out
));
14118 if (r
->out
.res
== NULL
) {
14119 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14121 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.res
, *r
->out
.level_out
));
14122 NDR_CHECK(ndr_push_drsuapi_DsRemoveDSServerResult(ndr
, NDR_SCALARS
, r
->out
.res
));
14123 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14125 return NDR_ERR_SUCCESS
;
14128 static enum ndr_err_code
ndr_pull_drsuapi_DsRemoveDSServer(struct ndr_pull
*ndr
, int flags
, struct drsuapi_DsRemoveDSServer
*r
)
14130 TALLOC_CTX
*_mem_save_bind_handle_0
;
14131 TALLOC_CTX
*_mem_save_req_0
;
14132 TALLOC_CTX
*_mem_save_level_out_0
;
14133 TALLOC_CTX
*_mem_save_res_0
;
14134 if (flags
& NDR_IN
) {
14135 ZERO_STRUCT(r
->out
);
14137 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14138 NDR_PULL_ALLOC(ndr
, r
->in
.bind_handle
);
14140 _mem_save_bind_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14141 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.bind_handle
, LIBNDR_FLAG_REF_ALLOC
);
14142 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.bind_handle
));
14143 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_bind_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
14144 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &r
->in
.level
));
14145 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14146 NDR_PULL_ALLOC(ndr
, r
->in
.req
);
14148 _mem_save_req_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14149 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.req
, LIBNDR_FLAG_REF_ALLOC
);
14150 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.req
, r
->in
.level
));
14151 NDR_CHECK(ndr_pull_drsuapi_DsRemoveDSServerRequest(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.req
));
14152 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_req_0
, LIBNDR_FLAG_REF_ALLOC
);
14153 NDR_PULL_ALLOC(ndr
, r
->out
.level_out
);
14154 ZERO_STRUCTP(r
->out
.level_out
);
14155 NDR_PULL_ALLOC(ndr
, r
->out
.res
);
14156 ZERO_STRUCTP(r
->out
.res
);
14158 if (flags
& NDR_OUT
) {
14159 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14160 NDR_PULL_ALLOC(ndr
, r
->out
.level_out
);
14162 _mem_save_level_out_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14163 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.level_out
, LIBNDR_FLAG_REF_ALLOC
);
14164 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, r
->out
.level_out
));
14165 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level_out_0
, LIBNDR_FLAG_REF_ALLOC
);
14166 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14167 NDR_PULL_ALLOC(ndr
, r
->out
.res
);
14169 _mem_save_res_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14170 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.res
, LIBNDR_FLAG_REF_ALLOC
);
14171 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.res
, *r
->out
.level_out
));
14172 NDR_CHECK(ndr_pull_drsuapi_DsRemoveDSServerResult(ndr
, NDR_SCALARS
, r
->out
.res
));
14173 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_res_0
, LIBNDR_FLAG_REF_ALLOC
);
14174 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14176 return NDR_ERR_SUCCESS
;
14179 _PUBLIC_
void ndr_print_drsuapi_DsRemoveDSServer(struct ndr_print
*ndr
, const char *name
, int flags
, const struct drsuapi_DsRemoveDSServer
*r
)
14181 ndr_print_struct(ndr
, name
, "drsuapi_DsRemoveDSServer");
14183 if (flags
& NDR_SET_VALUES
) {
14184 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14186 if (flags
& NDR_IN
) {
14187 ndr_print_struct(ndr
, "in", "drsuapi_DsRemoveDSServer");
14189 ndr_print_ptr(ndr
, "bind_handle", r
->in
.bind_handle
);
14191 ndr_print_policy_handle(ndr
, "bind_handle", r
->in
.bind_handle
);
14193 ndr_print_int32(ndr
, "level", r
->in
.level
);
14194 ndr_print_ptr(ndr
, "req", r
->in
.req
);
14196 ndr_print_set_switch_value(ndr
, r
->in
.req
, r
->in
.level
);
14197 ndr_print_drsuapi_DsRemoveDSServerRequest(ndr
, "req", r
->in
.req
);
14201 if (flags
& NDR_OUT
) {
14202 ndr_print_struct(ndr
, "out", "drsuapi_DsRemoveDSServer");
14204 ndr_print_ptr(ndr
, "level_out", r
->out
.level_out
);
14206 ndr_print_int32(ndr
, "level_out", *r
->out
.level_out
);
14208 ndr_print_ptr(ndr
, "res", r
->out
.res
);
14210 ndr_print_set_switch_value(ndr
, r
->out
.res
, *r
->out
.level_out
);
14211 ndr_print_drsuapi_DsRemoveDSServerResult(ndr
, "res", r
->out
.res
);
14213 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14219 static enum ndr_err_code
ndr_push_DRSUAPI_REMOVE_DS_DOMAIN(struct ndr_push
*ndr
, int flags
, const struct DRSUAPI_REMOVE_DS_DOMAIN
*r
)
14221 if (flags
& NDR_IN
) {
14223 if (flags
& NDR_OUT
) {
14224 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14226 return NDR_ERR_SUCCESS
;
14229 static enum ndr_err_code
ndr_pull_DRSUAPI_REMOVE_DS_DOMAIN(struct ndr_pull
*ndr
, int flags
, struct DRSUAPI_REMOVE_DS_DOMAIN
*r
)
14231 if (flags
& NDR_IN
) {
14233 if (flags
& NDR_OUT
) {
14234 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14236 return NDR_ERR_SUCCESS
;
14239 _PUBLIC_
void ndr_print_DRSUAPI_REMOVE_DS_DOMAIN(struct ndr_print
*ndr
, const char *name
, int flags
, const struct DRSUAPI_REMOVE_DS_DOMAIN
*r
)
14241 ndr_print_struct(ndr
, name
, "DRSUAPI_REMOVE_DS_DOMAIN");
14243 if (flags
& NDR_SET_VALUES
) {
14244 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14246 if (flags
& NDR_IN
) {
14247 ndr_print_struct(ndr
, "in", "DRSUAPI_REMOVE_DS_DOMAIN");
14251 if (flags
& NDR_OUT
) {
14252 ndr_print_struct(ndr
, "out", "DRSUAPI_REMOVE_DS_DOMAIN");
14254 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14260 static enum ndr_err_code
ndr_push_drsuapi_DsGetDomainControllerInfo(struct ndr_push
*ndr
, int flags
, const struct drsuapi_DsGetDomainControllerInfo
*r
)
14262 if (flags
& NDR_IN
) {
14263 if (r
->in
.bind_handle
== NULL
) {
14264 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14266 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.bind_handle
));
14267 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, r
->in
.level
));
14268 if (r
->in
.req
== NULL
) {
14269 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14271 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.req
, r
->in
.level
));
14272 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoRequest(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.req
));
14274 if (flags
& NDR_OUT
) {
14275 if (r
->out
.level_out
== NULL
) {
14276 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14278 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, *r
->out
.level_out
));
14279 if (r
->out
.ctr
== NULL
) {
14280 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14282 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.ctr
, *r
->out
.level_out
));
14283 NDR_CHECK(ndr_push_drsuapi_DsGetDCInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.ctr
));
14284 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14286 return NDR_ERR_SUCCESS
;
14289 static enum ndr_err_code
ndr_pull_drsuapi_DsGetDomainControllerInfo(struct ndr_pull
*ndr
, int flags
, struct drsuapi_DsGetDomainControllerInfo
*r
)
14291 TALLOC_CTX
*_mem_save_bind_handle_0
;
14292 TALLOC_CTX
*_mem_save_req_0
;
14293 TALLOC_CTX
*_mem_save_level_out_0
;
14294 TALLOC_CTX
*_mem_save_ctr_0
;
14295 if (flags
& NDR_IN
) {
14296 ZERO_STRUCT(r
->out
);
14298 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14299 NDR_PULL_ALLOC(ndr
, r
->in
.bind_handle
);
14301 _mem_save_bind_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14302 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.bind_handle
, LIBNDR_FLAG_REF_ALLOC
);
14303 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.bind_handle
));
14304 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_bind_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
14305 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &r
->in
.level
));
14306 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14307 NDR_PULL_ALLOC(ndr
, r
->in
.req
);
14309 _mem_save_req_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14310 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.req
, LIBNDR_FLAG_REF_ALLOC
);
14311 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.req
, r
->in
.level
));
14312 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoRequest(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.req
));
14313 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_req_0
, LIBNDR_FLAG_REF_ALLOC
);
14314 NDR_PULL_ALLOC(ndr
, r
->out
.level_out
);
14315 ZERO_STRUCTP(r
->out
.level_out
);
14316 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
14317 ZERO_STRUCTP(r
->out
.ctr
);
14319 if (flags
& NDR_OUT
) {
14320 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14321 NDR_PULL_ALLOC(ndr
, r
->out
.level_out
);
14323 _mem_save_level_out_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14324 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.level_out
, LIBNDR_FLAG_REF_ALLOC
);
14325 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, r
->out
.level_out
));
14326 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level_out_0
, LIBNDR_FLAG_REF_ALLOC
);
14327 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14328 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
14330 _mem_save_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14331 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.ctr
, LIBNDR_FLAG_REF_ALLOC
);
14332 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.ctr
, *r
->out
.level_out
));
14333 NDR_CHECK(ndr_pull_drsuapi_DsGetDCInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.ctr
));
14334 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
14335 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14337 return NDR_ERR_SUCCESS
;
14340 _PUBLIC_
void ndr_print_drsuapi_DsGetDomainControllerInfo(struct ndr_print
*ndr
, const char *name
, int flags
, const struct drsuapi_DsGetDomainControllerInfo
*r
)
14342 ndr_print_struct(ndr
, name
, "drsuapi_DsGetDomainControllerInfo");
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_DsGetDomainControllerInfo");
14350 ndr_print_ptr(ndr
, "bind_handle", r
->in
.bind_handle
);
14352 ndr_print_policy_handle(ndr
, "bind_handle", r
->in
.bind_handle
);
14354 ndr_print_int32(ndr
, "level", r
->in
.level
);
14355 ndr_print_ptr(ndr
, "req", r
->in
.req
);
14357 ndr_print_set_switch_value(ndr
, r
->in
.req
, r
->in
.level
);
14358 ndr_print_drsuapi_DsGetDCInfoRequest(ndr
, "req", r
->in
.req
);
14362 if (flags
& NDR_OUT
) {
14363 ndr_print_struct(ndr
, "out", "drsuapi_DsGetDomainControllerInfo");
14365 ndr_print_ptr(ndr
, "level_out", r
->out
.level_out
);
14367 ndr_print_int32(ndr
, "level_out", *r
->out
.level_out
);
14369 ndr_print_ptr(ndr
, "ctr", r
->out
.ctr
);
14371 ndr_print_set_switch_value(ndr
, r
->out
.ctr
, *r
->out
.level_out
);
14372 ndr_print_drsuapi_DsGetDCInfoCtr(ndr
, "ctr", r
->out
.ctr
);
14374 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14380 _PUBLIC_
enum ndr_err_code
ndr_push_drsuapi_DsAddEntry(struct ndr_push
*ndr
, int flags
, const struct drsuapi_DsAddEntry
*r
)
14382 if (flags
& NDR_IN
) {
14383 if (r
->in
.bind_handle
== NULL
) {
14384 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14386 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.bind_handle
));
14387 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, r
->in
.level
));
14388 if (r
->in
.req
== NULL
) {
14389 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14391 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.req
, r
->in
.level
));
14392 NDR_CHECK(ndr_push_drsuapi_DsAddEntryRequest(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.req
));
14394 if (flags
& NDR_OUT
) {
14395 if (r
->out
.level_out
== NULL
) {
14396 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14398 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, *r
->out
.level_out
));
14399 if (r
->out
.ctr
== NULL
) {
14400 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14402 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.ctr
, *r
->out
.level_out
));
14403 NDR_CHECK(ndr_push_drsuapi_DsAddEntryCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.ctr
));
14404 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14406 return NDR_ERR_SUCCESS
;
14409 _PUBLIC_
enum ndr_err_code
ndr_pull_drsuapi_DsAddEntry(struct ndr_pull
*ndr
, int flags
, struct drsuapi_DsAddEntry
*r
)
14411 TALLOC_CTX
*_mem_save_bind_handle_0
;
14412 TALLOC_CTX
*_mem_save_req_0
;
14413 TALLOC_CTX
*_mem_save_level_out_0
;
14414 TALLOC_CTX
*_mem_save_ctr_0
;
14415 if (flags
& NDR_IN
) {
14416 ZERO_STRUCT(r
->out
);
14418 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14419 NDR_PULL_ALLOC(ndr
, r
->in
.bind_handle
);
14421 _mem_save_bind_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14422 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.bind_handle
, LIBNDR_FLAG_REF_ALLOC
);
14423 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.bind_handle
));
14424 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_bind_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
14425 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &r
->in
.level
));
14426 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14427 NDR_PULL_ALLOC(ndr
, r
->in
.req
);
14429 _mem_save_req_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14430 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.req
, LIBNDR_FLAG_REF_ALLOC
);
14431 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.req
, r
->in
.level
));
14432 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryRequest(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.req
));
14433 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_req_0
, LIBNDR_FLAG_REF_ALLOC
);
14434 NDR_PULL_ALLOC(ndr
, r
->out
.level_out
);
14435 ZERO_STRUCTP(r
->out
.level_out
);
14436 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
14437 ZERO_STRUCTP(r
->out
.ctr
);
14439 if (flags
& NDR_OUT
) {
14440 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14441 NDR_PULL_ALLOC(ndr
, r
->out
.level_out
);
14443 _mem_save_level_out_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14444 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.level_out
, LIBNDR_FLAG_REF_ALLOC
);
14445 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, r
->out
.level_out
));
14446 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level_out_0
, LIBNDR_FLAG_REF_ALLOC
);
14447 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14448 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
14450 _mem_save_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14451 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.ctr
, LIBNDR_FLAG_REF_ALLOC
);
14452 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.ctr
, *r
->out
.level_out
));
14453 NDR_CHECK(ndr_pull_drsuapi_DsAddEntryCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.ctr
));
14454 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
14455 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14457 return NDR_ERR_SUCCESS
;
14460 _PUBLIC_
void ndr_print_drsuapi_DsAddEntry(struct ndr_print
*ndr
, const char *name
, int flags
, const struct drsuapi_DsAddEntry
*r
)
14462 ndr_print_struct(ndr
, name
, "drsuapi_DsAddEntry");
14464 if (flags
& NDR_SET_VALUES
) {
14465 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14467 if (flags
& NDR_IN
) {
14468 ndr_print_struct(ndr
, "in", "drsuapi_DsAddEntry");
14470 ndr_print_ptr(ndr
, "bind_handle", r
->in
.bind_handle
);
14472 ndr_print_policy_handle(ndr
, "bind_handle", r
->in
.bind_handle
);
14474 ndr_print_int32(ndr
, "level", r
->in
.level
);
14475 ndr_print_ptr(ndr
, "req", r
->in
.req
);
14477 ndr_print_set_switch_value(ndr
, r
->in
.req
, r
->in
.level
);
14478 ndr_print_drsuapi_DsAddEntryRequest(ndr
, "req", r
->in
.req
);
14482 if (flags
& NDR_OUT
) {
14483 ndr_print_struct(ndr
, "out", "drsuapi_DsAddEntry");
14485 ndr_print_ptr(ndr
, "level_out", r
->out
.level_out
);
14487 ndr_print_int32(ndr
, "level_out", *r
->out
.level_out
);
14489 ndr_print_ptr(ndr
, "ctr", r
->out
.ctr
);
14491 ndr_print_set_switch_value(ndr
, r
->out
.ctr
, *r
->out
.level_out
);
14492 ndr_print_drsuapi_DsAddEntryCtr(ndr
, "ctr", r
->out
.ctr
);
14494 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14500 static enum ndr_err_code
ndr_push_DRSUAPI_EXECUTE_KCC(struct ndr_push
*ndr
, int flags
, const struct DRSUAPI_EXECUTE_KCC
*r
)
14502 if (flags
& NDR_IN
) {
14504 if (flags
& NDR_OUT
) {
14505 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14507 return NDR_ERR_SUCCESS
;
14510 static enum ndr_err_code
ndr_pull_DRSUAPI_EXECUTE_KCC(struct ndr_pull
*ndr
, int flags
, struct DRSUAPI_EXECUTE_KCC
*r
)
14512 if (flags
& NDR_IN
) {
14514 if (flags
& NDR_OUT
) {
14515 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14517 return NDR_ERR_SUCCESS
;
14520 _PUBLIC_
void ndr_print_DRSUAPI_EXECUTE_KCC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct DRSUAPI_EXECUTE_KCC
*r
)
14522 ndr_print_struct(ndr
, name
, "DRSUAPI_EXECUTE_KCC");
14524 if (flags
& NDR_SET_VALUES
) {
14525 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14527 if (flags
& NDR_IN
) {
14528 ndr_print_struct(ndr
, "in", "DRSUAPI_EXECUTE_KCC");
14532 if (flags
& NDR_OUT
) {
14533 ndr_print_struct(ndr
, "out", "DRSUAPI_EXECUTE_KCC");
14535 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14541 static enum ndr_err_code
ndr_push_drsuapi_DsReplicaGetInfo(struct ndr_push
*ndr
, int flags
, const struct drsuapi_DsReplicaGetInfo
*r
)
14543 if (flags
& NDR_IN
) {
14544 if (r
->in
.bind_handle
== NULL
) {
14545 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14547 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.bind_handle
));
14548 NDR_CHECK(ndr_push_drsuapi_DsReplicaGetInfoLevel(ndr
, NDR_SCALARS
, r
->in
.level
));
14549 if (r
->in
.req
== NULL
) {
14550 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14552 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.req
, r
->in
.level
));
14553 NDR_CHECK(ndr_push_drsuapi_DsReplicaGetInfoRequest(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.req
));
14555 if (flags
& NDR_OUT
) {
14556 if (r
->out
.info_type
== NULL
) {
14557 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14559 NDR_CHECK(ndr_push_drsuapi_DsReplicaInfoType(ndr
, NDR_SCALARS
, *r
->out
.info_type
));
14560 if (r
->out
.info
== NULL
) {
14561 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14563 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.info
, *r
->out
.info_type
));
14564 NDR_CHECK(ndr_push_drsuapi_DsReplicaInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
14565 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14567 return NDR_ERR_SUCCESS
;
14570 static enum ndr_err_code
ndr_pull_drsuapi_DsReplicaGetInfo(struct ndr_pull
*ndr
, int flags
, struct drsuapi_DsReplicaGetInfo
*r
)
14572 TALLOC_CTX
*_mem_save_bind_handle_0
;
14573 TALLOC_CTX
*_mem_save_req_0
;
14574 TALLOC_CTX
*_mem_save_info_type_0
;
14575 TALLOC_CTX
*_mem_save_info_0
;
14576 if (flags
& NDR_IN
) {
14577 ZERO_STRUCT(r
->out
);
14579 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14580 NDR_PULL_ALLOC(ndr
, r
->in
.bind_handle
);
14582 _mem_save_bind_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14583 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.bind_handle
, LIBNDR_FLAG_REF_ALLOC
);
14584 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.bind_handle
));
14585 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_bind_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
14586 NDR_CHECK(ndr_pull_drsuapi_DsReplicaGetInfoLevel(ndr
, NDR_SCALARS
, &r
->in
.level
));
14587 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14588 NDR_PULL_ALLOC(ndr
, r
->in
.req
);
14590 _mem_save_req_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14591 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.req
, LIBNDR_FLAG_REF_ALLOC
);
14592 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.req
, r
->in
.level
));
14593 NDR_CHECK(ndr_pull_drsuapi_DsReplicaGetInfoRequest(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.req
));
14594 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_req_0
, LIBNDR_FLAG_REF_ALLOC
);
14595 NDR_PULL_ALLOC(ndr
, r
->out
.info_type
);
14596 ZERO_STRUCTP(r
->out
.info_type
);
14597 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
14598 ZERO_STRUCTP(r
->out
.info
);
14600 if (flags
& NDR_OUT
) {
14601 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14602 NDR_PULL_ALLOC(ndr
, r
->out
.info_type
);
14604 _mem_save_info_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14605 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info_type
, LIBNDR_FLAG_REF_ALLOC
);
14606 NDR_CHECK(ndr_pull_drsuapi_DsReplicaInfoType(ndr
, NDR_SCALARS
, r
->out
.info_type
));
14607 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_type_0
, LIBNDR_FLAG_REF_ALLOC
);
14608 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14609 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
14611 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14612 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
14613 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.info
, *r
->out
.info_type
));
14614 NDR_CHECK(ndr_pull_drsuapi_DsReplicaInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
14615 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
14616 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14618 return NDR_ERR_SUCCESS
;
14621 _PUBLIC_
void ndr_print_drsuapi_DsReplicaGetInfo(struct ndr_print
*ndr
, const char *name
, int flags
, const struct drsuapi_DsReplicaGetInfo
*r
)
14623 ndr_print_struct(ndr
, name
, "drsuapi_DsReplicaGetInfo");
14625 if (flags
& NDR_SET_VALUES
) {
14626 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14628 if (flags
& NDR_IN
) {
14629 ndr_print_struct(ndr
, "in", "drsuapi_DsReplicaGetInfo");
14631 ndr_print_ptr(ndr
, "bind_handle", r
->in
.bind_handle
);
14633 ndr_print_policy_handle(ndr
, "bind_handle", r
->in
.bind_handle
);
14635 ndr_print_drsuapi_DsReplicaGetInfoLevel(ndr
, "level", r
->in
.level
);
14636 ndr_print_ptr(ndr
, "req", r
->in
.req
);
14638 ndr_print_set_switch_value(ndr
, r
->in
.req
, r
->in
.level
);
14639 ndr_print_drsuapi_DsReplicaGetInfoRequest(ndr
, "req", r
->in
.req
);
14643 if (flags
& NDR_OUT
) {
14644 ndr_print_struct(ndr
, "out", "drsuapi_DsReplicaGetInfo");
14646 ndr_print_ptr(ndr
, "info_type", r
->out
.info_type
);
14648 ndr_print_drsuapi_DsReplicaInfoType(ndr
, "info_type", *r
->out
.info_type
);
14650 ndr_print_ptr(ndr
, "info", r
->out
.info
);
14652 ndr_print_set_switch_value(ndr
, r
->out
.info
, *r
->out
.info_type
);
14653 ndr_print_drsuapi_DsReplicaInfo(ndr
, "info", r
->out
.info
);
14655 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14661 static enum ndr_err_code
ndr_push_DRSUAPI_ADD_SID_HISTORY(struct ndr_push
*ndr
, int flags
, const struct DRSUAPI_ADD_SID_HISTORY
*r
)
14663 if (flags
& NDR_IN
) {
14665 if (flags
& NDR_OUT
) {
14666 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14668 return NDR_ERR_SUCCESS
;
14671 static enum ndr_err_code
ndr_pull_DRSUAPI_ADD_SID_HISTORY(struct ndr_pull
*ndr
, int flags
, struct DRSUAPI_ADD_SID_HISTORY
*r
)
14673 if (flags
& NDR_IN
) {
14675 if (flags
& NDR_OUT
) {
14676 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14678 return NDR_ERR_SUCCESS
;
14681 _PUBLIC_
void ndr_print_DRSUAPI_ADD_SID_HISTORY(struct ndr_print
*ndr
, const char *name
, int flags
, const struct DRSUAPI_ADD_SID_HISTORY
*r
)
14683 ndr_print_struct(ndr
, name
, "DRSUAPI_ADD_SID_HISTORY");
14685 if (flags
& NDR_SET_VALUES
) {
14686 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14688 if (flags
& NDR_IN
) {
14689 ndr_print_struct(ndr
, "in", "DRSUAPI_ADD_SID_HISTORY");
14693 if (flags
& NDR_OUT
) {
14694 ndr_print_struct(ndr
, "out", "DRSUAPI_ADD_SID_HISTORY");
14696 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14702 static enum ndr_err_code
ndr_push_drsuapi_DsGetMemberships2(struct ndr_push
*ndr
, int flags
, const struct drsuapi_DsGetMemberships2
*r
)
14704 if (flags
& NDR_IN
) {
14705 if (r
->in
.bind_handle
== NULL
) {
14706 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14708 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.bind_handle
));
14709 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, r
->in
.level
));
14710 if (r
->in
.req
== NULL
) {
14711 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14713 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.req
, r
->in
.level
));
14714 NDR_CHECK(ndr_push_drsuapi_DsGetMemberships2Request(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.req
));
14716 if (flags
& NDR_OUT
) {
14717 if (r
->out
.level_out
== NULL
) {
14718 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14720 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, *r
->out
.level_out
));
14721 if (r
->out
.ctr
== NULL
) {
14722 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14724 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.ctr
, *r
->out
.level_out
));
14725 NDR_CHECK(ndr_push_drsuapi_DsGetMemberships2Ctr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.ctr
));
14726 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14728 return NDR_ERR_SUCCESS
;
14731 static enum ndr_err_code
ndr_pull_drsuapi_DsGetMemberships2(struct ndr_pull
*ndr
, int flags
, struct drsuapi_DsGetMemberships2
*r
)
14733 TALLOC_CTX
*_mem_save_bind_handle_0
;
14734 TALLOC_CTX
*_mem_save_req_0
;
14735 TALLOC_CTX
*_mem_save_level_out_0
;
14736 TALLOC_CTX
*_mem_save_ctr_0
;
14737 if (flags
& NDR_IN
) {
14738 ZERO_STRUCT(r
->out
);
14740 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14741 NDR_PULL_ALLOC(ndr
, r
->in
.bind_handle
);
14743 _mem_save_bind_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14744 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.bind_handle
, LIBNDR_FLAG_REF_ALLOC
);
14745 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.bind_handle
));
14746 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_bind_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
14747 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &r
->in
.level
));
14748 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14749 NDR_PULL_ALLOC(ndr
, r
->in
.req
);
14751 _mem_save_req_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14752 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.req
, LIBNDR_FLAG_REF_ALLOC
);
14753 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.req
, r
->in
.level
));
14754 NDR_CHECK(ndr_pull_drsuapi_DsGetMemberships2Request(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.req
));
14755 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_req_0
, LIBNDR_FLAG_REF_ALLOC
);
14756 NDR_PULL_ALLOC(ndr
, r
->out
.level_out
);
14757 ZERO_STRUCTP(r
->out
.level_out
);
14758 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
14759 ZERO_STRUCTP(r
->out
.ctr
);
14761 if (flags
& NDR_OUT
) {
14762 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14763 NDR_PULL_ALLOC(ndr
, r
->out
.level_out
);
14765 _mem_save_level_out_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14766 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.level_out
, LIBNDR_FLAG_REF_ALLOC
);
14767 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, r
->out
.level_out
));
14768 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level_out_0
, LIBNDR_FLAG_REF_ALLOC
);
14769 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14770 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
14772 _mem_save_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14773 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.ctr
, LIBNDR_FLAG_REF_ALLOC
);
14774 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.ctr
, *r
->out
.level_out
));
14775 NDR_CHECK(ndr_pull_drsuapi_DsGetMemberships2Ctr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.ctr
));
14776 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
14777 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14779 return NDR_ERR_SUCCESS
;
14782 _PUBLIC_
void ndr_print_drsuapi_DsGetMemberships2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct drsuapi_DsGetMemberships2
*r
)
14784 ndr_print_struct(ndr
, name
, "drsuapi_DsGetMemberships2");
14786 if (flags
& NDR_SET_VALUES
) {
14787 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14789 if (flags
& NDR_IN
) {
14790 ndr_print_struct(ndr
, "in", "drsuapi_DsGetMemberships2");
14792 ndr_print_ptr(ndr
, "bind_handle", r
->in
.bind_handle
);
14794 ndr_print_policy_handle(ndr
, "bind_handle", r
->in
.bind_handle
);
14796 ndr_print_int32(ndr
, "level", r
->in
.level
);
14797 ndr_print_ptr(ndr
, "req", r
->in
.req
);
14799 ndr_print_set_switch_value(ndr
, r
->in
.req
, r
->in
.level
);
14800 ndr_print_drsuapi_DsGetMemberships2Request(ndr
, "req", r
->in
.req
);
14804 if (flags
& NDR_OUT
) {
14805 ndr_print_struct(ndr
, "out", "drsuapi_DsGetMemberships2");
14807 ndr_print_ptr(ndr
, "level_out", r
->out
.level_out
);
14809 ndr_print_int32(ndr
, "level_out", *r
->out
.level_out
);
14811 ndr_print_ptr(ndr
, "ctr", r
->out
.ctr
);
14813 ndr_print_set_switch_value(ndr
, r
->out
.ctr
, *r
->out
.level_out
);
14814 ndr_print_drsuapi_DsGetMemberships2Ctr(ndr
, "ctr", r
->out
.ctr
);
14816 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14822 static enum ndr_err_code
ndr_push_DRSUAPI_REPLICA_VERIFY_OBJECTS(struct ndr_push
*ndr
, int flags
, const struct DRSUAPI_REPLICA_VERIFY_OBJECTS
*r
)
14824 if (flags
& NDR_IN
) {
14826 if (flags
& NDR_OUT
) {
14827 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14829 return NDR_ERR_SUCCESS
;
14832 static enum ndr_err_code
ndr_pull_DRSUAPI_REPLICA_VERIFY_OBJECTS(struct ndr_pull
*ndr
, int flags
, struct DRSUAPI_REPLICA_VERIFY_OBJECTS
*r
)
14834 if (flags
& NDR_IN
) {
14836 if (flags
& NDR_OUT
) {
14837 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14839 return NDR_ERR_SUCCESS
;
14842 _PUBLIC_
void ndr_print_DRSUAPI_REPLICA_VERIFY_OBJECTS(struct ndr_print
*ndr
, const char *name
, int flags
, const struct DRSUAPI_REPLICA_VERIFY_OBJECTS
*r
)
14844 ndr_print_struct(ndr
, name
, "DRSUAPI_REPLICA_VERIFY_OBJECTS");
14846 if (flags
& NDR_SET_VALUES
) {
14847 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14849 if (flags
& NDR_IN
) {
14850 ndr_print_struct(ndr
, "in", "DRSUAPI_REPLICA_VERIFY_OBJECTS");
14854 if (flags
& NDR_OUT
) {
14855 ndr_print_struct(ndr
, "out", "DRSUAPI_REPLICA_VERIFY_OBJECTS");
14857 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14863 static enum ndr_err_code
ndr_push_DRSUAPI_GET_OBJECT_EXISTENCE(struct ndr_push
*ndr
, int flags
, const struct DRSUAPI_GET_OBJECT_EXISTENCE
*r
)
14865 if (flags
& NDR_IN
) {
14867 if (flags
& NDR_OUT
) {
14868 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14870 return NDR_ERR_SUCCESS
;
14873 static enum ndr_err_code
ndr_pull_DRSUAPI_GET_OBJECT_EXISTENCE(struct ndr_pull
*ndr
, int flags
, struct DRSUAPI_GET_OBJECT_EXISTENCE
*r
)
14875 if (flags
& NDR_IN
) {
14877 if (flags
& NDR_OUT
) {
14878 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14880 return NDR_ERR_SUCCESS
;
14883 _PUBLIC_
void ndr_print_DRSUAPI_GET_OBJECT_EXISTENCE(struct ndr_print
*ndr
, const char *name
, int flags
, const struct DRSUAPI_GET_OBJECT_EXISTENCE
*r
)
14885 ndr_print_struct(ndr
, name
, "DRSUAPI_GET_OBJECT_EXISTENCE");
14887 if (flags
& NDR_SET_VALUES
) {
14888 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14890 if (flags
& NDR_IN
) {
14891 ndr_print_struct(ndr
, "in", "DRSUAPI_GET_OBJECT_EXISTENCE");
14895 if (flags
& NDR_OUT
) {
14896 ndr_print_struct(ndr
, "out", "DRSUAPI_GET_OBJECT_EXISTENCE");
14898 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
14904 static enum ndr_err_code
ndr_push_drsuapi_QuerySitesByCost(struct ndr_push
*ndr
, int flags
, const struct drsuapi_QuerySitesByCost
*r
)
14906 if (flags
& NDR_IN
) {
14907 if (r
->in
.bind_handle
== NULL
) {
14908 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14910 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.bind_handle
));
14911 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, r
->in
.level
));
14912 if (r
->in
.req
== NULL
) {
14913 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14915 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->in
.req
, r
->in
.level
));
14916 NDR_CHECK(ndr_push_drsuapi_QuerySitesByCostRequest(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.req
));
14918 if (flags
& NDR_OUT
) {
14919 if (r
->out
.level_out
== NULL
) {
14920 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14922 NDR_CHECK(ndr_push_int32(ndr
, NDR_SCALARS
, *r
->out
.level_out
));
14923 if (r
->out
.ctr
== NULL
) {
14924 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
14926 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.ctr
, *r
->out
.level_out
));
14927 NDR_CHECK(ndr_push_drsuapi_QuerySitesByCostCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.ctr
));
14928 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
14930 return NDR_ERR_SUCCESS
;
14933 static enum ndr_err_code
ndr_pull_drsuapi_QuerySitesByCost(struct ndr_pull
*ndr
, int flags
, struct drsuapi_QuerySitesByCost
*r
)
14935 TALLOC_CTX
*_mem_save_bind_handle_0
;
14936 TALLOC_CTX
*_mem_save_req_0
;
14937 TALLOC_CTX
*_mem_save_level_out_0
;
14938 TALLOC_CTX
*_mem_save_ctr_0
;
14939 if (flags
& NDR_IN
) {
14940 ZERO_STRUCT(r
->out
);
14942 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14943 NDR_PULL_ALLOC(ndr
, r
->in
.bind_handle
);
14945 _mem_save_bind_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14946 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.bind_handle
, LIBNDR_FLAG_REF_ALLOC
);
14947 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.bind_handle
));
14948 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_bind_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
14949 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, &r
->in
.level
));
14950 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14951 NDR_PULL_ALLOC(ndr
, r
->in
.req
);
14953 _mem_save_req_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14954 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.req
, LIBNDR_FLAG_REF_ALLOC
);
14955 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->in
.req
, r
->in
.level
));
14956 NDR_CHECK(ndr_pull_drsuapi_QuerySitesByCostRequest(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.req
));
14957 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_req_0
, LIBNDR_FLAG_REF_ALLOC
);
14958 NDR_PULL_ALLOC(ndr
, r
->out
.level_out
);
14959 ZERO_STRUCTP(r
->out
.level_out
);
14960 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
14961 ZERO_STRUCTP(r
->out
.ctr
);
14963 if (flags
& NDR_OUT
) {
14964 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14965 NDR_PULL_ALLOC(ndr
, r
->out
.level_out
);
14967 _mem_save_level_out_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14968 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.level_out
, LIBNDR_FLAG_REF_ALLOC
);
14969 NDR_CHECK(ndr_pull_int32(ndr
, NDR_SCALARS
, r
->out
.level_out
));
14970 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level_out_0
, LIBNDR_FLAG_REF_ALLOC
);
14971 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
14972 NDR_PULL_ALLOC(ndr
, r
->out
.ctr
);
14974 _mem_save_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14975 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.ctr
, LIBNDR_FLAG_REF_ALLOC
);
14976 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.ctr
, *r
->out
.level_out
));
14977 NDR_CHECK(ndr_pull_drsuapi_QuerySitesByCostCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.ctr
));
14978 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
14979 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
14981 return NDR_ERR_SUCCESS
;
14984 _PUBLIC_
void ndr_print_drsuapi_QuerySitesByCost(struct ndr_print
*ndr
, const char *name
, int flags
, const struct drsuapi_QuerySitesByCost
*r
)
14986 ndr_print_struct(ndr
, name
, "drsuapi_QuerySitesByCost");
14988 if (flags
& NDR_SET_VALUES
) {
14989 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
14991 if (flags
& NDR_IN
) {
14992 ndr_print_struct(ndr
, "in", "drsuapi_QuerySitesByCost");
14994 ndr_print_ptr(ndr
, "bind_handle", r
->in
.bind_handle
);
14996 ndr_print_policy_handle(ndr
, "bind_handle", r
->in
.bind_handle
);
14998 ndr_print_int32(ndr
, "level", r
->in
.level
);
14999 ndr_print_ptr(ndr
, "req", r
->in
.req
);
15001 ndr_print_set_switch_value(ndr
, r
->in
.req
, r
->in
.level
);
15002 ndr_print_drsuapi_QuerySitesByCostRequest(ndr
, "req", r
->in
.req
);
15006 if (flags
& NDR_OUT
) {
15007 ndr_print_struct(ndr
, "out", "drsuapi_QuerySitesByCost");
15009 ndr_print_ptr(ndr
, "level_out", r
->out
.level_out
);
15011 ndr_print_int32(ndr
, "level_out", *r
->out
.level_out
);
15013 ndr_print_ptr(ndr
, "ctr", r
->out
.ctr
);
15015 ndr_print_set_switch_value(ndr
, r
->out
.ctr
, *r
->out
.level_out
);
15016 ndr_print_drsuapi_QuerySitesByCostCtr(ndr
, "ctr", r
->out
.ctr
);
15018 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
15024 static const struct ndr_interface_call drsuapi_calls
[] = {
15027 sizeof(struct drsuapi_DsBind
),
15028 (ndr_push_flags_fn_t
) ndr_push_drsuapi_DsBind
,
15029 (ndr_pull_flags_fn_t
) ndr_pull_drsuapi_DsBind
,
15030 (ndr_print_function_t
) ndr_print_drsuapi_DsBind
,
15034 "drsuapi_DsUnbind",
15035 sizeof(struct drsuapi_DsUnbind
),
15036 (ndr_push_flags_fn_t
) ndr_push_drsuapi_DsUnbind
,
15037 (ndr_pull_flags_fn_t
) ndr_pull_drsuapi_DsUnbind
,
15038 (ndr_print_function_t
) ndr_print_drsuapi_DsUnbind
,
15042 "drsuapi_DsReplicaSync",
15043 sizeof(struct drsuapi_DsReplicaSync
),
15044 (ndr_push_flags_fn_t
) ndr_push_drsuapi_DsReplicaSync
,
15045 (ndr_pull_flags_fn_t
) ndr_pull_drsuapi_DsReplicaSync
,
15046 (ndr_print_function_t
) ndr_print_drsuapi_DsReplicaSync
,
15050 "drsuapi_DsGetNCChanges",
15051 sizeof(struct drsuapi_DsGetNCChanges
),
15052 (ndr_push_flags_fn_t
) ndr_push_drsuapi_DsGetNCChanges
,
15053 (ndr_pull_flags_fn_t
) ndr_pull_drsuapi_DsGetNCChanges
,
15054 (ndr_print_function_t
) ndr_print_drsuapi_DsGetNCChanges
,
15058 "drsuapi_DsReplicaUpdateRefs",
15059 sizeof(struct drsuapi_DsReplicaUpdateRefs
),
15060 (ndr_push_flags_fn_t
) ndr_push_drsuapi_DsReplicaUpdateRefs
,
15061 (ndr_pull_flags_fn_t
) ndr_pull_drsuapi_DsReplicaUpdateRefs
,
15062 (ndr_print_function_t
) ndr_print_drsuapi_DsReplicaUpdateRefs
,
15066 "drsuapi_DsReplicaAdd",
15067 sizeof(struct drsuapi_DsReplicaAdd
),
15068 (ndr_push_flags_fn_t
) ndr_push_drsuapi_DsReplicaAdd
,
15069 (ndr_pull_flags_fn_t
) ndr_pull_drsuapi_DsReplicaAdd
,
15070 (ndr_print_function_t
) ndr_print_drsuapi_DsReplicaAdd
,
15074 "drsuapi_DsReplicaDel",
15075 sizeof(struct drsuapi_DsReplicaDel
),
15076 (ndr_push_flags_fn_t
) ndr_push_drsuapi_DsReplicaDel
,
15077 (ndr_pull_flags_fn_t
) ndr_pull_drsuapi_DsReplicaDel
,
15078 (ndr_print_function_t
) ndr_print_drsuapi_DsReplicaDel
,
15082 "drsuapi_DsReplicaMod",
15083 sizeof(struct drsuapi_DsReplicaMod
),
15084 (ndr_push_flags_fn_t
) ndr_push_drsuapi_DsReplicaMod
,
15085 (ndr_pull_flags_fn_t
) ndr_pull_drsuapi_DsReplicaMod
,
15086 (ndr_print_function_t
) ndr_print_drsuapi_DsReplicaMod
,
15090 "DRSUAPI_VERIFY_NAMES",
15091 sizeof(struct DRSUAPI_VERIFY_NAMES
),
15092 (ndr_push_flags_fn_t
) ndr_push_DRSUAPI_VERIFY_NAMES
,
15093 (ndr_pull_flags_fn_t
) ndr_pull_DRSUAPI_VERIFY_NAMES
,
15094 (ndr_print_function_t
) ndr_print_DRSUAPI_VERIFY_NAMES
,
15098 "drsuapi_DsGetMemberships",
15099 sizeof(struct drsuapi_DsGetMemberships
),
15100 (ndr_push_flags_fn_t
) ndr_push_drsuapi_DsGetMemberships
,
15101 (ndr_pull_flags_fn_t
) ndr_pull_drsuapi_DsGetMemberships
,
15102 (ndr_print_function_t
) ndr_print_drsuapi_DsGetMemberships
,
15106 "DRSUAPI_INTER_DOMAIN_MOVE",
15107 sizeof(struct DRSUAPI_INTER_DOMAIN_MOVE
),
15108 (ndr_push_flags_fn_t
) ndr_push_DRSUAPI_INTER_DOMAIN_MOVE
,
15109 (ndr_pull_flags_fn_t
) ndr_pull_DRSUAPI_INTER_DOMAIN_MOVE
,
15110 (ndr_print_function_t
) ndr_print_DRSUAPI_INTER_DOMAIN_MOVE
,
15114 "drsuapi_DsGetNT4ChangeLog",
15115 sizeof(struct drsuapi_DsGetNT4ChangeLog
),
15116 (ndr_push_flags_fn_t
) ndr_push_drsuapi_DsGetNT4ChangeLog
,
15117 (ndr_pull_flags_fn_t
) ndr_pull_drsuapi_DsGetNT4ChangeLog
,
15118 (ndr_print_function_t
) ndr_print_drsuapi_DsGetNT4ChangeLog
,
15122 "drsuapi_DsCrackNames",
15123 sizeof(struct drsuapi_DsCrackNames
),
15124 (ndr_push_flags_fn_t
) ndr_push_drsuapi_DsCrackNames
,
15125 (ndr_pull_flags_fn_t
) ndr_pull_drsuapi_DsCrackNames
,
15126 (ndr_print_function_t
) ndr_print_drsuapi_DsCrackNames
,
15130 "drsuapi_DsWriteAccountSpn",
15131 sizeof(struct drsuapi_DsWriteAccountSpn
),
15132 (ndr_push_flags_fn_t
) ndr_push_drsuapi_DsWriteAccountSpn
,
15133 (ndr_pull_flags_fn_t
) ndr_pull_drsuapi_DsWriteAccountSpn
,
15134 (ndr_print_function_t
) ndr_print_drsuapi_DsWriteAccountSpn
,
15138 "drsuapi_DsRemoveDSServer",
15139 sizeof(struct drsuapi_DsRemoveDSServer
),
15140 (ndr_push_flags_fn_t
) ndr_push_drsuapi_DsRemoveDSServer
,
15141 (ndr_pull_flags_fn_t
) ndr_pull_drsuapi_DsRemoveDSServer
,
15142 (ndr_print_function_t
) ndr_print_drsuapi_DsRemoveDSServer
,
15146 "DRSUAPI_REMOVE_DS_DOMAIN",
15147 sizeof(struct DRSUAPI_REMOVE_DS_DOMAIN
),
15148 (ndr_push_flags_fn_t
) ndr_push_DRSUAPI_REMOVE_DS_DOMAIN
,
15149 (ndr_pull_flags_fn_t
) ndr_pull_DRSUAPI_REMOVE_DS_DOMAIN
,
15150 (ndr_print_function_t
) ndr_print_DRSUAPI_REMOVE_DS_DOMAIN
,
15154 "drsuapi_DsGetDomainControllerInfo",
15155 sizeof(struct drsuapi_DsGetDomainControllerInfo
),
15156 (ndr_push_flags_fn_t
) ndr_push_drsuapi_DsGetDomainControllerInfo
,
15157 (ndr_pull_flags_fn_t
) ndr_pull_drsuapi_DsGetDomainControllerInfo
,
15158 (ndr_print_function_t
) ndr_print_drsuapi_DsGetDomainControllerInfo
,
15162 "drsuapi_DsAddEntry",
15163 sizeof(struct drsuapi_DsAddEntry
),
15164 (ndr_push_flags_fn_t
) ndr_push_drsuapi_DsAddEntry
,
15165 (ndr_pull_flags_fn_t
) ndr_pull_drsuapi_DsAddEntry
,
15166 (ndr_print_function_t
) ndr_print_drsuapi_DsAddEntry
,
15170 "DRSUAPI_EXECUTE_KCC",
15171 sizeof(struct DRSUAPI_EXECUTE_KCC
),
15172 (ndr_push_flags_fn_t
) ndr_push_DRSUAPI_EXECUTE_KCC
,
15173 (ndr_pull_flags_fn_t
) ndr_pull_DRSUAPI_EXECUTE_KCC
,
15174 (ndr_print_function_t
) ndr_print_DRSUAPI_EXECUTE_KCC
,
15178 "drsuapi_DsReplicaGetInfo",
15179 sizeof(struct drsuapi_DsReplicaGetInfo
),
15180 (ndr_push_flags_fn_t
) ndr_push_drsuapi_DsReplicaGetInfo
,
15181 (ndr_pull_flags_fn_t
) ndr_pull_drsuapi_DsReplicaGetInfo
,
15182 (ndr_print_function_t
) ndr_print_drsuapi_DsReplicaGetInfo
,
15186 "DRSUAPI_ADD_SID_HISTORY",
15187 sizeof(struct DRSUAPI_ADD_SID_HISTORY
),
15188 (ndr_push_flags_fn_t
) ndr_push_DRSUAPI_ADD_SID_HISTORY
,
15189 (ndr_pull_flags_fn_t
) ndr_pull_DRSUAPI_ADD_SID_HISTORY
,
15190 (ndr_print_function_t
) ndr_print_DRSUAPI_ADD_SID_HISTORY
,
15194 "drsuapi_DsGetMemberships2",
15195 sizeof(struct drsuapi_DsGetMemberships2
),
15196 (ndr_push_flags_fn_t
) ndr_push_drsuapi_DsGetMemberships2
,
15197 (ndr_pull_flags_fn_t
) ndr_pull_drsuapi_DsGetMemberships2
,
15198 (ndr_print_function_t
) ndr_print_drsuapi_DsGetMemberships2
,
15202 "DRSUAPI_REPLICA_VERIFY_OBJECTS",
15203 sizeof(struct DRSUAPI_REPLICA_VERIFY_OBJECTS
),
15204 (ndr_push_flags_fn_t
) ndr_push_DRSUAPI_REPLICA_VERIFY_OBJECTS
,
15205 (ndr_pull_flags_fn_t
) ndr_pull_DRSUAPI_REPLICA_VERIFY_OBJECTS
,
15206 (ndr_print_function_t
) ndr_print_DRSUAPI_REPLICA_VERIFY_OBJECTS
,
15210 "DRSUAPI_GET_OBJECT_EXISTENCE",
15211 sizeof(struct DRSUAPI_GET_OBJECT_EXISTENCE
),
15212 (ndr_push_flags_fn_t
) ndr_push_DRSUAPI_GET_OBJECT_EXISTENCE
,
15213 (ndr_pull_flags_fn_t
) ndr_pull_DRSUAPI_GET_OBJECT_EXISTENCE
,
15214 (ndr_print_function_t
) ndr_print_DRSUAPI_GET_OBJECT_EXISTENCE
,
15218 "drsuapi_QuerySitesByCost",
15219 sizeof(struct drsuapi_QuerySitesByCost
),
15220 (ndr_push_flags_fn_t
) ndr_push_drsuapi_QuerySitesByCost
,
15221 (ndr_pull_flags_fn_t
) ndr_pull_drsuapi_QuerySitesByCost
,
15222 (ndr_print_function_t
) ndr_print_drsuapi_QuerySitesByCost
,
15225 { NULL
, 0, NULL
, NULL
, NULL
, false }
15228 static const char * const drsuapi_endpoint_strings
[] = {
15229 "ncacn_np:[\\pipe\\lsass]",
15230 "ncacn_np:[\\pipe\\protected_storage]",
15235 static const struct ndr_interface_string_array drsuapi_endpoints
= {
15237 .names
= drsuapi_endpoint_strings
15240 static const char * const drsuapi_authservice_strings
[] = {
15244 static const struct ndr_interface_string_array drsuapi_authservices
= {
15246 .names
= drsuapi_authservice_strings
15250 const struct ndr_interface_table ndr_table_drsuapi
= {
15253 {0xe3514235,0x4b06,0x11d1,{0xab,0x04},{0x00,0xc0,0x4f,0xc2,0xdc,0xd2}},
15254 NDR_DRSUAPI_VERSION
15256 .helpstring
= NDR_DRSUAPI_HELPSTRING
,
15258 .calls
= drsuapi_calls
,
15259 .endpoints
= &drsuapi_endpoints
,
15260 .authservices
= &drsuapi_authservices