Line data Source code
1 : /* parser auto-generated by pidl */
2 :
3 : #include "includes.h"
4 : #include "bin/default/source3/librpc/gen_ndr/ndr_open_files.h"
5 :
6 : #include "librpc/gen_ndr/ndr_server_id.h"
7 : #include "librpc/gen_ndr/ndr_security.h"
8 : #include "librpc/gen_ndr/ndr_file_id.h"
9 : #include "librpc/gen_ndr/ndr_smb2_lease_struct.h"
10 : #include "librpc/gen_ndr/ndr_misc.h"
11 13460 : static enum ndr_err_code ndr_push_share_mode_entry_op_type(struct ndr_push *ndr, int ndr_flags, enum share_mode_entry_op_type r)
12 : {
13 13460 : NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
14 13460 : return NDR_ERR_SUCCESS;
15 : }
16 :
17 31501 : static enum ndr_err_code ndr_pull_share_mode_entry_op_type(struct ndr_pull *ndr, int ndr_flags, enum share_mode_entry_op_type *r)
18 : {
19 : uint16_t v;
20 31501 : NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
21 31501 : *r = v;
22 31501 : return NDR_ERR_SUCCESS;
23 : }
24 :
25 0 : _PUBLIC_ void ndr_print_share_mode_entry_op_type(struct ndr_print *ndr, const char *name, enum share_mode_entry_op_type r)
26 : {
27 0 : const char *val = NULL;
28 :
29 0 : switch (r) {
30 0 : case SHARE_MODE_ENTRY_OP_TYPE_NONE: val = "SHARE_MODE_ENTRY_OP_TYPE_NONE"; break;
31 0 : case SHARE_MODE_ENTRY_OP_TYPE_EXCLUSIVE: val = "SHARE_MODE_ENTRY_OP_TYPE_EXCLUSIVE"; break;
32 0 : case SHARE_MODE_ENTRY_OP_TYPE_BATCH_WITHOUT_EXCLUSIVE: val = "SHARE_MODE_ENTRY_OP_TYPE_BATCH_WITHOUT_EXCLUSIVE"; break;
33 0 : case SHARE_MODE_ENTRY_OP_TYPE_BATCH: val = "SHARE_MODE_ENTRY_OP_TYPE_BATCH"; break;
34 0 : case SHARE_MODE_ENTRY_OP_TYPE_LEVEL_II: val = "SHARE_MODE_ENTRY_OP_TYPE_LEVEL_II"; break;
35 0 : case SHARE_MODE_ENTRY_OP_TYPE_LEASE: val = "SHARE_MODE_ENTRY_OP_TYPE_LEASE"; break;
36 : }
37 0 : ndr_print_enum(ndr, name, "ENUM", val, r);
38 0 : }
39 :
40 13460 : _PUBLIC_ enum ndr_err_code ndr_push_share_mode_entry(struct ndr_push *ndr, int ndr_flags, const struct share_mode_entry *r)
41 : {
42 13460 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
43 13460 : if (ndr_flags & NDR_SCALARS) {
44 13460 : NDR_CHECK(ndr_push_align(ndr, 8));
45 13460 : NDR_CHECK(ndr_push_server_id(ndr, NDR_SCALARS, &r->pid));
46 13460 : NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->op_mid));
47 13460 : NDR_CHECK(ndr_push_share_mode_entry_op_type(ndr, NDR_SCALARS, r->op_type));
48 13460 : NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->client_guid));
49 13460 : NDR_CHECK(ndr_push_smb2_lease_key(ndr, NDR_SCALARS, &r->lease_key));
50 13460 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->access_mask));
51 13460 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->share_access));
52 13460 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->private_options));
53 13460 : NDR_CHECK(ndr_push_timeval(ndr, NDR_SCALARS, &r->time));
54 13460 : NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->share_file_id));
55 13460 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->uid));
56 13460 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->flags));
57 13460 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->name_hash));
58 : /* [skip] 'r->stale' */
59 13460 : NDR_CHECK(ndr_push_trailer_align(ndr, 8));
60 : }
61 13460 : if (ndr_flags & NDR_BUFFERS) {
62 13460 : NDR_CHECK(ndr_push_timeval(ndr, NDR_BUFFERS, &r->time));
63 : /* [skip] 'r->stale' */
64 : }
65 13460 : return NDR_ERR_SUCCESS;
66 : }
67 :
68 31501 : _PUBLIC_ enum ndr_err_code ndr_pull_share_mode_entry(struct ndr_pull *ndr, int ndr_flags, struct share_mode_entry *r)
69 : {
70 31501 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
71 31501 : if (ndr_flags & NDR_SCALARS) {
72 31501 : NDR_CHECK(ndr_pull_align(ndr, 8));
73 31501 : NDR_CHECK(ndr_pull_server_id(ndr, NDR_SCALARS, &r->pid));
74 31501 : NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->op_mid));
75 31501 : NDR_CHECK(ndr_pull_share_mode_entry_op_type(ndr, NDR_SCALARS, &r->op_type));
76 31501 : NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->client_guid));
77 31501 : NDR_CHECK(ndr_pull_smb2_lease_key(ndr, NDR_SCALARS, &r->lease_key));
78 31501 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->access_mask));
79 31501 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->share_access));
80 31501 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->private_options));
81 31501 : NDR_CHECK(ndr_pull_timeval(ndr, NDR_SCALARS, &r->time));
82 31501 : NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->share_file_id));
83 31501 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->uid));
84 31501 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->flags));
85 31501 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->name_hash));
86 : /* [skip] 'r->stale' */
87 31501 : NDR_ZERO_STRUCT(r->stale);
88 31501 : NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
89 : }
90 31501 : if (ndr_flags & NDR_BUFFERS) {
91 31501 : NDR_CHECK(ndr_pull_timeval(ndr, NDR_BUFFERS, &r->time));
92 : }
93 31501 : return NDR_ERR_SUCCESS;
94 : }
95 :
96 0 : static void ndr_print_flags_share_mode_entry(struct ndr_print *ndr, const char *name, int unused, const struct share_mode_entry *r)
97 : {
98 0 : ndr_print_share_mode_entry(ndr, name, r);
99 0 : }
100 :
101 0 : _PUBLIC_ void ndr_print_share_mode_entry(struct ndr_print *ndr, const char *name, const struct share_mode_entry *r)
102 : {
103 0 : ndr_print_struct(ndr, name, "share_mode_entry");
104 0 : if (r == NULL) { ndr_print_null(ndr); return; }
105 0 : ndr->depth++;
106 0 : ndr_print_server_id(ndr, "pid", &r->pid);
107 0 : ndr_print_hyper(ndr, "op_mid", r->op_mid);
108 0 : ndr_print_share_mode_entry_op_type(ndr, "op_type", r->op_type);
109 0 : ndr_print_GUID(ndr, "client_guid", &r->client_guid);
110 0 : ndr_print_smb2_lease_key(ndr, "lease_key", &r->lease_key);
111 0 : ndr_print_uint32(ndr, "access_mask", r->access_mask);
112 0 : ndr_print_uint32(ndr, "share_access", r->share_access);
113 0 : ndr_print_uint32(ndr, "private_options", r->private_options);
114 0 : ndr_print_timeval(ndr, "time", &r->time);
115 0 : ndr_print_udlong(ndr, "share_file_id", r->share_file_id);
116 0 : ndr_print_uint32(ndr, "uid", r->uid);
117 0 : ndr_print_uint16(ndr, "flags", r->flags);
118 0 : ndr_print_uint32(ndr, "name_hash", r->name_hash);
119 0 : ndr_print_uint8(ndr, "stale", r->stale);
120 0 : ndr->depth--;
121 : }
122 :
123 1606 : _PUBLIC_ enum ndr_err_code ndr_push_delete_token(struct ndr_push *ndr, int ndr_flags, const struct delete_token *r)
124 : {
125 1606 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
126 1606 : if (ndr_flags & NDR_SCALARS) {
127 803 : NDR_CHECK(ndr_push_align(ndr, 5));
128 803 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->name_hash));
129 803 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->delete_nt_token));
130 803 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->delete_token));
131 803 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
132 : }
133 1606 : if (ndr_flags & NDR_BUFFERS) {
134 803 : if (r->delete_nt_token) {
135 803 : NDR_CHECK(ndr_push_security_token(ndr, NDR_SCALARS, r->delete_nt_token));
136 : }
137 803 : if (r->delete_token) {
138 803 : NDR_CHECK(ndr_push_security_unix_token(ndr, NDR_SCALARS, r->delete_token));
139 : }
140 : }
141 1606 : return NDR_ERR_SUCCESS;
142 : }
143 :
144 22 : _PUBLIC_ enum ndr_err_code ndr_pull_delete_token(struct ndr_pull *ndr, int ndr_flags, struct delete_token *r)
145 : {
146 : uint32_t _ptr_delete_nt_token;
147 22 : TALLOC_CTX *_mem_save_delete_nt_token_0 = NULL;
148 : uint32_t _ptr_delete_token;
149 22 : TALLOC_CTX *_mem_save_delete_token_0 = NULL;
150 22 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
151 22 : if (ndr_flags & NDR_SCALARS) {
152 11 : NDR_CHECK(ndr_pull_align(ndr, 5));
153 11 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->name_hash));
154 11 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delete_nt_token));
155 11 : if (_ptr_delete_nt_token) {
156 11 : NDR_PULL_ALLOC(ndr, r->delete_nt_token);
157 : } else {
158 0 : r->delete_nt_token = NULL;
159 : }
160 11 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delete_token));
161 11 : if (_ptr_delete_token) {
162 11 : NDR_PULL_ALLOC(ndr, r->delete_token);
163 : } else {
164 0 : r->delete_token = NULL;
165 : }
166 11 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
167 : }
168 22 : if (ndr_flags & NDR_BUFFERS) {
169 11 : if (r->delete_nt_token) {
170 11 : _mem_save_delete_nt_token_0 = NDR_PULL_GET_MEM_CTX(ndr);
171 11 : NDR_PULL_SET_MEM_CTX(ndr, r->delete_nt_token, 0);
172 11 : NDR_CHECK(ndr_pull_security_token(ndr, NDR_SCALARS, r->delete_nt_token));
173 11 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delete_nt_token_0, 0);
174 : }
175 11 : if (r->delete_token) {
176 11 : _mem_save_delete_token_0 = NDR_PULL_GET_MEM_CTX(ndr);
177 11 : NDR_PULL_SET_MEM_CTX(ndr, r->delete_token, 0);
178 11 : NDR_CHECK(ndr_pull_security_unix_token(ndr, NDR_SCALARS, r->delete_token));
179 11 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delete_token_0, 0);
180 : }
181 : }
182 22 : return NDR_ERR_SUCCESS;
183 : }
184 :
185 0 : static void ndr_print_flags_delete_token(struct ndr_print *ndr, const char *name, int unused, const struct delete_token *r)
186 : {
187 0 : ndr_print_delete_token(ndr, name, r);
188 0 : }
189 :
190 0 : _PUBLIC_ void ndr_print_delete_token(struct ndr_print *ndr, const char *name, const struct delete_token *r)
191 : {
192 0 : ndr_print_struct(ndr, name, "delete_token");
193 0 : if (r == NULL) { ndr_print_null(ndr); return; }
194 0 : ndr->depth++;
195 0 : ndr_print_uint32(ndr, "name_hash", r->name_hash);
196 0 : ndr_print_ptr(ndr, "delete_nt_token", r->delete_nt_token);
197 0 : ndr->depth++;
198 0 : if (r->delete_nt_token) {
199 0 : ndr_print_security_token(ndr, "delete_nt_token", r->delete_nt_token);
200 : }
201 0 : ndr->depth--;
202 0 : ndr_print_ptr(ndr, "delete_token", r->delete_token);
203 0 : ndr->depth++;
204 0 : if (r->delete_token) {
205 0 : ndr_print_security_unix_token(ndr, "delete_token", r->delete_token);
206 : }
207 0 : ndr->depth--;
208 0 : ndr->depth--;
209 : }
210 :
211 10459 : _PUBLIC_ enum ndr_err_code ndr_push_share_mode_flags(struct ndr_push *ndr, int ndr_flags, uint16_t r)
212 : {
213 10459 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
214 10459 : return NDR_ERR_SUCCESS;
215 : }
216 :
217 3233 : _PUBLIC_ enum ndr_err_code ndr_pull_share_mode_flags(struct ndr_pull *ndr, int ndr_flags, uint16_t *r)
218 : {
219 : uint16_t v;
220 3233 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
221 3233 : *r = v;
222 3233 : return NDR_ERR_SUCCESS;
223 : }
224 :
225 0 : _PUBLIC_ void ndr_print_share_mode_flags(struct ndr_print *ndr, const char *name, uint16_t r)
226 : {
227 0 : ndr_print_uint16(ndr, name, r);
228 0 : ndr->depth++;
229 0 : ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "SHARE_MODE_SHARE_DELETE", SHARE_MODE_SHARE_DELETE, r);
230 0 : ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "SHARE_MODE_SHARE_WRITE", SHARE_MODE_SHARE_WRITE, r);
231 0 : ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "SHARE_MODE_SHARE_READ", SHARE_MODE_SHARE_READ, r);
232 0 : ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "SHARE_MODE_ACCESS_DELETE", SHARE_MODE_ACCESS_DELETE, r);
233 0 : ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "SHARE_MODE_ACCESS_WRITE", SHARE_MODE_ACCESS_WRITE, r);
234 0 : ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "SHARE_MODE_ACCESS_READ", SHARE_MODE_ACCESS_READ, r);
235 0 : ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "SHARE_MODE_LEASE_HANDLE", SHARE_MODE_LEASE_HANDLE, r);
236 0 : ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "SHARE_MODE_LEASE_WRITE", SHARE_MODE_LEASE_WRITE, r);
237 0 : ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "SHARE_MODE_LEASE_READ", SHARE_MODE_LEASE_READ, r);
238 0 : ndr->depth--;
239 0 : }
240 :
241 10459 : _PUBLIC_ enum ndr_err_code ndr_push_share_mode_data(struct ndr_push *ndr, int ndr_flags, const struct share_mode_data *r)
242 : {
243 : uint32_t cntr_delete_tokens_0;
244 10459 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
245 10459 : if (ndr_flags & NDR_SCALARS) {
246 10459 : NDR_CHECK(ndr_push_align(ndr, 8));
247 10459 : NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->unique_content_epoch));
248 10459 : NDR_CHECK(ndr_push_share_mode_flags(ndr, NDR_SCALARS, r->flags));
249 10459 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->servicepath));
250 10459 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->base_name));
251 10459 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->stream_name));
252 10459 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_delete_tokens));
253 10459 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->num_delete_tokens));
254 11262 : for (cntr_delete_tokens_0 = 0; cntr_delete_tokens_0 < (r->num_delete_tokens); cntr_delete_tokens_0++) {
255 803 : NDR_CHECK(ndr_push_delete_token(ndr, NDR_SCALARS, &r->delete_tokens[cntr_delete_tokens_0]));
256 : }
257 10459 : NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->old_write_time));
258 10459 : NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->changed_write_time));
259 : /* [skip] 'r->not_stored' */
260 : /* [skip] 'r->modified' */
261 10459 : NDR_CHECK(ndr_push_file_id(ndr, NDR_SCALARS, &r->id));
262 10459 : NDR_CHECK(ndr_push_trailer_align(ndr, 8));
263 : }
264 10459 : if (ndr_flags & NDR_BUFFERS) {
265 10459 : if (r->servicepath) {
266 10459 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servicepath, CH_UTF8)));
267 10459 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
268 10459 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servicepath, CH_UTF8)));
269 10459 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servicepath, ndr_charset_length(r->servicepath, CH_UTF8), sizeof(uint8_t), CH_UTF8));
270 : }
271 10459 : if (r->base_name) {
272 10459 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->base_name, CH_UTF8)));
273 10459 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
274 10459 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->base_name, CH_UTF8)));
275 10459 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->base_name, ndr_charset_length(r->base_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
276 : }
277 10459 : if (r->stream_name) {
278 88 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->stream_name, CH_UTF8)));
279 88 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
280 88 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->stream_name, CH_UTF8)));
281 88 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->stream_name, ndr_charset_length(r->stream_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
282 : }
283 11262 : for (cntr_delete_tokens_0 = 0; cntr_delete_tokens_0 < (r->num_delete_tokens); cntr_delete_tokens_0++) {
284 803 : NDR_CHECK(ndr_push_delete_token(ndr, NDR_BUFFERS, &r->delete_tokens[cntr_delete_tokens_0]));
285 : }
286 : /* [skip] 'r->not_stored' */
287 : /* [skip] 'r->modified' */
288 : }
289 10459 : return NDR_ERR_SUCCESS;
290 : }
291 :
292 3233 : _PUBLIC_ enum ndr_err_code ndr_pull_share_mode_data(struct ndr_pull *ndr, int ndr_flags, struct share_mode_data *r)
293 : {
294 : uint32_t _ptr_servicepath;
295 3233 : uint32_t size_servicepath_1 = 0;
296 3233 : uint32_t length_servicepath_1 = 0;
297 3233 : TALLOC_CTX *_mem_save_servicepath_0 = NULL;
298 : uint32_t _ptr_base_name;
299 3233 : uint32_t size_base_name_1 = 0;
300 3233 : uint32_t length_base_name_1 = 0;
301 3233 : TALLOC_CTX *_mem_save_base_name_0 = NULL;
302 : uint32_t _ptr_stream_name;
303 3233 : uint32_t size_stream_name_1 = 0;
304 3233 : uint32_t length_stream_name_1 = 0;
305 3233 : TALLOC_CTX *_mem_save_stream_name_0 = NULL;
306 3233 : uint32_t size_delete_tokens_0 = 0;
307 : uint32_t cntr_delete_tokens_0;
308 3233 : TALLOC_CTX *_mem_save_delete_tokens_0 = NULL;
309 3233 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
310 3233 : if (ndr_flags & NDR_SCALARS) {
311 3233 : NDR_CHECK(ndr_pull_align(ndr, 8));
312 3233 : NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->unique_content_epoch));
313 3233 : NDR_CHECK(ndr_pull_share_mode_flags(ndr, NDR_SCALARS, &r->flags));
314 3233 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servicepath));
315 3233 : if (_ptr_servicepath) {
316 3233 : NDR_PULL_ALLOC(ndr, r->servicepath);
317 : } else {
318 0 : r->servicepath = NULL;
319 : }
320 3233 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_base_name));
321 3233 : if (_ptr_base_name) {
322 3233 : NDR_PULL_ALLOC(ndr, r->base_name);
323 : } else {
324 0 : r->base_name = NULL;
325 : }
326 3233 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_stream_name));
327 3233 : if (_ptr_stream_name) {
328 24 : NDR_PULL_ALLOC(ndr, r->stream_name);
329 : } else {
330 3209 : r->stream_name = NULL;
331 : }
332 3233 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_delete_tokens));
333 3233 : NDR_CHECK(ndr_pull_array_size(ndr, &r->delete_tokens));
334 3233 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->delete_tokens, &size_delete_tokens_0));
335 3233 : NDR_PULL_ALLOC_N(ndr, r->delete_tokens, size_delete_tokens_0);
336 3233 : _mem_save_delete_tokens_0 = NDR_PULL_GET_MEM_CTX(ndr);
337 3233 : NDR_PULL_SET_MEM_CTX(ndr, r->delete_tokens, 0);
338 3244 : for (cntr_delete_tokens_0 = 0; cntr_delete_tokens_0 < (size_delete_tokens_0); cntr_delete_tokens_0++) {
339 11 : NDR_CHECK(ndr_pull_delete_token(ndr, NDR_SCALARS, &r->delete_tokens[cntr_delete_tokens_0]));
340 : }
341 3233 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delete_tokens_0, 0);
342 3233 : NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->old_write_time));
343 3233 : NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->changed_write_time));
344 : /* [skip] 'r->not_stored' */
345 3233 : NDR_ZERO_STRUCT(r->not_stored);
346 : /* [skip] 'r->modified' */
347 3233 : NDR_ZERO_STRUCT(r->modified);
348 3233 : NDR_CHECK(ndr_pull_file_id(ndr, NDR_SCALARS, &r->id));
349 3233 : if (r->delete_tokens) {
350 3233 : NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->delete_tokens, r->num_delete_tokens));
351 : }
352 3233 : NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
353 : }
354 3233 : if (ndr_flags & NDR_BUFFERS) {
355 3233 : if (r->servicepath) {
356 3233 : _mem_save_servicepath_0 = NDR_PULL_GET_MEM_CTX(ndr);
357 3233 : NDR_PULL_SET_MEM_CTX(ndr, r->servicepath, 0);
358 3233 : NDR_CHECK(ndr_pull_array_size(ndr, &r->servicepath));
359 3233 : NDR_CHECK(ndr_pull_array_length(ndr, &r->servicepath));
360 3233 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->servicepath, &size_servicepath_1));
361 3233 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->servicepath, &length_servicepath_1));
362 3233 : if (length_servicepath_1 > size_servicepath_1) {
363 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servicepath_1, length_servicepath_1);
364 : }
365 3233 : NDR_CHECK(ndr_check_string_terminator(ndr, length_servicepath_1, sizeof(uint8_t)));
366 3233 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servicepath, length_servicepath_1, sizeof(uint8_t), CH_UTF8));
367 3233 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servicepath_0, 0);
368 : }
369 3233 : if (r->base_name) {
370 3233 : _mem_save_base_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
371 3233 : NDR_PULL_SET_MEM_CTX(ndr, r->base_name, 0);
372 3233 : NDR_CHECK(ndr_pull_array_size(ndr, &r->base_name));
373 3233 : NDR_CHECK(ndr_pull_array_length(ndr, &r->base_name));
374 3233 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->base_name, &size_base_name_1));
375 3233 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->base_name, &length_base_name_1));
376 3233 : if (length_base_name_1 > size_base_name_1) {
377 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_base_name_1, length_base_name_1);
378 : }
379 3233 : NDR_CHECK(ndr_check_string_terminator(ndr, length_base_name_1, sizeof(uint8_t)));
380 3233 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->base_name, length_base_name_1, sizeof(uint8_t), CH_UTF8));
381 3233 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_base_name_0, 0);
382 : }
383 3233 : if (r->stream_name) {
384 24 : _mem_save_stream_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
385 24 : NDR_PULL_SET_MEM_CTX(ndr, r->stream_name, 0);
386 24 : NDR_CHECK(ndr_pull_array_size(ndr, &r->stream_name));
387 24 : NDR_CHECK(ndr_pull_array_length(ndr, &r->stream_name));
388 24 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->stream_name, &size_stream_name_1));
389 24 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->stream_name, &length_stream_name_1));
390 24 : if (length_stream_name_1 > size_stream_name_1) {
391 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_stream_name_1, length_stream_name_1);
392 : }
393 24 : NDR_CHECK(ndr_check_string_terminator(ndr, length_stream_name_1, sizeof(uint8_t)));
394 24 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->stream_name, length_stream_name_1, sizeof(uint8_t), CH_UTF8));
395 24 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_stream_name_0, 0);
396 : }
397 3233 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->delete_tokens, &size_delete_tokens_0));
398 3233 : _mem_save_delete_tokens_0 = NDR_PULL_GET_MEM_CTX(ndr);
399 3233 : NDR_PULL_SET_MEM_CTX(ndr, r->delete_tokens, 0);
400 3244 : for (cntr_delete_tokens_0 = 0; cntr_delete_tokens_0 < (size_delete_tokens_0); cntr_delete_tokens_0++) {
401 11 : NDR_CHECK(ndr_pull_delete_token(ndr, NDR_BUFFERS, &r->delete_tokens[cntr_delete_tokens_0]));
402 : }
403 3233 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delete_tokens_0, 0);
404 3244 : for (cntr_delete_tokens_0 = 0; cntr_delete_tokens_0 < (size_delete_tokens_0); cntr_delete_tokens_0++) {
405 : }
406 : }
407 3233 : return NDR_ERR_SUCCESS;
408 : }
409 :
410 0 : static void ndr_print_flags_share_mode_data(struct ndr_print *ndr, const char *name, int unused, const struct share_mode_data *r)
411 : {
412 0 : ndr_print_share_mode_data(ndr, name, r);
413 0 : }
414 :
415 0 : _PUBLIC_ void ndr_print_share_mode_data(struct ndr_print *ndr, const char *name, const struct share_mode_data *r)
416 : {
417 : uint32_t cntr_delete_tokens_0;
418 0 : ndr_print_struct(ndr, name, "share_mode_data");
419 0 : if (r == NULL) { ndr_print_null(ndr); return; }
420 0 : ndr->depth++;
421 0 : ndr_print_hyper(ndr, "unique_content_epoch", r->unique_content_epoch);
422 0 : ndr_print_share_mode_flags(ndr, "flags", r->flags);
423 0 : ndr_print_ptr(ndr, "servicepath", r->servicepath);
424 0 : ndr->depth++;
425 0 : if (r->servicepath) {
426 0 : ndr_print_string(ndr, "servicepath", r->servicepath);
427 : }
428 0 : ndr->depth--;
429 0 : ndr_print_ptr(ndr, "base_name", r->base_name);
430 0 : ndr->depth++;
431 0 : if (r->base_name) {
432 0 : ndr_print_string(ndr, "base_name", r->base_name);
433 : }
434 0 : ndr->depth--;
435 0 : ndr_print_ptr(ndr, "stream_name", r->stream_name);
436 0 : ndr->depth++;
437 0 : if (r->stream_name) {
438 0 : ndr_print_string(ndr, "stream_name", r->stream_name);
439 : }
440 0 : ndr->depth--;
441 0 : ndr_print_uint32(ndr, "num_delete_tokens", r->num_delete_tokens);
442 0 : ndr->print(ndr, "%s: ARRAY(%d)", "delete_tokens", (int)r->num_delete_tokens);
443 0 : ndr->depth++;
444 0 : for (cntr_delete_tokens_0 = 0; cntr_delete_tokens_0 < (r->num_delete_tokens); cntr_delete_tokens_0++) {
445 0 : ndr_print_delete_token(ndr, "delete_tokens", &r->delete_tokens[cntr_delete_tokens_0]);
446 : }
447 0 : ndr->depth--;
448 0 : ndr_print_NTTIME(ndr, "old_write_time", r->old_write_time);
449 0 : ndr_print_NTTIME(ndr, "changed_write_time", r->changed_write_time);
450 0 : ndr_print_uint8(ndr, "not_stored", r->not_stored);
451 0 : ndr_print_uint8(ndr, "modified", r->modified);
452 0 : ndr_print_file_id(ndr, "id", &r->id);
453 0 : ndr->depth--;
454 : }
455 :
456 0 : static enum ndr_err_code ndr_push_vfs_default_durable_stat(struct ndr_push *ndr, int ndr_flags, const struct vfs_default_durable_stat *r)
457 : {
458 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
459 0 : if (ndr_flags & NDR_SCALARS) {
460 0 : NDR_CHECK(ndr_push_align(ndr, 8));
461 0 : NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->st_ex_dev));
462 0 : NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->st_ex_ino));
463 0 : NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->st_ex_mode));
464 0 : NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->st_ex_nlink));
465 0 : NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->st_ex_uid));
466 0 : NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->st_ex_gid));
467 0 : NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->st_ex_rdev));
468 0 : NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->st_ex_size));
469 0 : NDR_CHECK(ndr_push_timespec(ndr, NDR_SCALARS, &r->st_ex_atime));
470 0 : NDR_CHECK(ndr_push_timespec(ndr, NDR_SCALARS, &r->st_ex_mtime));
471 0 : NDR_CHECK(ndr_push_timespec(ndr, NDR_SCALARS, &r->st_ex_ctime));
472 0 : NDR_CHECK(ndr_push_timespec(ndr, NDR_SCALARS, &r->st_ex_btime));
473 0 : NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->st_ex_blksize));
474 0 : NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->st_ex_blocks));
475 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->st_ex_flags));
476 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->st_ex_iflags));
477 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 8));
478 : }
479 0 : if (ndr_flags & NDR_BUFFERS) {
480 0 : NDR_CHECK(ndr_push_timespec(ndr, NDR_BUFFERS, &r->st_ex_atime));
481 0 : NDR_CHECK(ndr_push_timespec(ndr, NDR_BUFFERS, &r->st_ex_mtime));
482 0 : NDR_CHECK(ndr_push_timespec(ndr, NDR_BUFFERS, &r->st_ex_ctime));
483 0 : NDR_CHECK(ndr_push_timespec(ndr, NDR_BUFFERS, &r->st_ex_btime));
484 : }
485 0 : return NDR_ERR_SUCCESS;
486 : }
487 :
488 0 : static enum ndr_err_code ndr_pull_vfs_default_durable_stat(struct ndr_pull *ndr, int ndr_flags, struct vfs_default_durable_stat *r)
489 : {
490 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
491 0 : if (ndr_flags & NDR_SCALARS) {
492 0 : NDR_CHECK(ndr_pull_align(ndr, 8));
493 0 : NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->st_ex_dev));
494 0 : NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->st_ex_ino));
495 0 : NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->st_ex_mode));
496 0 : NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->st_ex_nlink));
497 0 : NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->st_ex_uid));
498 0 : NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->st_ex_gid));
499 0 : NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->st_ex_rdev));
500 0 : NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->st_ex_size));
501 0 : NDR_CHECK(ndr_pull_timespec(ndr, NDR_SCALARS, &r->st_ex_atime));
502 0 : NDR_CHECK(ndr_pull_timespec(ndr, NDR_SCALARS, &r->st_ex_mtime));
503 0 : NDR_CHECK(ndr_pull_timespec(ndr, NDR_SCALARS, &r->st_ex_ctime));
504 0 : NDR_CHECK(ndr_pull_timespec(ndr, NDR_SCALARS, &r->st_ex_btime));
505 0 : NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->st_ex_blksize));
506 0 : NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->st_ex_blocks));
507 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->st_ex_flags));
508 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->st_ex_iflags));
509 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
510 : }
511 0 : if (ndr_flags & NDR_BUFFERS) {
512 0 : NDR_CHECK(ndr_pull_timespec(ndr, NDR_BUFFERS, &r->st_ex_atime));
513 0 : NDR_CHECK(ndr_pull_timespec(ndr, NDR_BUFFERS, &r->st_ex_mtime));
514 0 : NDR_CHECK(ndr_pull_timespec(ndr, NDR_BUFFERS, &r->st_ex_ctime));
515 0 : NDR_CHECK(ndr_pull_timespec(ndr, NDR_BUFFERS, &r->st_ex_btime));
516 : }
517 0 : return NDR_ERR_SUCCESS;
518 : }
519 :
520 0 : _PUBLIC_ void ndr_print_vfs_default_durable_stat(struct ndr_print *ndr, const char *name, const struct vfs_default_durable_stat *r)
521 : {
522 0 : ndr_print_struct(ndr, name, "vfs_default_durable_stat");
523 0 : if (r == NULL) { ndr_print_null(ndr); return; }
524 0 : ndr->depth++;
525 0 : ndr_print_hyper(ndr, "st_ex_dev", r->st_ex_dev);
526 0 : ndr_print_hyper(ndr, "st_ex_ino", r->st_ex_ino);
527 0 : ndr_print_hyper(ndr, "st_ex_mode", r->st_ex_mode);
528 0 : ndr_print_hyper(ndr, "st_ex_nlink", r->st_ex_nlink);
529 0 : ndr_print_hyper(ndr, "st_ex_uid", r->st_ex_uid);
530 0 : ndr_print_hyper(ndr, "st_ex_gid", r->st_ex_gid);
531 0 : ndr_print_hyper(ndr, "st_ex_rdev", r->st_ex_rdev);
532 0 : ndr_print_hyper(ndr, "st_ex_size", r->st_ex_size);
533 0 : ndr_print_timespec(ndr, "st_ex_atime", &r->st_ex_atime);
534 0 : ndr_print_timespec(ndr, "st_ex_mtime", &r->st_ex_mtime);
535 0 : ndr_print_timespec(ndr, "st_ex_ctime", &r->st_ex_ctime);
536 0 : ndr_print_timespec(ndr, "st_ex_btime", &r->st_ex_btime);
537 0 : ndr_print_hyper(ndr, "st_ex_blksize", r->st_ex_blksize);
538 0 : ndr_print_hyper(ndr, "st_ex_blocks", r->st_ex_blocks);
539 0 : ndr_print_uint32(ndr, "st_ex_flags", r->st_ex_flags);
540 0 : ndr_print_uint32(ndr, "st_ex_iflags", r->st_ex_iflags);
541 0 : ndr->depth--;
542 : }
543 :
544 0 : _PUBLIC_ enum ndr_err_code ndr_push_vfs_default_durable_cookie(struct ndr_push *ndr, int ndr_flags, const struct vfs_default_durable_cookie *r)
545 : {
546 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
547 0 : if (ndr_flags & NDR_SCALARS) {
548 0 : NDR_CHECK(ndr_push_align(ndr, 8));
549 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, VFS_DEFAULT_DURABLE_COOKIE_MAGIC, 0x30, sizeof(uint8_t), CH_DOS));
550 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, VFS_DEFAULT_DURABLE_COOKIE_VERSION));
551 0 : NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->allow_reconnect));
552 0 : NDR_CHECK(ndr_push_file_id(ndr, NDR_SCALARS, &r->id));
553 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->servicepath));
554 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->base_name));
555 0 : NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->initial_allocation_size));
556 0 : NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->position_information));
557 0 : NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->update_write_time_triggered));
558 0 : NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->update_write_time_on_close));
559 0 : NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->write_time_forced));
560 0 : NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->close_write_time));
561 0 : NDR_CHECK(ndr_push_vfs_default_durable_stat(ndr, NDR_SCALARS, &r->stat_info));
562 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 8));
563 : }
564 0 : if (ndr_flags & NDR_BUFFERS) {
565 0 : if (r->servicepath) {
566 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servicepath, CH_UTF8)));
567 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
568 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servicepath, CH_UTF8)));
569 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servicepath, ndr_charset_length(r->servicepath, CH_UTF8), sizeof(uint8_t), CH_UTF8));
570 : }
571 0 : if (r->base_name) {
572 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->base_name, CH_UTF8)));
573 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
574 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->base_name, CH_UTF8)));
575 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->base_name, ndr_charset_length(r->base_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
576 : }
577 0 : NDR_CHECK(ndr_push_vfs_default_durable_stat(ndr, NDR_BUFFERS, &r->stat_info));
578 : }
579 0 : return NDR_ERR_SUCCESS;
580 : }
581 :
582 0 : _PUBLIC_ enum ndr_err_code ndr_pull_vfs_default_durable_cookie(struct ndr_pull *ndr, int ndr_flags, struct vfs_default_durable_cookie *r)
583 : {
584 0 : uint32_t size_magic_0 = 0;
585 : uint32_t _ptr_servicepath;
586 0 : uint32_t size_servicepath_1 = 0;
587 0 : uint32_t length_servicepath_1 = 0;
588 0 : TALLOC_CTX *_mem_save_servicepath_0 = NULL;
589 : uint32_t _ptr_base_name;
590 0 : uint32_t size_base_name_1 = 0;
591 0 : uint32_t length_base_name_1 = 0;
592 0 : TALLOC_CTX *_mem_save_base_name_0 = NULL;
593 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
594 0 : if (ndr_flags & NDR_SCALARS) {
595 0 : NDR_CHECK(ndr_pull_align(ndr, 8));
596 0 : size_magic_0 = 0x30;
597 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->magic, size_magic_0, sizeof(uint8_t), CH_DOS));
598 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
599 0 : NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->allow_reconnect));
600 0 : NDR_CHECK(ndr_pull_file_id(ndr, NDR_SCALARS, &r->id));
601 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servicepath));
602 0 : if (_ptr_servicepath) {
603 0 : NDR_PULL_ALLOC(ndr, r->servicepath);
604 : } else {
605 0 : r->servicepath = NULL;
606 : }
607 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_base_name));
608 0 : if (_ptr_base_name) {
609 0 : NDR_PULL_ALLOC(ndr, r->base_name);
610 : } else {
611 0 : r->base_name = NULL;
612 : }
613 0 : NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->initial_allocation_size));
614 0 : NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->position_information));
615 0 : NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->update_write_time_triggered));
616 0 : NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->update_write_time_on_close));
617 0 : NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->write_time_forced));
618 0 : NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->close_write_time));
619 0 : NDR_CHECK(ndr_pull_vfs_default_durable_stat(ndr, NDR_SCALARS, &r->stat_info));
620 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
621 : }
622 0 : if (ndr_flags & NDR_BUFFERS) {
623 0 : if (r->servicepath) {
624 0 : _mem_save_servicepath_0 = NDR_PULL_GET_MEM_CTX(ndr);
625 0 : NDR_PULL_SET_MEM_CTX(ndr, r->servicepath, 0);
626 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->servicepath));
627 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->servicepath));
628 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->servicepath, &size_servicepath_1));
629 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->servicepath, &length_servicepath_1));
630 0 : if (length_servicepath_1 > size_servicepath_1) {
631 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servicepath_1, length_servicepath_1);
632 : }
633 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_servicepath_1, sizeof(uint8_t)));
634 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servicepath, length_servicepath_1, sizeof(uint8_t), CH_UTF8));
635 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servicepath_0, 0);
636 : }
637 0 : if (r->base_name) {
638 0 : _mem_save_base_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
639 0 : NDR_PULL_SET_MEM_CTX(ndr, r->base_name, 0);
640 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->base_name));
641 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->base_name));
642 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->base_name, &size_base_name_1));
643 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->base_name, &length_base_name_1));
644 0 : if (length_base_name_1 > size_base_name_1) {
645 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_base_name_1, length_base_name_1);
646 : }
647 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_base_name_1, sizeof(uint8_t)));
648 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->base_name, length_base_name_1, sizeof(uint8_t), CH_UTF8));
649 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_base_name_0, 0);
650 : }
651 0 : NDR_CHECK(ndr_pull_vfs_default_durable_stat(ndr, NDR_BUFFERS, &r->stat_info));
652 : }
653 0 : return NDR_ERR_SUCCESS;
654 : }
655 :
656 0 : static void ndr_print_flags_vfs_default_durable_cookie(struct ndr_print *ndr, const char *name, int unused, const struct vfs_default_durable_cookie *r)
657 : {
658 0 : ndr_print_vfs_default_durable_cookie(ndr, name, r);
659 0 : }
660 :
661 0 : _PUBLIC_ void ndr_print_vfs_default_durable_cookie(struct ndr_print *ndr, const char *name, const struct vfs_default_durable_cookie *r)
662 : {
663 0 : ndr_print_struct(ndr, name, "vfs_default_durable_cookie");
664 0 : if (r == NULL) { ndr_print_null(ndr); return; }
665 0 : ndr->depth++;
666 0 : ndr_print_string(ndr, "magic", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?VFS_DEFAULT_DURABLE_COOKIE_MAGIC:r->magic);
667 0 : ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?VFS_DEFAULT_DURABLE_COOKIE_VERSION:r->version);
668 0 : ndr_print_uint8(ndr, "allow_reconnect", r->allow_reconnect);
669 0 : ndr_print_file_id(ndr, "id", &r->id);
670 0 : ndr_print_ptr(ndr, "servicepath", r->servicepath);
671 0 : ndr->depth++;
672 0 : if (r->servicepath) {
673 0 : ndr_print_string(ndr, "servicepath", r->servicepath);
674 : }
675 0 : ndr->depth--;
676 0 : ndr_print_ptr(ndr, "base_name", r->base_name);
677 0 : ndr->depth++;
678 0 : if (r->base_name) {
679 0 : ndr_print_string(ndr, "base_name", r->base_name);
680 : }
681 0 : ndr->depth--;
682 0 : ndr_print_hyper(ndr, "initial_allocation_size", r->initial_allocation_size);
683 0 : ndr_print_hyper(ndr, "position_information", r->position_information);
684 0 : ndr_print_uint8(ndr, "update_write_time_triggered", r->update_write_time_triggered);
685 0 : ndr_print_uint8(ndr, "update_write_time_on_close", r->update_write_time_on_close);
686 0 : ndr_print_uint8(ndr, "write_time_forced", r->write_time_forced);
687 0 : ndr_print_NTTIME(ndr, "close_write_time", r->close_write_time);
688 0 : ndr_print_vfs_default_durable_stat(ndr, "stat_info", &r->stat_info);
689 0 : ndr->depth--;
690 : }
691 :
692 0 : _PUBLIC_ enum ndr_err_code ndr_push_oplock_break_message(struct ndr_push *ndr, int ndr_flags, const struct oplock_break_message *r)
693 : {
694 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
695 0 : if (ndr_flags & NDR_SCALARS) {
696 0 : NDR_CHECK(ndr_push_align(ndr, 4));
697 0 : NDR_CHECK(ndr_push_file_id(ndr, NDR_SCALARS, &r->id));
698 0 : NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->share_file_id));
699 0 : NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->break_to));
700 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
701 : }
702 0 : if (ndr_flags & NDR_BUFFERS) {
703 : }
704 0 : return NDR_ERR_SUCCESS;
705 : }
706 :
707 0 : _PUBLIC_ enum ndr_err_code ndr_pull_oplock_break_message(struct ndr_pull *ndr, int ndr_flags, struct oplock_break_message *r)
708 : {
709 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
710 0 : if (ndr_flags & NDR_SCALARS) {
711 0 : NDR_CHECK(ndr_pull_align(ndr, 4));
712 0 : NDR_CHECK(ndr_pull_file_id(ndr, NDR_SCALARS, &r->id));
713 0 : NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->share_file_id));
714 0 : NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->break_to));
715 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
716 : }
717 0 : if (ndr_flags & NDR_BUFFERS) {
718 : }
719 0 : return NDR_ERR_SUCCESS;
720 : }
721 :
722 0 : static void ndr_print_flags_oplock_break_message(struct ndr_print *ndr, const char *name, int unused, const struct oplock_break_message *r)
723 : {
724 0 : ndr_print_oplock_break_message(ndr, name, r);
725 0 : }
726 :
727 0 : _PUBLIC_ void ndr_print_oplock_break_message(struct ndr_print *ndr, const char *name, const struct oplock_break_message *r)
728 : {
729 0 : ndr_print_struct(ndr, name, "oplock_break_message");
730 0 : if (r == NULL) { ndr_print_null(ndr); return; }
731 0 : ndr->depth++;
732 0 : ndr_print_file_id(ndr, "id", &r->id);
733 0 : ndr_print_udlong(ndr, "share_file_id", r->share_file_id);
734 0 : ndr_print_uint8(ndr, "break_to", r->break_to);
735 0 : ndr->depth--;
736 : }
737 :
738 0 : _PUBLIC_ enum ndr_err_code ndr_push_file_rename_message(struct ndr_push *ndr, int ndr_flags, const struct file_rename_message *r)
739 : {
740 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
741 0 : if (ndr_flags & NDR_SCALARS) {
742 0 : NDR_CHECK(ndr_push_align(ndr, 5));
743 0 : NDR_CHECK(ndr_push_file_id(ndr, NDR_SCALARS, &r->id));
744 0 : NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->share_file_id));
745 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->servicepath));
746 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->base_name));
747 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->stream_name));
748 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
749 : }
750 0 : if (ndr_flags & NDR_BUFFERS) {
751 0 : if (r->servicepath) {
752 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servicepath, CH_UTF8)));
753 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
754 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servicepath, CH_UTF8)));
755 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servicepath, ndr_charset_length(r->servicepath, CH_UTF8), sizeof(uint8_t), CH_UTF8));
756 : }
757 0 : if (r->base_name) {
758 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->base_name, CH_UTF8)));
759 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
760 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->base_name, CH_UTF8)));
761 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->base_name, ndr_charset_length(r->base_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
762 : }
763 0 : if (r->stream_name) {
764 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->stream_name, CH_UTF8)));
765 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
766 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->stream_name, CH_UTF8)));
767 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->stream_name, ndr_charset_length(r->stream_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
768 : }
769 : }
770 0 : return NDR_ERR_SUCCESS;
771 : }
772 :
773 0 : _PUBLIC_ enum ndr_err_code ndr_pull_file_rename_message(struct ndr_pull *ndr, int ndr_flags, struct file_rename_message *r)
774 : {
775 : uint32_t _ptr_servicepath;
776 0 : uint32_t size_servicepath_1 = 0;
777 0 : uint32_t length_servicepath_1 = 0;
778 0 : TALLOC_CTX *_mem_save_servicepath_0 = NULL;
779 : uint32_t _ptr_base_name;
780 0 : uint32_t size_base_name_1 = 0;
781 0 : uint32_t length_base_name_1 = 0;
782 0 : TALLOC_CTX *_mem_save_base_name_0 = NULL;
783 : uint32_t _ptr_stream_name;
784 0 : uint32_t size_stream_name_1 = 0;
785 0 : uint32_t length_stream_name_1 = 0;
786 0 : TALLOC_CTX *_mem_save_stream_name_0 = NULL;
787 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
788 0 : if (ndr_flags & NDR_SCALARS) {
789 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
790 0 : NDR_CHECK(ndr_pull_file_id(ndr, NDR_SCALARS, &r->id));
791 0 : NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->share_file_id));
792 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servicepath));
793 0 : if (_ptr_servicepath) {
794 0 : NDR_PULL_ALLOC(ndr, r->servicepath);
795 : } else {
796 0 : r->servicepath = NULL;
797 : }
798 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_base_name));
799 0 : if (_ptr_base_name) {
800 0 : NDR_PULL_ALLOC(ndr, r->base_name);
801 : } else {
802 0 : r->base_name = NULL;
803 : }
804 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_stream_name));
805 0 : if (_ptr_stream_name) {
806 0 : NDR_PULL_ALLOC(ndr, r->stream_name);
807 : } else {
808 0 : r->stream_name = NULL;
809 : }
810 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
811 : }
812 0 : if (ndr_flags & NDR_BUFFERS) {
813 0 : if (r->servicepath) {
814 0 : _mem_save_servicepath_0 = NDR_PULL_GET_MEM_CTX(ndr);
815 0 : NDR_PULL_SET_MEM_CTX(ndr, r->servicepath, 0);
816 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->servicepath));
817 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->servicepath));
818 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->servicepath, &size_servicepath_1));
819 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->servicepath, &length_servicepath_1));
820 0 : if (length_servicepath_1 > size_servicepath_1) {
821 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servicepath_1, length_servicepath_1);
822 : }
823 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_servicepath_1, sizeof(uint8_t)));
824 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servicepath, length_servicepath_1, sizeof(uint8_t), CH_UTF8));
825 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servicepath_0, 0);
826 : }
827 0 : if (r->base_name) {
828 0 : _mem_save_base_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
829 0 : NDR_PULL_SET_MEM_CTX(ndr, r->base_name, 0);
830 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->base_name));
831 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->base_name));
832 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->base_name, &size_base_name_1));
833 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->base_name, &length_base_name_1));
834 0 : if (length_base_name_1 > size_base_name_1) {
835 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_base_name_1, length_base_name_1);
836 : }
837 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_base_name_1, sizeof(uint8_t)));
838 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->base_name, length_base_name_1, sizeof(uint8_t), CH_UTF8));
839 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_base_name_0, 0);
840 : }
841 0 : if (r->stream_name) {
842 0 : _mem_save_stream_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
843 0 : NDR_PULL_SET_MEM_CTX(ndr, r->stream_name, 0);
844 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->stream_name));
845 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->stream_name));
846 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->stream_name, &size_stream_name_1));
847 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->stream_name, &length_stream_name_1));
848 0 : if (length_stream_name_1 > size_stream_name_1) {
849 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_stream_name_1, length_stream_name_1);
850 : }
851 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_stream_name_1, sizeof(uint8_t)));
852 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->stream_name, length_stream_name_1, sizeof(uint8_t), CH_UTF8));
853 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_stream_name_0, 0);
854 : }
855 : }
856 0 : return NDR_ERR_SUCCESS;
857 : }
858 :
859 0 : static void ndr_print_flags_file_rename_message(struct ndr_print *ndr, const char *name, int unused, const struct file_rename_message *r)
860 : {
861 0 : ndr_print_file_rename_message(ndr, name, r);
862 0 : }
863 :
864 0 : _PUBLIC_ void ndr_print_file_rename_message(struct ndr_print *ndr, const char *name, const struct file_rename_message *r)
865 : {
866 0 : ndr_print_struct(ndr, name, "file_rename_message");
867 0 : if (r == NULL) { ndr_print_null(ndr); return; }
868 0 : ndr->depth++;
869 0 : ndr_print_file_id(ndr, "id", &r->id);
870 0 : ndr_print_udlong(ndr, "share_file_id", r->share_file_id);
871 0 : ndr_print_ptr(ndr, "servicepath", r->servicepath);
872 0 : ndr->depth++;
873 0 : if (r->servicepath) {
874 0 : ndr_print_string(ndr, "servicepath", r->servicepath);
875 : }
876 0 : ndr->depth--;
877 0 : ndr_print_ptr(ndr, "base_name", r->base_name);
878 0 : ndr->depth++;
879 0 : if (r->base_name) {
880 0 : ndr_print_string(ndr, "base_name", r->base_name);
881 : }
882 0 : ndr->depth--;
883 0 : ndr_print_ptr(ndr, "stream_name", r->stream_name);
884 0 : ndr->depth++;
885 0 : if (r->stream_name) {
886 0 : ndr_print_string(ndr, "stream_name", r->stream_name);
887 : }
888 0 : ndr->depth--;
889 0 : ndr->depth--;
890 : }
891 :
892 : #ifndef SKIP_NDR_TABLE_open_files
893 : static const struct ndr_interface_public_struct open_files_public_structs[] = {
894 : {
895 : .name = "share_mode_entry",
896 : .struct_size = sizeof(struct share_mode_entry ),
897 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_share_mode_entry,
898 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_share_mode_entry,
899 : .ndr_print = (ndr_print_function_t) ndr_print_flags_share_mode_entry,
900 : },
901 : {
902 : .name = "delete_token",
903 : .struct_size = sizeof(struct delete_token ),
904 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_delete_token,
905 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_delete_token,
906 : .ndr_print = (ndr_print_function_t) ndr_print_flags_delete_token,
907 : },
908 : {
909 : .name = "share_mode_data",
910 : .struct_size = sizeof(struct share_mode_data ),
911 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_share_mode_data,
912 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_share_mode_data,
913 : .ndr_print = (ndr_print_function_t) ndr_print_flags_share_mode_data,
914 : },
915 : {
916 : .name = "vfs_default_durable_cookie",
917 : .struct_size = sizeof(struct vfs_default_durable_cookie ),
918 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_vfs_default_durable_cookie,
919 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_vfs_default_durable_cookie,
920 : .ndr_print = (ndr_print_function_t) ndr_print_flags_vfs_default_durable_cookie,
921 : },
922 : {
923 : .name = "oplock_break_message",
924 : .struct_size = sizeof(struct oplock_break_message ),
925 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_oplock_break_message,
926 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_oplock_break_message,
927 : .ndr_print = (ndr_print_function_t) ndr_print_flags_oplock_break_message,
928 : },
929 : {
930 : .name = "file_rename_message",
931 : .struct_size = sizeof(struct file_rename_message ),
932 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_file_rename_message,
933 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_file_rename_message,
934 : .ndr_print = (ndr_print_function_t) ndr_print_flags_file_rename_message,
935 : },
936 : { .name = NULL }
937 : };
938 :
939 : static const struct ndr_interface_call open_files_calls[] = {
940 : { .name = NULL }
941 : };
942 :
943 : static const char * const open_files_endpoint_strings[] = {
944 : "ncacn_np:[\\pipe\\open_files]",
945 : };
946 :
947 : static const struct ndr_interface_string_array open_files_endpoints = {
948 : .count = 1,
949 : .names = open_files_endpoint_strings
950 : };
951 :
952 : static const char * const open_files_authservice_strings[] = {
953 : "host",
954 : };
955 :
956 : static const struct ndr_interface_string_array open_files_authservices = {
957 : .count = 1,
958 : .names = open_files_authservice_strings
959 : };
960 :
961 :
962 : const struct ndr_interface_table ndr_table_open_files = {
963 : .name = "open_files",
964 : .num_calls = 0,
965 : .calls = open_files_calls,
966 : .num_public_structs = 6,
967 : .public_structs = open_files_public_structs,
968 : .endpoints = &open_files_endpoints,
969 : .authservices = &open_files_authservices
970 : };
971 :
972 : #endif /* SKIP_NDR_TABLE_open_files */
|