source: vendor/current/librpc/gen_ndr/ndr_named_pipe_auth.c@ 414

Last change on this file since 414 was 414, checked in by Herwig Bauernfeind, 15 years ago

Samba 3.5.0: Initial import

File size: 36.2 KB
Line 
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"
7static 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
58static 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
231static 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
288static 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
488static 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
539static 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
681static 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
695static 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
719static 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
733static 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
757static 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
804static 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
Note: See TracBrowser for help on using the repository browser.