Merge branch 'master' of /home/tridge/samba/git/combined
[Samba/aatanasov.git] / librpc / gen_ndr / ndr_named_pipe_auth.c
blobcdd8a3d64145c7640b7e7a93e37161ae62a42a0c
1 /* parser auto-generated by pidl */
3 #include "includes.h"
4 #include "../librpc/gen_ndr/ndr_named_pipe_auth.h"
6 #include "librpc/gen_ndr/ndr_netlogon.h"
7 static enum ndr_err_code ndr_push_named_pipe_auth_req_info2(struct ndr_push *ndr, int ndr_flags, const struct named_pipe_auth_req_info2 *r)
9 if (ndr_flags & NDR_SCALARS) {
10 NDR_CHECK(ndr_push_align(ndr, 5));
11 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client_name));
12 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client_addr));
13 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->client_port));
14 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
15 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_addr));
16 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->server_port));
17 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam_info3));
18 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_key_length));
19 NDR_CHECK(ndr_push_unique_ptr(ndr, r->session_key));
21 if (ndr_flags & NDR_BUFFERS) {
22 if (r->client_name) {
23 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client_name, CH_UTF8)));
24 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client_name, CH_UTF8)));
26 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client_name, ndr_charset_length(r->client_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
28 if (r->client_addr) {
29 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client_addr, CH_DOS)));
30 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
31 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client_addr, CH_DOS)));
32 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client_addr, ndr_charset_length(r->client_addr, CH_DOS), sizeof(uint8_t), CH_DOS));
34 if (r->server_name) {
35 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF8)));
36 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
37 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF8)));
38 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
40 if (r->server_addr) {
41 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_addr, CH_DOS)));
42 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
43 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_addr, CH_DOS)));
44 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_addr, ndr_charset_length(r->server_addr, CH_DOS), sizeof(uint8_t), CH_DOS));
46 if (r->sam_info3) {
47 NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam_info3));
49 if (r->session_key) {
50 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->session_key_length));
51 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->session_key, r->session_key_length));
54 return NDR_ERR_SUCCESS;
57 static enum ndr_err_code ndr_pull_named_pipe_auth_req_info2(struct ndr_pull *ndr, int ndr_flags, struct named_pipe_auth_req_info2 *r)
59 uint32_t _ptr_client_name;
60 TALLOC_CTX *_mem_save_client_name_0;
61 uint32_t _ptr_client_addr;
62 TALLOC_CTX *_mem_save_client_addr_0;
63 uint32_t _ptr_server_name;
64 TALLOC_CTX *_mem_save_server_name_0;
65 uint32_t _ptr_server_addr;
66 TALLOC_CTX *_mem_save_server_addr_0;
67 uint32_t _ptr_sam_info3;
68 TALLOC_CTX *_mem_save_sam_info3_0;
69 uint32_t _ptr_session_key;
70 TALLOC_CTX *_mem_save_session_key_0;
71 if (ndr_flags & NDR_SCALARS) {
72 NDR_CHECK(ndr_pull_align(ndr, 5));
73 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_name));
74 if (_ptr_client_name) {
75 NDR_PULL_ALLOC(ndr, r->client_name);
76 } else {
77 r->client_name = NULL;
79 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_addr));
80 if (_ptr_client_addr) {
81 NDR_PULL_ALLOC(ndr, r->client_addr);
82 } else {
83 r->client_addr = NULL;
85 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->client_port));
86 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
87 if (_ptr_server_name) {
88 NDR_PULL_ALLOC(ndr, r->server_name);
89 } else {
90 r->server_name = NULL;
92 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_addr));
93 if (_ptr_server_addr) {
94 NDR_PULL_ALLOC(ndr, r->server_addr);
95 } else {
96 r->server_addr = NULL;
98 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->server_port));
99 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam_info3));
100 if (_ptr_sam_info3) {
101 NDR_PULL_ALLOC(ndr, r->sam_info3);
102 } else {
103 r->sam_info3 = NULL;
105 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_key_length));
106 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_session_key));
107 if (_ptr_session_key) {
108 NDR_PULL_ALLOC(ndr, r->session_key);
109 } else {
110 r->session_key = NULL;
113 if (ndr_flags & NDR_BUFFERS) {
114 if (r->client_name) {
115 _mem_save_client_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
116 NDR_PULL_SET_MEM_CTX(ndr, r->client_name, 0);
117 NDR_CHECK(ndr_pull_array_size(ndr, &r->client_name));
118 NDR_CHECK(ndr_pull_array_length(ndr, &r->client_name));
119 if (ndr_get_array_length(ndr, &r->client_name) > ndr_get_array_size(ndr, &r->client_name)) {
120 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_name), ndr_get_array_length(ndr, &r->client_name));
122 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client_name), sizeof(uint8_t)));
123 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client_name, ndr_get_array_length(ndr, &r->client_name), sizeof(uint8_t), CH_UTF8));
124 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_name_0, 0);
126 if (r->client_addr) {
127 _mem_save_client_addr_0 = NDR_PULL_GET_MEM_CTX(ndr);
128 NDR_PULL_SET_MEM_CTX(ndr, r->client_addr, 0);
129 NDR_CHECK(ndr_pull_array_size(ndr, &r->client_addr));
130 NDR_CHECK(ndr_pull_array_length(ndr, &r->client_addr));
131 if (ndr_get_array_length(ndr, &r->client_addr) > ndr_get_array_size(ndr, &r->client_addr)) {
132 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_addr), ndr_get_array_length(ndr, &r->client_addr));
134 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client_addr), sizeof(uint8_t)));
135 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client_addr, ndr_get_array_length(ndr, &r->client_addr), sizeof(uint8_t), CH_DOS));
136 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_addr_0, 0);
138 if (r->server_name) {
139 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
140 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
141 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
142 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
143 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
144 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_name), ndr_get_array_length(ndr, &r->server_name));
146 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint8_t)));
147 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint8_t), CH_UTF8));
148 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
150 if (r->server_addr) {
151 _mem_save_server_addr_0 = NDR_PULL_GET_MEM_CTX(ndr);
152 NDR_PULL_SET_MEM_CTX(ndr, r->server_addr, 0);
153 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_addr));
154 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_addr));
155 if (ndr_get_array_length(ndr, &r->server_addr) > ndr_get_array_size(ndr, &r->server_addr)) {
156 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_addr), ndr_get_array_length(ndr, &r->server_addr));
158 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_addr), sizeof(uint8_t)));
159 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_addr, ndr_get_array_length(ndr, &r->server_addr), sizeof(uint8_t), CH_DOS));
160 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_addr_0, 0);
162 if (r->sam_info3) {
163 _mem_save_sam_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
164 NDR_PULL_SET_MEM_CTX(ndr, r->sam_info3, 0);
165 NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam_info3));
166 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam_info3_0, 0);
168 if (r->session_key) {
169 _mem_save_session_key_0 = NDR_PULL_GET_MEM_CTX(ndr);
170 NDR_PULL_SET_MEM_CTX(ndr, r->session_key, 0);
171 NDR_CHECK(ndr_pull_array_size(ndr, &r->session_key));
172 NDR_PULL_ALLOC_N(ndr, r->session_key, ndr_get_array_size(ndr, &r->session_key));
173 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->session_key, ndr_get_array_size(ndr, &r->session_key)));
174 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_session_key_0, 0);
176 if (r->session_key) {
177 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->session_key, r->session_key_length));
180 return NDR_ERR_SUCCESS;
183 _PUBLIC_ void ndr_print_named_pipe_auth_req_info2(struct ndr_print *ndr, const char *name, const struct named_pipe_auth_req_info2 *r)
185 ndr_print_struct(ndr, name, "named_pipe_auth_req_info2");
186 ndr->depth++;
187 ndr_print_ptr(ndr, "client_name", r->client_name);
188 ndr->depth++;
189 if (r->client_name) {
190 ndr_print_string(ndr, "client_name", r->client_name);
192 ndr->depth--;
193 ndr_print_ptr(ndr, "client_addr", r->client_addr);
194 ndr->depth++;
195 if (r->client_addr) {
196 ndr_print_string(ndr, "client_addr", r->client_addr);
198 ndr->depth--;
199 ndr_print_uint16(ndr, "client_port", r->client_port);
200 ndr_print_ptr(ndr, "server_name", r->server_name);
201 ndr->depth++;
202 if (r->server_name) {
203 ndr_print_string(ndr, "server_name", r->server_name);
205 ndr->depth--;
206 ndr_print_ptr(ndr, "server_addr", r->server_addr);
207 ndr->depth++;
208 if (r->server_addr) {
209 ndr_print_string(ndr, "server_addr", r->server_addr);
211 ndr->depth--;
212 ndr_print_uint16(ndr, "server_port", r->server_port);
213 ndr_print_ptr(ndr, "sam_info3", r->sam_info3);
214 ndr->depth++;
215 if (r->sam_info3) {
216 ndr_print_netr_SamInfo3(ndr, "sam_info3", r->sam_info3);
218 ndr->depth--;
219 ndr_print_uint32(ndr, "session_key_length", r->session_key_length);
220 ndr_print_ptr(ndr, "session_key", r->session_key);
221 ndr->depth++;
222 if (r->session_key) {
223 ndr_print_array_uint8(ndr, "session_key", r->session_key, r->session_key_length);
225 ndr->depth--;
226 ndr->depth--;
229 static enum ndr_err_code ndr_push_named_pipe_auth_req_info3(struct ndr_push *ndr, int ndr_flags, const struct named_pipe_auth_req_info3 *r)
231 if (ndr_flags & NDR_SCALARS) {
232 NDR_CHECK(ndr_push_align(ndr, 5));
233 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client_name));
234 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client_addr));
235 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->client_port));
236 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
237 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_addr));
238 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->server_port));
239 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam_info3));
240 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_key_length));
241 NDR_CHECK(ndr_push_unique_ptr(ndr, r->session_key));
242 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->gssapi_delegated_creds_length));
243 NDR_CHECK(ndr_push_unique_ptr(ndr, r->gssapi_delegated_creds));
245 if (ndr_flags & NDR_BUFFERS) {
246 if (r->client_name) {
247 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client_name, CH_UTF8)));
248 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
249 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client_name, CH_UTF8)));
250 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client_name, ndr_charset_length(r->client_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
252 if (r->client_addr) {
253 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client_addr, CH_DOS)));
254 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
255 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client_addr, CH_DOS)));
256 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client_addr, ndr_charset_length(r->client_addr, CH_DOS), sizeof(uint8_t), CH_DOS));
258 if (r->server_name) {
259 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF8)));
260 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
261 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF8)));
262 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
264 if (r->server_addr) {
265 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_addr, CH_DOS)));
266 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
267 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_addr, CH_DOS)));
268 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_addr, ndr_charset_length(r->server_addr, CH_DOS), sizeof(uint8_t), CH_DOS));
270 if (r->sam_info3) {
271 NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam_info3));
273 if (r->session_key) {
274 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->session_key_length));
275 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->session_key, r->session_key_length));
277 if (r->gssapi_delegated_creds) {
278 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->gssapi_delegated_creds_length));
279 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->gssapi_delegated_creds, r->gssapi_delegated_creds_length));
282 return NDR_ERR_SUCCESS;
285 static enum ndr_err_code ndr_pull_named_pipe_auth_req_info3(struct ndr_pull *ndr, int ndr_flags, struct named_pipe_auth_req_info3 *r)
287 uint32_t _ptr_client_name;
288 TALLOC_CTX *_mem_save_client_name_0;
289 uint32_t _ptr_client_addr;
290 TALLOC_CTX *_mem_save_client_addr_0;
291 uint32_t _ptr_server_name;
292 TALLOC_CTX *_mem_save_server_name_0;
293 uint32_t _ptr_server_addr;
294 TALLOC_CTX *_mem_save_server_addr_0;
295 uint32_t _ptr_sam_info3;
296 TALLOC_CTX *_mem_save_sam_info3_0;
297 uint32_t _ptr_session_key;
298 TALLOC_CTX *_mem_save_session_key_0;
299 uint32_t _ptr_gssapi_delegated_creds;
300 TALLOC_CTX *_mem_save_gssapi_delegated_creds_0;
301 if (ndr_flags & NDR_SCALARS) {
302 NDR_CHECK(ndr_pull_align(ndr, 5));
303 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_name));
304 if (_ptr_client_name) {
305 NDR_PULL_ALLOC(ndr, r->client_name);
306 } else {
307 r->client_name = NULL;
309 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_addr));
310 if (_ptr_client_addr) {
311 NDR_PULL_ALLOC(ndr, r->client_addr);
312 } else {
313 r->client_addr = NULL;
315 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->client_port));
316 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
317 if (_ptr_server_name) {
318 NDR_PULL_ALLOC(ndr, r->server_name);
319 } else {
320 r->server_name = NULL;
322 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_addr));
323 if (_ptr_server_addr) {
324 NDR_PULL_ALLOC(ndr, r->server_addr);
325 } else {
326 r->server_addr = NULL;
328 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->server_port));
329 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam_info3));
330 if (_ptr_sam_info3) {
331 NDR_PULL_ALLOC(ndr, r->sam_info3);
332 } else {
333 r->sam_info3 = NULL;
335 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_key_length));
336 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_session_key));
337 if (_ptr_session_key) {
338 NDR_PULL_ALLOC(ndr, r->session_key);
339 } else {
340 r->session_key = NULL;
342 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->gssapi_delegated_creds_length));
343 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_gssapi_delegated_creds));
344 if (_ptr_gssapi_delegated_creds) {
345 NDR_PULL_ALLOC(ndr, r->gssapi_delegated_creds);
346 } else {
347 r->gssapi_delegated_creds = NULL;
350 if (ndr_flags & NDR_BUFFERS) {
351 if (r->client_name) {
352 _mem_save_client_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
353 NDR_PULL_SET_MEM_CTX(ndr, r->client_name, 0);
354 NDR_CHECK(ndr_pull_array_size(ndr, &r->client_name));
355 NDR_CHECK(ndr_pull_array_length(ndr, &r->client_name));
356 if (ndr_get_array_length(ndr, &r->client_name) > ndr_get_array_size(ndr, &r->client_name)) {
357 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_name), ndr_get_array_length(ndr, &r->client_name));
359 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client_name), sizeof(uint8_t)));
360 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client_name, ndr_get_array_length(ndr, &r->client_name), sizeof(uint8_t), CH_UTF8));
361 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_name_0, 0);
363 if (r->client_addr) {
364 _mem_save_client_addr_0 = NDR_PULL_GET_MEM_CTX(ndr);
365 NDR_PULL_SET_MEM_CTX(ndr, r->client_addr, 0);
366 NDR_CHECK(ndr_pull_array_size(ndr, &r->client_addr));
367 NDR_CHECK(ndr_pull_array_length(ndr, &r->client_addr));
368 if (ndr_get_array_length(ndr, &r->client_addr) > ndr_get_array_size(ndr, &r->client_addr)) {
369 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_addr), ndr_get_array_length(ndr, &r->client_addr));
371 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client_addr), sizeof(uint8_t)));
372 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client_addr, ndr_get_array_length(ndr, &r->client_addr), sizeof(uint8_t), CH_DOS));
373 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_addr_0, 0);
375 if (r->server_name) {
376 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
377 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
378 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
379 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
380 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
381 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_name), ndr_get_array_length(ndr, &r->server_name));
383 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint8_t)));
384 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint8_t), CH_UTF8));
385 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
387 if (r->server_addr) {
388 _mem_save_server_addr_0 = NDR_PULL_GET_MEM_CTX(ndr);
389 NDR_PULL_SET_MEM_CTX(ndr, r->server_addr, 0);
390 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_addr));
391 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_addr));
392 if (ndr_get_array_length(ndr, &r->server_addr) > ndr_get_array_size(ndr, &r->server_addr)) {
393 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_addr), ndr_get_array_length(ndr, &r->server_addr));
395 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_addr), sizeof(uint8_t)));
396 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_addr, ndr_get_array_length(ndr, &r->server_addr), sizeof(uint8_t), CH_DOS));
397 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_addr_0, 0);
399 if (r->sam_info3) {
400 _mem_save_sam_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
401 NDR_PULL_SET_MEM_CTX(ndr, r->sam_info3, 0);
402 NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam_info3));
403 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam_info3_0, 0);
405 if (r->session_key) {
406 _mem_save_session_key_0 = NDR_PULL_GET_MEM_CTX(ndr);
407 NDR_PULL_SET_MEM_CTX(ndr, r->session_key, 0);
408 NDR_CHECK(ndr_pull_array_size(ndr, &r->session_key));
409 NDR_PULL_ALLOC_N(ndr, r->session_key, ndr_get_array_size(ndr, &r->session_key));
410 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->session_key, ndr_get_array_size(ndr, &r->session_key)));
411 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_session_key_0, 0);
413 if (r->gssapi_delegated_creds) {
414 _mem_save_gssapi_delegated_creds_0 = NDR_PULL_GET_MEM_CTX(ndr);
415 NDR_PULL_SET_MEM_CTX(ndr, r->gssapi_delegated_creds, 0);
416 NDR_CHECK(ndr_pull_array_size(ndr, &r->gssapi_delegated_creds));
417 NDR_PULL_ALLOC_N(ndr, r->gssapi_delegated_creds, ndr_get_array_size(ndr, &r->gssapi_delegated_creds));
418 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->gssapi_delegated_creds, ndr_get_array_size(ndr, &r->gssapi_delegated_creds)));
419 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gssapi_delegated_creds_0, 0);
421 if (r->session_key) {
422 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->session_key, r->session_key_length));
424 if (r->gssapi_delegated_creds) {
425 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->gssapi_delegated_creds, r->gssapi_delegated_creds_length));
428 return NDR_ERR_SUCCESS;
431 _PUBLIC_ void ndr_print_named_pipe_auth_req_info3(struct ndr_print *ndr, const char *name, const struct named_pipe_auth_req_info3 *r)
433 ndr_print_struct(ndr, name, "named_pipe_auth_req_info3");
434 ndr->depth++;
435 ndr_print_ptr(ndr, "client_name", r->client_name);
436 ndr->depth++;
437 if (r->client_name) {
438 ndr_print_string(ndr, "client_name", r->client_name);
440 ndr->depth--;
441 ndr_print_ptr(ndr, "client_addr", r->client_addr);
442 ndr->depth++;
443 if (r->client_addr) {
444 ndr_print_string(ndr, "client_addr", r->client_addr);
446 ndr->depth--;
447 ndr_print_uint16(ndr, "client_port", r->client_port);
448 ndr_print_ptr(ndr, "server_name", r->server_name);
449 ndr->depth++;
450 if (r->server_name) {
451 ndr_print_string(ndr, "server_name", r->server_name);
453 ndr->depth--;
454 ndr_print_ptr(ndr, "server_addr", r->server_addr);
455 ndr->depth++;
456 if (r->server_addr) {
457 ndr_print_string(ndr, "server_addr", r->server_addr);
459 ndr->depth--;
460 ndr_print_uint16(ndr, "server_port", r->server_port);
461 ndr_print_ptr(ndr, "sam_info3", r->sam_info3);
462 ndr->depth++;
463 if (r->sam_info3) {
464 ndr_print_netr_SamInfo3(ndr, "sam_info3", r->sam_info3);
466 ndr->depth--;
467 ndr_print_uint32(ndr, "session_key_length", r->session_key_length);
468 ndr_print_ptr(ndr, "session_key", r->session_key);
469 ndr->depth++;
470 if (r->session_key) {
471 ndr_print_array_uint8(ndr, "session_key", r->session_key, r->session_key_length);
473 ndr->depth--;
474 ndr_print_uint32(ndr, "gssapi_delegated_creds_length", r->gssapi_delegated_creds_length);
475 ndr_print_ptr(ndr, "gssapi_delegated_creds", r->gssapi_delegated_creds);
476 ndr->depth++;
477 if (r->gssapi_delegated_creds) {
478 ndr_print_array_uint8(ndr, "gssapi_delegated_creds", r->gssapi_delegated_creds, r->gssapi_delegated_creds_length);
480 ndr->depth--;
481 ndr->depth--;
484 static enum ndr_err_code ndr_push_named_pipe_auth_req_info(struct ndr_push *ndr, int ndr_flags, const union named_pipe_auth_req_info *r)
486 if (ndr_flags & NDR_SCALARS) {
487 int level = ndr_push_get_switch_value(ndr, r);
488 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
489 switch (level) {
490 case 0: {
491 break; }
493 case 1: {
494 NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_SCALARS, &r->info1));
495 break; }
497 case 2: {
498 NDR_CHECK(ndr_push_named_pipe_auth_req_info2(ndr, NDR_SCALARS, &r->info2));
499 break; }
501 case 3: {
502 NDR_CHECK(ndr_push_named_pipe_auth_req_info3(ndr, NDR_SCALARS, &r->info3));
503 break; }
505 default:
506 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
509 if (ndr_flags & NDR_BUFFERS) {
510 int level = ndr_push_get_switch_value(ndr, r);
511 switch (level) {
512 case 0:
513 break;
515 case 1:
516 NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_BUFFERS, &r->info1));
517 break;
519 case 2:
520 NDR_CHECK(ndr_push_named_pipe_auth_req_info2(ndr, NDR_BUFFERS, &r->info2));
521 break;
523 case 3:
524 NDR_CHECK(ndr_push_named_pipe_auth_req_info3(ndr, NDR_BUFFERS, &r->info3));
525 break;
527 default:
528 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
531 return NDR_ERR_SUCCESS;
534 static enum ndr_err_code ndr_pull_named_pipe_auth_req_info(struct ndr_pull *ndr, int ndr_flags, union named_pipe_auth_req_info *r)
536 int level;
537 uint32_t _level;
538 level = ndr_pull_get_switch_value(ndr, r);
539 if (ndr_flags & NDR_SCALARS) {
540 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
541 if (_level != level) {
542 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
544 switch (level) {
545 case 0: {
546 break; }
548 case 1: {
549 NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_SCALARS, &r->info1));
550 break; }
552 case 2: {
553 NDR_CHECK(ndr_pull_named_pipe_auth_req_info2(ndr, NDR_SCALARS, &r->info2));
554 break; }
556 case 3: {
557 NDR_CHECK(ndr_pull_named_pipe_auth_req_info3(ndr, NDR_SCALARS, &r->info3));
558 break; }
560 default:
561 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
564 if (ndr_flags & NDR_BUFFERS) {
565 switch (level) {
566 case 0:
567 break;
569 case 1:
570 NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_BUFFERS, &r->info1));
571 break;
573 case 2:
574 NDR_CHECK(ndr_pull_named_pipe_auth_req_info2(ndr, NDR_BUFFERS, &r->info2));
575 break;
577 case 3:
578 NDR_CHECK(ndr_pull_named_pipe_auth_req_info3(ndr, NDR_BUFFERS, &r->info3));
579 break;
581 default:
582 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
585 return NDR_ERR_SUCCESS;
588 _PUBLIC_ void ndr_print_named_pipe_auth_req_info(struct ndr_print *ndr, const char *name, const union named_pipe_auth_req_info *r)
590 int level;
591 level = ndr_print_get_switch_value(ndr, r);
592 ndr_print_union(ndr, name, level, "named_pipe_auth_req_info");
593 switch (level) {
594 case 0:
595 break;
597 case 1:
598 ndr_print_netr_SamInfo3(ndr, "info1", &r->info1);
599 break;
601 case 2:
602 ndr_print_named_pipe_auth_req_info2(ndr, "info2", &r->info2);
603 break;
605 case 3:
606 ndr_print_named_pipe_auth_req_info3(ndr, "info3", &r->info3);
607 break;
609 default:
610 ndr_print_bad_level(ndr, name, level);
614 _PUBLIC_ enum ndr_err_code ndr_push_named_pipe_auth_req(struct ndr_push *ndr, int ndr_flags, const struct named_pipe_auth_req *r)
616 if (ndr_flags & NDR_SCALARS) {
617 NDR_CHECK(ndr_push_align(ndr, 5));
619 uint32_t _flags_save_uint32 = ndr->flags;
620 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
621 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_named_pipe_auth_req(r, ndr->iconv_convenience, ndr->flags) - 4));
622 ndr->flags = _flags_save_uint32;
624 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, NAMED_PIPE_AUTH_MAGIC, 4, sizeof(uint8_t), CH_DOS));
625 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
626 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
627 NDR_CHECK(ndr_push_named_pipe_auth_req_info(ndr, NDR_SCALARS, &r->info));
629 if (ndr_flags & NDR_BUFFERS) {
630 NDR_CHECK(ndr_push_named_pipe_auth_req_info(ndr, NDR_BUFFERS, &r->info));
632 return NDR_ERR_SUCCESS;
635 _PUBLIC_ enum ndr_err_code ndr_pull_named_pipe_auth_req(struct ndr_pull *ndr, int ndr_flags, struct named_pipe_auth_req *r)
637 if (ndr_flags & NDR_SCALARS) {
638 NDR_CHECK(ndr_pull_align(ndr, 5));
640 uint32_t _flags_save_uint32 = ndr->flags;
641 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
642 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
643 ndr->flags = _flags_save_uint32;
645 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->magic, 4, sizeof(uint8_t), CH_DOS));
646 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
647 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
648 NDR_CHECK(ndr_pull_named_pipe_auth_req_info(ndr, NDR_SCALARS, &r->info));
650 if (ndr_flags & NDR_BUFFERS) {
651 NDR_CHECK(ndr_pull_named_pipe_auth_req_info(ndr, NDR_BUFFERS, &r->info));
653 return NDR_ERR_SUCCESS;
656 _PUBLIC_ void ndr_print_named_pipe_auth_req(struct ndr_print *ndr, const char *name, const struct named_pipe_auth_req *r)
658 ndr_print_struct(ndr, name, "named_pipe_auth_req");
659 ndr->depth++;
660 ndr_print_uint32(ndr, "length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_named_pipe_auth_req(r, ndr->iconv_convenience, ndr->flags) - 4:r->length);
661 ndr_print_string(ndr, "magic", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?NAMED_PIPE_AUTH_MAGIC:r->magic);
662 ndr_print_uint32(ndr, "level", r->level);
663 ndr_print_set_switch_value(ndr, &r->info, r->level);
664 ndr_print_named_pipe_auth_req_info(ndr, "info", &r->info);
665 ndr->depth--;
668 _PUBLIC_ size_t ndr_size_named_pipe_auth_req(const struct named_pipe_auth_req *r, struct smb_iconv_convenience *ic, int flags)
670 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_named_pipe_auth_req, ic);
673 static enum ndr_err_code ndr_push_named_pipe_auth_rep_info2(struct ndr_push *ndr, int ndr_flags, const struct named_pipe_auth_rep_info2 *r)
675 if (ndr_flags & NDR_SCALARS) {
676 NDR_CHECK(ndr_push_align(ndr, 8));
677 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->file_type));
678 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->device_state));
679 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->allocation_size));
681 if (ndr_flags & NDR_BUFFERS) {
683 return NDR_ERR_SUCCESS;
686 static enum ndr_err_code ndr_pull_named_pipe_auth_rep_info2(struct ndr_pull *ndr, int ndr_flags, struct named_pipe_auth_rep_info2 *r)
688 if (ndr_flags & NDR_SCALARS) {
689 NDR_CHECK(ndr_pull_align(ndr, 8));
690 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->file_type));
691 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->device_state));
692 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->allocation_size));
694 if (ndr_flags & NDR_BUFFERS) {
696 return NDR_ERR_SUCCESS;
699 _PUBLIC_ void ndr_print_named_pipe_auth_rep_info2(struct ndr_print *ndr, const char *name, const struct named_pipe_auth_rep_info2 *r)
701 ndr_print_struct(ndr, name, "named_pipe_auth_rep_info2");
702 ndr->depth++;
703 ndr_print_uint16(ndr, "file_type", r->file_type);
704 ndr_print_uint16(ndr, "device_state", r->device_state);
705 ndr_print_hyper(ndr, "allocation_size", r->allocation_size);
706 ndr->depth--;
709 static enum ndr_err_code ndr_push_named_pipe_auth_rep_info3(struct ndr_push *ndr, int ndr_flags, const struct named_pipe_auth_rep_info3 *r)
711 if (ndr_flags & NDR_SCALARS) {
712 NDR_CHECK(ndr_push_align(ndr, 8));
713 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->file_type));
714 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->device_state));
715 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->allocation_size));
717 if (ndr_flags & NDR_BUFFERS) {
719 return NDR_ERR_SUCCESS;
722 static enum ndr_err_code ndr_pull_named_pipe_auth_rep_info3(struct ndr_pull *ndr, int ndr_flags, struct named_pipe_auth_rep_info3 *r)
724 if (ndr_flags & NDR_SCALARS) {
725 NDR_CHECK(ndr_pull_align(ndr, 8));
726 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->file_type));
727 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->device_state));
728 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->allocation_size));
730 if (ndr_flags & NDR_BUFFERS) {
732 return NDR_ERR_SUCCESS;
735 _PUBLIC_ void ndr_print_named_pipe_auth_rep_info3(struct ndr_print *ndr, const char *name, const struct named_pipe_auth_rep_info3 *r)
737 ndr_print_struct(ndr, name, "named_pipe_auth_rep_info3");
738 ndr->depth++;
739 ndr_print_uint16(ndr, "file_type", r->file_type);
740 ndr_print_uint16(ndr, "device_state", r->device_state);
741 ndr_print_hyper(ndr, "allocation_size", r->allocation_size);
742 ndr->depth--;
745 static enum ndr_err_code ndr_push_named_pipe_auth_rep_info(struct ndr_push *ndr, int ndr_flags, const union named_pipe_auth_rep_info *r)
747 if (ndr_flags & NDR_SCALARS) {
748 int level = ndr_push_get_switch_value(ndr, r);
749 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
750 switch (level) {
751 case 0: {
752 break; }
754 case 1: {
755 break; }
757 case 2: {
758 NDR_CHECK(ndr_push_named_pipe_auth_rep_info2(ndr, NDR_SCALARS, &r->info2));
759 break; }
761 case 3: {
762 NDR_CHECK(ndr_push_named_pipe_auth_rep_info3(ndr, NDR_SCALARS, &r->info3));
763 break; }
765 default:
766 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
769 if (ndr_flags & NDR_BUFFERS) {
770 int level = ndr_push_get_switch_value(ndr, r);
771 switch (level) {
772 case 0:
773 break;
775 case 1:
776 break;
778 case 2:
779 break;
781 case 3:
782 break;
784 default:
785 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
788 return NDR_ERR_SUCCESS;
791 static enum ndr_err_code ndr_pull_named_pipe_auth_rep_info(struct ndr_pull *ndr, int ndr_flags, union named_pipe_auth_rep_info *r)
793 int level;
794 uint32_t _level;
795 level = ndr_pull_get_switch_value(ndr, r);
796 if (ndr_flags & NDR_SCALARS) {
797 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
798 if (_level != level) {
799 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
801 switch (level) {
802 case 0: {
803 break; }
805 case 1: {
806 break; }
808 case 2: {
809 NDR_CHECK(ndr_pull_named_pipe_auth_rep_info2(ndr, NDR_SCALARS, &r->info2));
810 break; }
812 case 3: {
813 NDR_CHECK(ndr_pull_named_pipe_auth_rep_info3(ndr, NDR_SCALARS, &r->info3));
814 break; }
816 default:
817 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
820 if (ndr_flags & NDR_BUFFERS) {
821 switch (level) {
822 case 0:
823 break;
825 case 1:
826 break;
828 case 2:
829 break;
831 case 3:
832 break;
834 default:
835 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
838 return NDR_ERR_SUCCESS;
841 _PUBLIC_ void ndr_print_named_pipe_auth_rep_info(struct ndr_print *ndr, const char *name, const union named_pipe_auth_rep_info *r)
843 int level;
844 level = ndr_print_get_switch_value(ndr, r);
845 ndr_print_union(ndr, name, level, "named_pipe_auth_rep_info");
846 switch (level) {
847 case 0:
848 break;
850 case 1:
851 break;
853 case 2:
854 ndr_print_named_pipe_auth_rep_info2(ndr, "info2", &r->info2);
855 break;
857 case 3:
858 ndr_print_named_pipe_auth_rep_info3(ndr, "info3", &r->info3);
859 break;
861 default:
862 ndr_print_bad_level(ndr, name, level);
866 _PUBLIC_ enum ndr_err_code ndr_push_named_pipe_auth_rep(struct ndr_push *ndr, int ndr_flags, const struct named_pipe_auth_rep *r)
868 if (ndr_flags & NDR_SCALARS) {
869 NDR_CHECK(ndr_push_align(ndr, 8));
871 uint32_t _flags_save_uint32 = ndr->flags;
872 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
873 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_named_pipe_auth_rep(r, ndr->iconv_convenience, ndr->flags) - 4));
874 ndr->flags = _flags_save_uint32;
876 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, NAMED_PIPE_AUTH_MAGIC, 4, sizeof(uint8_t), CH_DOS));
877 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
878 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
879 NDR_CHECK(ndr_push_named_pipe_auth_rep_info(ndr, NDR_SCALARS, &r->info));
880 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->status));
882 if (ndr_flags & NDR_BUFFERS) {
883 NDR_CHECK(ndr_push_named_pipe_auth_rep_info(ndr, NDR_BUFFERS, &r->info));
885 return NDR_ERR_SUCCESS;
888 _PUBLIC_ enum ndr_err_code ndr_pull_named_pipe_auth_rep(struct ndr_pull *ndr, int ndr_flags, struct named_pipe_auth_rep *r)
890 if (ndr_flags & NDR_SCALARS) {
891 NDR_CHECK(ndr_pull_align(ndr, 8));
893 uint32_t _flags_save_uint32 = ndr->flags;
894 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
895 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
896 ndr->flags = _flags_save_uint32;
898 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->magic, 4, sizeof(uint8_t), CH_DOS));
899 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
900 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
901 NDR_CHECK(ndr_pull_named_pipe_auth_rep_info(ndr, NDR_SCALARS, &r->info));
902 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->status));
904 if (ndr_flags & NDR_BUFFERS) {
905 NDR_CHECK(ndr_pull_named_pipe_auth_rep_info(ndr, NDR_BUFFERS, &r->info));
907 return NDR_ERR_SUCCESS;
910 _PUBLIC_ void ndr_print_named_pipe_auth_rep(struct ndr_print *ndr, const char *name, const struct named_pipe_auth_rep *r)
912 ndr_print_struct(ndr, name, "named_pipe_auth_rep");
913 ndr->depth++;
914 ndr_print_uint32(ndr, "length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_named_pipe_auth_rep(r, ndr->iconv_convenience, ndr->flags) - 4:r->length);
915 ndr_print_string(ndr, "magic", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?NAMED_PIPE_AUTH_MAGIC:r->magic);
916 ndr_print_uint32(ndr, "level", r->level);
917 ndr_print_set_switch_value(ndr, &r->info, r->level);
918 ndr_print_named_pipe_auth_rep_info(ndr, "info", &r->info);
919 ndr_print_NTSTATUS(ndr, "status", r->status);
920 ndr->depth--;
923 _PUBLIC_ size_t ndr_size_named_pipe_auth_rep(const struct named_pipe_auth_rep *r, struct smb_iconv_convenience *ic, int flags)
925 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_named_pipe_auth_rep, ic);