build: enable python 3.0 and 3.1 in testwaf.sh
[ira/wip.git] / librpc / gen_ndr / ndr_named_pipe_auth.c
1 /* parser auto-generated by pidl */
2
3 #include "includes.h"
4 #include "../librpc/gen_ndr/ndr_named_pipe_auth.h"
5
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)
8 {
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));
20                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
21         }
22         if (ndr_flags & NDR_BUFFERS) {
23                 if (r->client_name) {
24                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client_name, CH_UTF8)));
25                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client_name, CH_UTF8)));
27                         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                 }
29                 if (r->client_addr) {
30                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client_addr, CH_DOS)));
31                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
32                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client_addr, CH_DOS)));
33                         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                 }
35                 if (r->server_name) {
36                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF8)));
37                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
38                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF8)));
39                         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                 }
41                 if (r->server_addr) {
42                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_addr, CH_DOS)));
43                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
44                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_addr, CH_DOS)));
45                         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                 }
47                 if (r->sam_info3) {
48                         NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam_info3));
49                 }
50                 if (r->session_key) {
51                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->session_key_length));
52                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->session_key, r->session_key_length));
53                 }
54         }
55         return NDR_ERR_SUCCESS;
56 }
57
58 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 {
60         uint32_t _ptr_client_name;
61         TALLOC_CTX *_mem_save_client_name_0;
62         uint32_t _ptr_client_addr;
63         TALLOC_CTX *_mem_save_client_addr_0;
64         uint32_t _ptr_server_name;
65         TALLOC_CTX *_mem_save_server_name_0;
66         uint32_t _ptr_server_addr;
67         TALLOC_CTX *_mem_save_server_addr_0;
68         uint32_t _ptr_sam_info3;
69         TALLOC_CTX *_mem_save_sam_info3_0;
70         uint32_t _ptr_session_key;
71         TALLOC_CTX *_mem_save_session_key_0;
72         if (ndr_flags & NDR_SCALARS) {
73                 NDR_CHECK(ndr_pull_align(ndr, 5));
74                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_name));
75                 if (_ptr_client_name) {
76                         NDR_PULL_ALLOC(ndr, r->client_name);
77                 } else {
78                         r->client_name = NULL;
79                 }
80                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_addr));
81                 if (_ptr_client_addr) {
82                         NDR_PULL_ALLOC(ndr, r->client_addr);
83                 } else {
84                         r->client_addr = NULL;
85                 }
86                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->client_port));
87                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
88                 if (_ptr_server_name) {
89                         NDR_PULL_ALLOC(ndr, r->server_name);
90                 } else {
91                         r->server_name = NULL;
92                 }
93                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_addr));
94                 if (_ptr_server_addr) {
95                         NDR_PULL_ALLOC(ndr, r->server_addr);
96                 } else {
97                         r->server_addr = NULL;
98                 }
99                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->server_port));
100                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam_info3));
101                 if (_ptr_sam_info3) {
102                         NDR_PULL_ALLOC(ndr, r->sam_info3);
103                 } else {
104                         r->sam_info3 = NULL;
105                 }
106                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_key_length));
107                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_session_key));
108                 if (_ptr_session_key) {
109                         NDR_PULL_ALLOC(ndr, r->session_key);
110                 } else {
111                         r->session_key = NULL;
112                 }
113                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
114         }
115         if (ndr_flags & NDR_BUFFERS) {
116                 if (r->client_name) {
117                         _mem_save_client_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
118                         NDR_PULL_SET_MEM_CTX(ndr, r->client_name, 0);
119                         NDR_CHECK(ndr_pull_array_size(ndr, &r->client_name));
120                         NDR_CHECK(ndr_pull_array_length(ndr, &r->client_name));
121                         if (ndr_get_array_length(ndr, &r->client_name) > ndr_get_array_size(ndr, &r->client_name)) {
122                                 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));
123                         }
124                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client_name), sizeof(uint8_t)));
125                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client_name, ndr_get_array_length(ndr, &r->client_name), sizeof(uint8_t), CH_UTF8));
126                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_name_0, 0);
127                 }
128                 if (r->client_addr) {
129                         _mem_save_client_addr_0 = NDR_PULL_GET_MEM_CTX(ndr);
130                         NDR_PULL_SET_MEM_CTX(ndr, r->client_addr, 0);
131                         NDR_CHECK(ndr_pull_array_size(ndr, &r->client_addr));
132                         NDR_CHECK(ndr_pull_array_length(ndr, &r->client_addr));
133                         if (ndr_get_array_length(ndr, &r->client_addr) > ndr_get_array_size(ndr, &r->client_addr)) {
134                                 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));
135                         }
136                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client_addr), sizeof(uint8_t)));
137                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client_addr, ndr_get_array_length(ndr, &r->client_addr), sizeof(uint8_t), CH_DOS));
138                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_addr_0, 0);
139                 }
140                 if (r->server_name) {
141                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
142                         NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
143                         NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
144                         NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
145                         if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
146                                 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));
147                         }
148                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint8_t)));
149                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint8_t), CH_UTF8));
150                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
151                 }
152                 if (r->server_addr) {
153                         _mem_save_server_addr_0 = NDR_PULL_GET_MEM_CTX(ndr);
154                         NDR_PULL_SET_MEM_CTX(ndr, r->server_addr, 0);
155                         NDR_CHECK(ndr_pull_array_size(ndr, &r->server_addr));
156                         NDR_CHECK(ndr_pull_array_length(ndr, &r->server_addr));
157                         if (ndr_get_array_length(ndr, &r->server_addr) > ndr_get_array_size(ndr, &r->server_addr)) {
158                                 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));
159                         }
160                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_addr), sizeof(uint8_t)));
161                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_addr, ndr_get_array_length(ndr, &r->server_addr), sizeof(uint8_t), CH_DOS));
162                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_addr_0, 0);
163                 }
164                 if (r->sam_info3) {
165                         _mem_save_sam_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
166                         NDR_PULL_SET_MEM_CTX(ndr, r->sam_info3, 0);
167                         NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam_info3));
168                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam_info3_0, 0);
169                 }
170                 if (r->session_key) {
171                         _mem_save_session_key_0 = NDR_PULL_GET_MEM_CTX(ndr);
172                         NDR_PULL_SET_MEM_CTX(ndr, r->session_key, 0);
173                         NDR_CHECK(ndr_pull_array_size(ndr, &r->session_key));
174                         NDR_PULL_ALLOC_N(ndr, r->session_key, ndr_get_array_size(ndr, &r->session_key));
175                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->session_key, ndr_get_array_size(ndr, &r->session_key)));
176                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_session_key_0, 0);
177                 }
178                 if (r->session_key) {
179                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->session_key, r->session_key_length));
180                 }
181         }
182         return NDR_ERR_SUCCESS;
183 }
184
185 _PUBLIC_ void ndr_print_named_pipe_auth_req_info2(struct ndr_print *ndr, const char *name, const struct named_pipe_auth_req_info2 *r)
186 {
187         ndr_print_struct(ndr, name, "named_pipe_auth_req_info2");
188         ndr->depth++;
189         ndr_print_ptr(ndr, "client_name", r->client_name);
190         ndr->depth++;
191         if (r->client_name) {
192                 ndr_print_string(ndr, "client_name", r->client_name);
193         }
194         ndr->depth--;
195         ndr_print_ptr(ndr, "client_addr", r->client_addr);
196         ndr->depth++;
197         if (r->client_addr) {
198                 ndr_print_string(ndr, "client_addr", r->client_addr);
199         }
200         ndr->depth--;
201         ndr_print_uint16(ndr, "client_port", r->client_port);
202         ndr_print_ptr(ndr, "server_name", r->server_name);
203         ndr->depth++;
204         if (r->server_name) {
205                 ndr_print_string(ndr, "server_name", r->server_name);
206         }
207         ndr->depth--;
208         ndr_print_ptr(ndr, "server_addr", r->server_addr);
209         ndr->depth++;
210         if (r->server_addr) {
211                 ndr_print_string(ndr, "server_addr", r->server_addr);
212         }
213         ndr->depth--;
214         ndr_print_uint16(ndr, "server_port", r->server_port);
215         ndr_print_ptr(ndr, "sam_info3", r->sam_info3);
216         ndr->depth++;
217         if (r->sam_info3) {
218                 ndr_print_netr_SamInfo3(ndr, "sam_info3", r->sam_info3);
219         }
220         ndr->depth--;
221         ndr_print_uint32(ndr, "session_key_length", r->session_key_length);
222         ndr_print_ptr(ndr, "session_key", r->session_key);
223         ndr->depth++;
224         if (r->session_key) {
225                 ndr_print_array_uint8(ndr, "session_key", r->session_key, r->session_key_length);
226         }
227         ndr->depth--;
228         ndr->depth--;
229 }
230
231 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)
232 {
233         if (ndr_flags & NDR_SCALARS) {
234                 NDR_CHECK(ndr_push_align(ndr, 5));
235                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client_name));
236                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client_addr));
237                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->client_port));
238                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
239                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_addr));
240                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->server_port));
241                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam_info3));
242                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_key_length));
243                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->session_key));
244                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->gssapi_delegated_creds_length));
245                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->gssapi_delegated_creds));
246                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
247         }
248         if (ndr_flags & NDR_BUFFERS) {
249                 if (r->client_name) {
250                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client_name, CH_UTF8)));
251                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
252                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client_name, CH_UTF8)));
253                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client_name, ndr_charset_length(r->client_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
254                 }
255                 if (r->client_addr) {
256                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client_addr, CH_DOS)));
257                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
258                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client_addr, CH_DOS)));
259                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client_addr, ndr_charset_length(r->client_addr, CH_DOS), sizeof(uint8_t), CH_DOS));
260                 }
261                 if (r->server_name) {
262                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF8)));
263                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
264                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF8)));
265                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
266                 }
267                 if (r->server_addr) {
268                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_addr, CH_DOS)));
269                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
270                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_addr, CH_DOS)));
271                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_addr, ndr_charset_length(r->server_addr, CH_DOS), sizeof(uint8_t), CH_DOS));
272                 }
273                 if (r->sam_info3) {
274                         NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam_info3));
275                 }
276                 if (r->session_key) {
277                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->session_key_length));
278                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->session_key, r->session_key_length));
279                 }
280                 if (r->gssapi_delegated_creds) {
281                         NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->gssapi_delegated_creds_length));
282                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->gssapi_delegated_creds, r->gssapi_delegated_creds_length));
283                 }
284         }
285         return NDR_ERR_SUCCESS;
286 }
287
288 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)
289 {
290         uint32_t _ptr_client_name;
291         TALLOC_CTX *_mem_save_client_name_0;
292         uint32_t _ptr_client_addr;
293         TALLOC_CTX *_mem_save_client_addr_0;
294         uint32_t _ptr_server_name;
295         TALLOC_CTX *_mem_save_server_name_0;
296         uint32_t _ptr_server_addr;
297         TALLOC_CTX *_mem_save_server_addr_0;
298         uint32_t _ptr_sam_info3;
299         TALLOC_CTX *_mem_save_sam_info3_0;
300         uint32_t _ptr_session_key;
301         TALLOC_CTX *_mem_save_session_key_0;
302         uint32_t _ptr_gssapi_delegated_creds;
303         TALLOC_CTX *_mem_save_gssapi_delegated_creds_0;
304         if (ndr_flags & NDR_SCALARS) {
305                 NDR_CHECK(ndr_pull_align(ndr, 5));
306                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_name));
307                 if (_ptr_client_name) {
308                         NDR_PULL_ALLOC(ndr, r->client_name);
309                 } else {
310                         r->client_name = NULL;
311                 }
312                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_addr));
313                 if (_ptr_client_addr) {
314                         NDR_PULL_ALLOC(ndr, r->client_addr);
315                 } else {
316                         r->client_addr = NULL;
317                 }
318                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->client_port));
319                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
320                 if (_ptr_server_name) {
321                         NDR_PULL_ALLOC(ndr, r->server_name);
322                 } else {
323                         r->server_name = NULL;
324                 }
325                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_addr));
326                 if (_ptr_server_addr) {
327                         NDR_PULL_ALLOC(ndr, r->server_addr);
328                 } else {
329                         r->server_addr = NULL;
330                 }
331                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->server_port));
332                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam_info3));
333                 if (_ptr_sam_info3) {
334                         NDR_PULL_ALLOC(ndr, r->sam_info3);
335                 } else {
336                         r->sam_info3 = NULL;
337                 }
338                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_key_length));
339                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_session_key));
340                 if (_ptr_session_key) {
341                         NDR_PULL_ALLOC(ndr, r->session_key);
342                 } else {
343                         r->session_key = NULL;
344                 }
345                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->gssapi_delegated_creds_length));
346                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_gssapi_delegated_creds));
347                 if (_ptr_gssapi_delegated_creds) {
348                         NDR_PULL_ALLOC(ndr, r->gssapi_delegated_creds);
349                 } else {
350                         r->gssapi_delegated_creds = NULL;
351                 }
352                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
353         }
354         if (ndr_flags & NDR_BUFFERS) {
355                 if (r->client_name) {
356                         _mem_save_client_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
357                         NDR_PULL_SET_MEM_CTX(ndr, r->client_name, 0);
358                         NDR_CHECK(ndr_pull_array_size(ndr, &r->client_name));
359                         NDR_CHECK(ndr_pull_array_length(ndr, &r->client_name));
360                         if (ndr_get_array_length(ndr, &r->client_name) > ndr_get_array_size(ndr, &r->client_name)) {
361                                 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));
362                         }
363                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client_name), sizeof(uint8_t)));
364                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client_name, ndr_get_array_length(ndr, &r->client_name), sizeof(uint8_t), CH_UTF8));
365                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_name_0, 0);
366                 }
367                 if (r->client_addr) {
368                         _mem_save_client_addr_0 = NDR_PULL_GET_MEM_CTX(ndr);
369                         NDR_PULL_SET_MEM_CTX(ndr, r->client_addr, 0);
370                         NDR_CHECK(ndr_pull_array_size(ndr, &r->client_addr));
371                         NDR_CHECK(ndr_pull_array_length(ndr, &r->client_addr));
372                         if (ndr_get_array_length(ndr, &r->client_addr) > ndr_get_array_size(ndr, &r->client_addr)) {
373                                 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));
374                         }
375                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client_addr), sizeof(uint8_t)));
376                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client_addr, ndr_get_array_length(ndr, &r->client_addr), sizeof(uint8_t), CH_DOS));
377                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_addr_0, 0);
378                 }
379                 if (r->server_name) {
380                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
381                         NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
382                         NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
383                         NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
384                         if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
385                                 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));
386                         }
387                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint8_t)));
388                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint8_t), CH_UTF8));
389                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
390                 }
391                 if (r->server_addr) {
392                         _mem_save_server_addr_0 = NDR_PULL_GET_MEM_CTX(ndr);
393                         NDR_PULL_SET_MEM_CTX(ndr, r->server_addr, 0);
394                         NDR_CHECK(ndr_pull_array_size(ndr, &r->server_addr));
395                         NDR_CHECK(ndr_pull_array_length(ndr, &r->server_addr));
396                         if (ndr_get_array_length(ndr, &r->server_addr) > ndr_get_array_size(ndr, &r->server_addr)) {
397                                 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));
398                         }
399                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_addr), sizeof(uint8_t)));
400                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_addr, ndr_get_array_length(ndr, &r->server_addr), sizeof(uint8_t), CH_DOS));
401                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_addr_0, 0);
402                 }
403                 if (r->sam_info3) {
404                         _mem_save_sam_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
405                         NDR_PULL_SET_MEM_CTX(ndr, r->sam_info3, 0);
406                         NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam_info3));
407                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam_info3_0, 0);
408                 }
409                 if (r->session_key) {
410                         _mem_save_session_key_0 = NDR_PULL_GET_MEM_CTX(ndr);
411                         NDR_PULL_SET_MEM_CTX(ndr, r->session_key, 0);
412                         NDR_CHECK(ndr_pull_array_size(ndr, &r->session_key));
413                         NDR_PULL_ALLOC_N(ndr, r->session_key, ndr_get_array_size(ndr, &r->session_key));
414                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->session_key, ndr_get_array_size(ndr, &r->session_key)));
415                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_session_key_0, 0);
416                 }
417                 if (r->gssapi_delegated_creds) {
418                         _mem_save_gssapi_delegated_creds_0 = NDR_PULL_GET_MEM_CTX(ndr);
419                         NDR_PULL_SET_MEM_CTX(ndr, r->gssapi_delegated_creds, 0);
420                         NDR_CHECK(ndr_pull_array_size(ndr, &r->gssapi_delegated_creds));
421                         NDR_PULL_ALLOC_N(ndr, r->gssapi_delegated_creds, ndr_get_array_size(ndr, &r->gssapi_delegated_creds));
422                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->gssapi_delegated_creds, ndr_get_array_size(ndr, &r->gssapi_delegated_creds)));
423                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gssapi_delegated_creds_0, 0);
424                 }
425                 if (r->session_key) {
426                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->session_key, r->session_key_length));
427                 }
428                 if (r->gssapi_delegated_creds) {
429                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->gssapi_delegated_creds, r->gssapi_delegated_creds_length));
430                 }
431         }
432         return NDR_ERR_SUCCESS;
433 }
434
435 _PUBLIC_ void ndr_print_named_pipe_auth_req_info3(struct ndr_print *ndr, const char *name, const struct named_pipe_auth_req_info3 *r)
436 {
437         ndr_print_struct(ndr, name, "named_pipe_auth_req_info3");
438         ndr->depth++;
439         ndr_print_ptr(ndr, "client_name", r->client_name);
440         ndr->depth++;
441         if (r->client_name) {
442                 ndr_print_string(ndr, "client_name", r->client_name);
443         }
444         ndr->depth--;
445         ndr_print_ptr(ndr, "client_addr", r->client_addr);
446         ndr->depth++;
447         if (r->client_addr) {
448                 ndr_print_string(ndr, "client_addr", r->client_addr);
449         }
450         ndr->depth--;
451         ndr_print_uint16(ndr, "client_port", r->client_port);
452         ndr_print_ptr(ndr, "server_name", r->server_name);
453         ndr->depth++;
454         if (r->server_name) {
455                 ndr_print_string(ndr, "server_name", r->server_name);
456         }
457         ndr->depth--;
458         ndr_print_ptr(ndr, "server_addr", r->server_addr);
459         ndr->depth++;
460         if (r->server_addr) {
461                 ndr_print_string(ndr, "server_addr", r->server_addr);
462         }
463         ndr->depth--;
464         ndr_print_uint16(ndr, "server_port", r->server_port);
465         ndr_print_ptr(ndr, "sam_info3", r->sam_info3);
466         ndr->depth++;
467         if (r->sam_info3) {
468                 ndr_print_netr_SamInfo3(ndr, "sam_info3", r->sam_info3);
469         }
470         ndr->depth--;
471         ndr_print_uint32(ndr, "session_key_length", r->session_key_length);
472         ndr_print_ptr(ndr, "session_key", r->session_key);
473         ndr->depth++;
474         if (r->session_key) {
475                 ndr_print_array_uint8(ndr, "session_key", r->session_key, r->session_key_length);
476         }
477         ndr->depth--;
478         ndr_print_uint32(ndr, "gssapi_delegated_creds_length", r->gssapi_delegated_creds_length);
479         ndr_print_ptr(ndr, "gssapi_delegated_creds", r->gssapi_delegated_creds);
480         ndr->depth++;
481         if (r->gssapi_delegated_creds) {
482                 ndr_print_array_uint8(ndr, "gssapi_delegated_creds", r->gssapi_delegated_creds, r->gssapi_delegated_creds_length);
483         }
484         ndr->depth--;
485         ndr->depth--;
486 }
487
488 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)
489 {
490         if (ndr_flags & NDR_SCALARS) {
491                 int level = ndr_push_get_switch_value(ndr, r);
492                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
493                 NDR_CHECK(ndr_push_union_align(ndr, 5));
494                 switch (level) {
495                         case 0: {
496                         break; }
497
498                         case 1: {
499                                 NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_SCALARS, &r->info1));
500                         break; }
501
502                         case 2: {
503                                 NDR_CHECK(ndr_push_named_pipe_auth_req_info2(ndr, NDR_SCALARS, &r->info2));
504                         break; }
505
506                         case 3: {
507                                 NDR_CHECK(ndr_push_named_pipe_auth_req_info3(ndr, NDR_SCALARS, &r->info3));
508                         break; }
509
510                         default:
511                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
512                 }
513         }
514         if (ndr_flags & NDR_BUFFERS) {
515                 int level = ndr_push_get_switch_value(ndr, r);
516                 switch (level) {
517                         case 0:
518                         break;
519
520                         case 1:
521                                 NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_BUFFERS, &r->info1));
522                         break;
523
524                         case 2:
525                                 NDR_CHECK(ndr_push_named_pipe_auth_req_info2(ndr, NDR_BUFFERS, &r->info2));
526                         break;
527
528                         case 3:
529                                 NDR_CHECK(ndr_push_named_pipe_auth_req_info3(ndr, NDR_BUFFERS, &r->info3));
530                         break;
531
532                         default:
533                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
534                 }
535         }
536         return NDR_ERR_SUCCESS;
537 }
538
539 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)
540 {
541         int level;
542         uint32_t _level;
543         level = ndr_pull_get_switch_value(ndr, r);
544         if (ndr_flags & NDR_SCALARS) {
545                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
546                 if (_level != level) {
547                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
548                 }
549                 NDR_CHECK(ndr_pull_union_align(ndr, 5));
550                 switch (level) {
551                         case 0: {
552                         break; }
553
554                         case 1: {
555                                 NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_SCALARS, &r->info1));
556                         break; }
557
558                         case 2: {
559                                 NDR_CHECK(ndr_pull_named_pipe_auth_req_info2(ndr, NDR_SCALARS, &r->info2));
560                         break; }
561
562                         case 3: {
563                                 NDR_CHECK(ndr_pull_named_pipe_auth_req_info3(ndr, NDR_SCALARS, &r->info3));
564                         break; }
565
566                         default:
567                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
568                 }
569         }
570         if (ndr_flags & NDR_BUFFERS) {
571                 switch (level) {
572                         case 0:
573                         break;
574
575                         case 1:
576                                 NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_BUFFERS, &r->info1));
577                         break;
578
579                         case 2:
580                                 NDR_CHECK(ndr_pull_named_pipe_auth_req_info2(ndr, NDR_BUFFERS, &r->info2));
581                         break;
582
583                         case 3:
584                                 NDR_CHECK(ndr_pull_named_pipe_auth_req_info3(ndr, NDR_BUFFERS, &r->info3));
585                         break;
586
587                         default:
588                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
589                 }
590         }
591         return NDR_ERR_SUCCESS;
592 }
593
594 _PUBLIC_ void ndr_print_named_pipe_auth_req_info(struct ndr_print *ndr, const char *name, const union named_pipe_auth_req_info *r)
595 {
596         int level;
597         level = ndr_print_get_switch_value(ndr, r);
598         ndr_print_union(ndr, name, level, "named_pipe_auth_req_info");
599         switch (level) {
600                 case 0:
601                 break;
602
603                 case 1:
604                         ndr_print_netr_SamInfo3(ndr, "info1", &r->info1);
605                 break;
606
607                 case 2:
608                         ndr_print_named_pipe_auth_req_info2(ndr, "info2", &r->info2);
609                 break;
610
611                 case 3:
612                         ndr_print_named_pipe_auth_req_info3(ndr, "info3", &r->info3);
613                 break;
614
615                 default:
616                         ndr_print_bad_level(ndr, name, level);
617         }
618 }
619
620 _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)
621 {
622         if (ndr_flags & NDR_SCALARS) {
623                 NDR_CHECK(ndr_push_align(ndr, 5));
624                 {
625                         uint32_t _flags_save_uint32 = ndr->flags;
626                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
627                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_named_pipe_auth_req(r, ndr->iconv_convenience, ndr->flags) - 4));
628                         ndr->flags = _flags_save_uint32;
629                 }
630                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, NAMED_PIPE_AUTH_MAGIC, 4, sizeof(uint8_t), CH_DOS));
631                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
632                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
633                 NDR_CHECK(ndr_push_named_pipe_auth_req_info(ndr, NDR_SCALARS, &r->info));
634                 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
635         }
636         if (ndr_flags & NDR_BUFFERS) {
637                 NDR_CHECK(ndr_push_named_pipe_auth_req_info(ndr, NDR_BUFFERS, &r->info));
638         }
639         return NDR_ERR_SUCCESS;
640 }
641
642 _PUBLIC_ enum ndr_err_code ndr_pull_named_pipe_auth_req(struct ndr_pull *ndr, int ndr_flags, struct named_pipe_auth_req *r)
643 {
644         if (ndr_flags & NDR_SCALARS) {
645                 NDR_CHECK(ndr_pull_align(ndr, 5));
646                 {
647                         uint32_t _flags_save_uint32 = ndr->flags;
648                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
649                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
650                         ndr->flags = _flags_save_uint32;
651                 }
652                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->magic, 4, sizeof(uint8_t), CH_DOS));
653                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
654                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
655                 NDR_CHECK(ndr_pull_named_pipe_auth_req_info(ndr, NDR_SCALARS, &r->info));
656                 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
657         }
658         if (ndr_flags & NDR_BUFFERS) {
659                 NDR_CHECK(ndr_pull_named_pipe_auth_req_info(ndr, NDR_BUFFERS, &r->info));
660         }
661         return NDR_ERR_SUCCESS;
662 }
663
664 _PUBLIC_ void ndr_print_named_pipe_auth_req(struct ndr_print *ndr, const char *name, const struct named_pipe_auth_req *r)
665 {
666         ndr_print_struct(ndr, name, "named_pipe_auth_req");
667         ndr->depth++;
668         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);
669         ndr_print_string(ndr, "magic", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?NAMED_PIPE_AUTH_MAGIC:r->magic);
670         ndr_print_uint32(ndr, "level", r->level);
671         ndr_print_set_switch_value(ndr, &r->info, r->level);
672         ndr_print_named_pipe_auth_req_info(ndr, "info", &r->info);
673         ndr->depth--;
674 }
675
676 _PUBLIC_ size_t ndr_size_named_pipe_auth_req(const struct named_pipe_auth_req *r, struct smb_iconv_convenience *ic, int flags)
677 {
678         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_named_pipe_auth_req, ic);
679 }
680
681 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)
682 {
683         if (ndr_flags & NDR_SCALARS) {
684                 NDR_CHECK(ndr_push_align(ndr, 8));
685                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->file_type));
686                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->device_state));
687                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->allocation_size));
688                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
689         }
690         if (ndr_flags & NDR_BUFFERS) {
691         }
692         return NDR_ERR_SUCCESS;
693 }
694
695 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)
696 {
697         if (ndr_flags & NDR_SCALARS) {
698                 NDR_CHECK(ndr_pull_align(ndr, 8));
699                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->file_type));
700                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->device_state));
701                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->allocation_size));
702                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
703         }
704         if (ndr_flags & NDR_BUFFERS) {
705         }
706         return NDR_ERR_SUCCESS;
707 }
708
709 _PUBLIC_ void ndr_print_named_pipe_auth_rep_info2(struct ndr_print *ndr, const char *name, const struct named_pipe_auth_rep_info2 *r)
710 {
711         ndr_print_struct(ndr, name, "named_pipe_auth_rep_info2");
712         ndr->depth++;
713         ndr_print_uint16(ndr, "file_type", r->file_type);
714         ndr_print_uint16(ndr, "device_state", r->device_state);
715         ndr_print_hyper(ndr, "allocation_size", r->allocation_size);
716         ndr->depth--;
717 }
718
719 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)
720 {
721         if (ndr_flags & NDR_SCALARS) {
722                 NDR_CHECK(ndr_push_align(ndr, 8));
723                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->file_type));
724                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->device_state));
725                 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->allocation_size));
726                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
727         }
728         if (ndr_flags & NDR_BUFFERS) {
729         }
730         return NDR_ERR_SUCCESS;
731 }
732
733 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)
734 {
735         if (ndr_flags & NDR_SCALARS) {
736                 NDR_CHECK(ndr_pull_align(ndr, 8));
737                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->file_type));
738                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->device_state));
739                 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->allocation_size));
740                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
741         }
742         if (ndr_flags & NDR_BUFFERS) {
743         }
744         return NDR_ERR_SUCCESS;
745 }
746
747 _PUBLIC_ void ndr_print_named_pipe_auth_rep_info3(struct ndr_print *ndr, const char *name, const struct named_pipe_auth_rep_info3 *r)
748 {
749         ndr_print_struct(ndr, name, "named_pipe_auth_rep_info3");
750         ndr->depth++;
751         ndr_print_uint16(ndr, "file_type", r->file_type);
752         ndr_print_uint16(ndr, "device_state", r->device_state);
753         ndr_print_hyper(ndr, "allocation_size", r->allocation_size);
754         ndr->depth--;
755 }
756
757 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)
758 {
759         if (ndr_flags & NDR_SCALARS) {
760                 int level = ndr_push_get_switch_value(ndr, r);
761                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
762                 NDR_CHECK(ndr_push_union_align(ndr, 8));
763                 switch (level) {
764                         case 0: {
765                         break; }
766
767                         case 1: {
768                         break; }
769
770                         case 2: {
771                                 NDR_CHECK(ndr_push_named_pipe_auth_rep_info2(ndr, NDR_SCALARS, &r->info2));
772                         break; }
773
774                         case 3: {
775                                 NDR_CHECK(ndr_push_named_pipe_auth_rep_info3(ndr, NDR_SCALARS, &r->info3));
776                         break; }
777
778                         default:
779                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
780                 }
781         }
782         if (ndr_flags & NDR_BUFFERS) {
783                 int level = ndr_push_get_switch_value(ndr, r);
784                 switch (level) {
785                         case 0:
786                         break;
787
788                         case 1:
789                         break;
790
791                         case 2:
792                         break;
793
794                         case 3:
795                         break;
796
797                         default:
798                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
799                 }
800         }
801         return NDR_ERR_SUCCESS;
802 }
803
804 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)
805 {
806         int level;
807         uint32_t _level;
808         level = ndr_pull_get_switch_value(ndr, r);
809         if (ndr_flags & NDR_SCALARS) {
810                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
811                 if (_level != level) {
812                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
813                 }
814                 NDR_CHECK(ndr_pull_union_align(ndr, 8));
815                 switch (level) {
816                         case 0: {
817                         break; }
818
819                         case 1: {
820                         break; }
821
822                         case 2: {
823                                 NDR_CHECK(ndr_pull_named_pipe_auth_rep_info2(ndr, NDR_SCALARS, &r->info2));
824                         break; }
825
826                         case 3: {
827                                 NDR_CHECK(ndr_pull_named_pipe_auth_rep_info3(ndr, NDR_SCALARS, &r->info3));
828                         break; }
829
830                         default:
831                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
832                 }
833         }
834         if (ndr_flags & NDR_BUFFERS) {
835                 switch (level) {
836                         case 0:
837                         break;
838
839                         case 1:
840                         break;
841
842                         case 2:
843                         break;
844
845                         case 3:
846                         break;
847
848                         default:
849                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
850                 }
851         }
852         return NDR_ERR_SUCCESS;
853 }
854
855 _PUBLIC_ void ndr_print_named_pipe_auth_rep_info(struct ndr_print *ndr, const char *name, const union named_pipe_auth_rep_info *r)
856 {
857         int level;
858         level = ndr_print_get_switch_value(ndr, r);
859         ndr_print_union(ndr, name, level, "named_pipe_auth_rep_info");
860         switch (level) {
861                 case 0:
862                 break;
863
864                 case 1:
865                 break;
866
867                 case 2:
868                         ndr_print_named_pipe_auth_rep_info2(ndr, "info2", &r->info2);
869                 break;
870
871                 case 3:
872                         ndr_print_named_pipe_auth_rep_info3(ndr, "info3", &r->info3);
873                 break;
874
875                 default:
876                         ndr_print_bad_level(ndr, name, level);
877         }
878 }
879
880 _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)
881 {
882         if (ndr_flags & NDR_SCALARS) {
883                 NDR_CHECK(ndr_push_align(ndr, 8));
884                 {
885                         uint32_t _flags_save_uint32 = ndr->flags;
886                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
887                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_named_pipe_auth_rep(r, ndr->iconv_convenience, ndr->flags) - 4));
888                         ndr->flags = _flags_save_uint32;
889                 }
890                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, NAMED_PIPE_AUTH_MAGIC, 4, sizeof(uint8_t), CH_DOS));
891                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
892                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
893                 NDR_CHECK(ndr_push_named_pipe_auth_rep_info(ndr, NDR_SCALARS, &r->info));
894                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->status));
895                 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
896         }
897         if (ndr_flags & NDR_BUFFERS) {
898                 NDR_CHECK(ndr_push_named_pipe_auth_rep_info(ndr, NDR_BUFFERS, &r->info));
899         }
900         return NDR_ERR_SUCCESS;
901 }
902
903 _PUBLIC_ enum ndr_err_code ndr_pull_named_pipe_auth_rep(struct ndr_pull *ndr, int ndr_flags, struct named_pipe_auth_rep *r)
904 {
905         if (ndr_flags & NDR_SCALARS) {
906                 NDR_CHECK(ndr_pull_align(ndr, 8));
907                 {
908                         uint32_t _flags_save_uint32 = ndr->flags;
909                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_BIGENDIAN);
910                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
911                         ndr->flags = _flags_save_uint32;
912                 }
913                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->magic, 4, sizeof(uint8_t), CH_DOS));
914                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
915                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
916                 NDR_CHECK(ndr_pull_named_pipe_auth_rep_info(ndr, NDR_SCALARS, &r->info));
917                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->status));
918                 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
919         }
920         if (ndr_flags & NDR_BUFFERS) {
921                 NDR_CHECK(ndr_pull_named_pipe_auth_rep_info(ndr, NDR_BUFFERS, &r->info));
922         }
923         return NDR_ERR_SUCCESS;
924 }
925
926 _PUBLIC_ void ndr_print_named_pipe_auth_rep(struct ndr_print *ndr, const char *name, const struct named_pipe_auth_rep *r)
927 {
928         ndr_print_struct(ndr, name, "named_pipe_auth_rep");
929         ndr->depth++;
930         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);
931         ndr_print_string(ndr, "magic", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?NAMED_PIPE_AUTH_MAGIC:r->magic);
932         ndr_print_uint32(ndr, "level", r->level);
933         ndr_print_set_switch_value(ndr, &r->info, r->level);
934         ndr_print_named_pipe_auth_rep_info(ndr, "info", &r->info);
935         ndr_print_NTSTATUS(ndr, "status", r->status);
936         ndr->depth--;
937 }
938
939 _PUBLIC_ size_t ndr_size_named_pipe_auth_rep(const struct named_pipe_auth_rep *r, struct smb_iconv_convenience *ic, int flags)
940 {
941         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_named_pipe_auth_rep, ic);
942 }
943