2 * Unix SMB/CIFS implementation.
3 * RPC Pipe client / server routines
4 * Copyright (C) Andrew Tridgell 1992-1997,
5 * Copyright (C) Luke Kenneth Casson Leighton 1996-1997,
6 * Copyright (C) Paul Ashton 1997,
7 * Copyright (C) Jeremy Allison 1999,
8 * Copyright (C) Nigel Williams 2001,
9 * Copyright (C) Jim McDonough (jmcd@us.ibm.com) 2002.
11 * This program is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License as published by
13 * the Free Software Foundation; either version 2 of the License, or
14 * (at your option) any later version.
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
21 * You should have received a copy of the GNU General Public License
22 * along with this program; if not, write to the Free Software
23 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
29 #define DBGC_CLASS DBGC_RPC_PARSE
31 /*******************************************************************
32 Inits a SH_INFO_0_STR structure
33 ********************************************************************/
35 void init_srv_share_info0_str(SH_INFO_0_STR
*sh0
, const char *net_name
)
37 DEBUG(5,("init_srv_share_info0_str\n"));
39 init_unistr2(&sh0
->uni_netname
, net_name
, UNI_STR_TERMINATE
);
42 /*******************************************************************
43 Reads or writes a structure.
44 ********************************************************************/
46 static BOOL
srv_io_share_info0_str(const char *desc
, SH_INFO_0_STR
*sh0
, prs_struct
*ps
, int depth
)
51 prs_debug(ps
, depth
, desc
, "srv_io_share_info0_str");
56 if(sh0
->ptrs
->ptr_netname
)
57 if(!smb_io_unistr2("", &sh0
->uni_netname
, True
, ps
, depth
))
63 /*******************************************************************
64 makes a SH_INFO_0 structure
65 ********************************************************************/
67 void init_srv_share_info0(SH_INFO_0
*sh0
, const char *net_name
)
69 DEBUG(5,("init_srv_share_info0: %s\n", net_name
));
71 sh0
->ptr_netname
= (net_name
!= NULL
) ? 1 : 0;
74 /*******************************************************************
75 Reads or writes a structure.
76 ********************************************************************/
78 static BOOL
srv_io_share_info0(const char *desc
, SH_INFO_0
*sh0
, prs_struct
*ps
, int depth
)
83 prs_debug(ps
, depth
, desc
, "srv_io_share_info0");
89 if(!prs_uint32("ptr_netname", ps
, depth
, &sh0
->ptr_netname
))
95 /*******************************************************************
96 Inits a SH_INFO_1_STR structure
97 ********************************************************************/
99 void init_srv_share_info1_str(SH_INFO_1_STR
*sh1
, const char *net_name
, const char *remark
)
101 DEBUG(5,("init_srv_share_info1_str\n"));
103 init_unistr2(&sh1
->uni_netname
, net_name
, UNI_STR_TERMINATE
);
104 init_unistr2(&sh1
->uni_remark
, remark
, UNI_STR_TERMINATE
);
107 /*******************************************************************
108 Reads or writes a structure.
109 ********************************************************************/
111 static BOOL
srv_io_share_info1_str(const char *desc
, SH_INFO_1_STR
*sh1
, prs_struct
*ps
, int depth
)
116 prs_debug(ps
, depth
, desc
, "srv_io_share_info1_str");
122 if(sh1
->ptrs
->ptr_netname
)
123 if(!smb_io_unistr2("", &sh1
->uni_netname
, True
, ps
, depth
))
129 if(sh1
->ptrs
->ptr_remark
)
130 if(!smb_io_unistr2("", &sh1
->uni_remark
, True
, ps
, depth
))
136 /*******************************************************************
137 makes a SH_INFO_1 structure
138 ********************************************************************/
140 void init_srv_share_info1(SH_INFO_1
*sh1
, const char *net_name
, uint32 type
, const char *remark
)
142 DEBUG(5,("init_srv_share_info1: %s %8x %s\n", net_name
, type
, remark
));
144 sh1
->ptr_netname
= (net_name
!= NULL
) ? 1 : 0;
146 sh1
->ptr_remark
= (remark
!= NULL
) ? 1 : 0;
149 /*******************************************************************
150 Reads or writes a structure.
151 ********************************************************************/
153 static BOOL
srv_io_share_info1(const char *desc
, SH_INFO_1
*sh1
, prs_struct
*ps
, int depth
)
158 prs_debug(ps
, depth
, desc
, "srv_io_share_info1");
164 if(!prs_uint32("ptr_netname", ps
, depth
, &sh1
->ptr_netname
))
166 if(!prs_uint32("type ", ps
, depth
, &sh1
->type
))
168 if(!prs_uint32("ptr_remark ", ps
, depth
, &sh1
->ptr_remark
))
174 /*******************************************************************
175 Inits a SH_INFO_2_STR structure
176 ********************************************************************/
178 void init_srv_share_info2_str(SH_INFO_2_STR
*sh2
,
179 const char *net_name
, const char *remark
,
180 const char *path
, const char *passwd
)
182 DEBUG(5,("init_srv_share_info2_str\n"));
184 init_unistr2(&sh2
->uni_netname
, net_name
, UNI_STR_TERMINATE
);
185 init_unistr2(&sh2
->uni_remark
, remark
, UNI_STR_TERMINATE
);
186 init_unistr2(&sh2
->uni_path
, path
, UNI_STR_TERMINATE
);
187 init_unistr2(&sh2
->uni_passwd
, passwd
, UNI_STR_TERMINATE
);
190 /*******************************************************************
191 Reads or writes a structure.
192 ********************************************************************/
194 static BOOL
srv_io_share_info2_str(const char *desc
, SH_INFO_2
*sh
, SH_INFO_2_STR
*sh2
, prs_struct
*ps
, int depth
)
199 if (UNMARSHALLING(ps
))
202 prs_debug(ps
, depth
, desc
, "srv_io_share_info2_str");
209 if(!smb_io_unistr2("", &sh2
->uni_netname
, True
, ps
, depth
))
213 if(!smb_io_unistr2("", &sh2
->uni_remark
, True
, ps
, depth
))
217 if(!smb_io_unistr2("", &sh2
->uni_path
, True
, ps
, depth
))
221 if(!smb_io_unistr2("", &sh2
->uni_passwd
, True
, ps
, depth
))
227 /*******************************************************************
228 Inits a SH_INFO_2 structure
229 ********************************************************************/
231 void init_srv_share_info2(SH_INFO_2
*sh2
,
232 const char *net_name
, uint32 type
, const char *remark
,
233 uint32 perms
, uint32 max_uses
, uint32 num_uses
,
234 const char *path
, const char *passwd
)
236 DEBUG(5,("init_srv_share_info2: %s %8x %s\n", net_name
, type
, remark
));
238 sh2
->ptr_netname
= (net_name
!= NULL
) ? 1 : 0;
240 sh2
->ptr_remark
= (remark
!= NULL
) ? 1 : 0;
242 sh2
->max_uses
= max_uses
;
243 sh2
->num_uses
= num_uses
;
244 sh2
->ptr_path
= (path
!= NULL
) ? 1 : 0;
245 sh2
->ptr_passwd
= (passwd
!= NULL
) ? 1 : 0;
248 /*******************************************************************
249 Reads or writes a structure.
250 ********************************************************************/
252 static BOOL
srv_io_share_info2(const char *desc
, SH_INFO_2
*sh2
, prs_struct
*ps
, int depth
)
257 prs_debug(ps
, depth
, desc
, "srv_io_share_info2");
263 if(!prs_uint32("ptr_netname", ps
, depth
, &sh2
->ptr_netname
))
265 if(!prs_uint32("type ", ps
, depth
, &sh2
->type
))
267 if(!prs_uint32("ptr_remark ", ps
, depth
, &sh2
->ptr_remark
))
269 if(!prs_uint32("perms ", ps
, depth
, &sh2
->perms
))
271 if(!prs_uint32("max_uses ", ps
, depth
, &sh2
->max_uses
))
273 if(!prs_uint32("num_uses ", ps
, depth
, &sh2
->num_uses
))
275 if(!prs_uint32("ptr_path ", ps
, depth
, &sh2
->ptr_path
))
277 if(!prs_uint32("ptr_passwd ", ps
, depth
, &sh2
->ptr_passwd
))
283 /*******************************************************************
284 Inits a SH_INFO_501_STR structure
285 ********************************************************************/
287 void init_srv_share_info501_str(SH_INFO_501_STR
*sh501
,
288 const char *net_name
, const char *remark
)
290 DEBUG(5,("init_srv_share_info501_str\n"));
292 init_unistr2(&sh501
->uni_netname
, net_name
, UNI_STR_TERMINATE
);
293 init_unistr2(&sh501
->uni_remark
, remark
, UNI_STR_TERMINATE
);
296 /*******************************************************************
297 Inits a SH_INFO_2 structure
298 *******************************************************************/
300 void init_srv_share_info501(SH_INFO_501
*sh501
, const char *net_name
, uint32 type
, const char *remark
, uint32 csc_policy
)
302 DEBUG(5,("init_srv_share_info501: %s %8x %s %08x\n", net_name
, type
,
303 remark
, csc_policy
));
307 sh501
->ptr_netname
= (net_name
!= NULL
) ? 1 : 0;
309 sh501
->ptr_remark
= (remark
!= NULL
) ? 1 : 0;
310 sh501
->csc_policy
= csc_policy
;
313 /*******************************************************************
314 Reads of writes a structure.
315 *******************************************************************/
317 static BOOL
srv_io_share_info501(const char *desc
, SH_INFO_501
*sh501
, prs_struct
*ps
, int depth
)
322 prs_debug(ps
, depth
, desc
, "srv_io_share_info501");
328 if (!prs_uint32("ptr_netname", ps
, depth
, &sh501
->ptr_netname
))
330 if (!prs_uint32("type ", ps
, depth
, &sh501
->type
))
332 if (!prs_uint32("ptr_remark ", ps
, depth
, &sh501
->ptr_remark
))
334 if (!prs_uint32("csc_policy ", ps
, depth
, &sh501
->csc_policy
))
340 /*******************************************************************
341 Reads or writes a structure.
342 ********************************************************************/
344 static BOOL
srv_io_share_info501_str(const char *desc
, SH_INFO_501_STR
*sh501
, prs_struct
*ps
, int depth
)
349 prs_debug(ps
, depth
, desc
, "srv_io_share_info501_str");
354 if(!smb_io_unistr2("", &sh501
->uni_netname
, True
, ps
, depth
))
359 if(!smb_io_unistr2("", &sh501
->uni_remark
, True
, ps
, depth
))
365 /*******************************************************************
366 Inits a SH_INFO_502 structure
367 ********************************************************************/
369 void init_srv_share_info502(SH_INFO_502
*sh502
,
370 const char *net_name
, uint32 type
, const char *remark
,
371 uint32 perms
, uint32 max_uses
, uint32 num_uses
,
372 const char *path
, const char *passwd
, SEC_DESC
*psd
, size_t sd_size
)
374 DEBUG(5,("init_srv_share_info502: %s %8x %s\n", net_name
, type
, remark
));
378 sh502
->ptr_netname
= (net_name
!= NULL
) ? 1 : 0;
380 sh502
->ptr_remark
= (remark
!= NULL
) ? 1 : 0;
381 sh502
->perms
= perms
;
382 sh502
->max_uses
= max_uses
;
383 sh502
->num_uses
= num_uses
;
384 sh502
->ptr_path
= (path
!= NULL
) ? 1 : 0;
385 sh502
->ptr_passwd
= (passwd
!= NULL
) ? 1 : 0;
386 sh502
->reserved
= 0; /* actual size within rpc */
387 sh502
->sd_size
= (uint32
)sd_size
;
388 sh502
->ptr_sd
= (psd
!= NULL
) ? 1 : 0;
391 /*******************************************************************
392 Reads or writes a structure.
393 ********************************************************************/
395 static BOOL
srv_io_share_info502(const char *desc
, SH_INFO_502
*sh502
, prs_struct
*ps
, int depth
)
400 prs_debug(ps
, depth
, desc
, "srv_io_share_info502");
406 if(!prs_uint32("ptr_netname", ps
, depth
, &sh502
->ptr_netname
))
408 if(!prs_uint32("type ", ps
, depth
, &sh502
->type
))
410 if(!prs_uint32("ptr_remark ", ps
, depth
, &sh502
->ptr_remark
))
412 if(!prs_uint32("perms ", ps
, depth
, &sh502
->perms
))
414 if(!prs_uint32("max_uses ", ps
, depth
, &sh502
->max_uses
))
416 if(!prs_uint32("num_uses ", ps
, depth
, &sh502
->num_uses
))
418 if(!prs_uint32("ptr_path ", ps
, depth
, &sh502
->ptr_path
))
420 if(!prs_uint32("ptr_passwd ", ps
, depth
, &sh502
->ptr_passwd
))
422 if(!prs_uint32_pre("reserved ", ps
, depth
, &sh502
->reserved
, &sh502
->reserved_offset
))
424 if(!prs_uint32("ptr_sd ", ps
, depth
, &sh502
->ptr_sd
))
430 /*******************************************************************
431 Inits a SH_INFO_502_STR structure
432 ********************************************************************/
434 void init_srv_share_info502_str(SH_INFO_502_STR
*sh502str
,
435 const char *net_name
, const char *remark
,
436 const char *path
, const char *passwd
, SEC_DESC
*psd
, size_t sd_size
)
438 DEBUG(5,("init_srv_share_info502_str\n"));
440 init_unistr2(&sh502str
->uni_netname
, net_name
, UNI_STR_TERMINATE
);
441 init_unistr2(&sh502str
->uni_remark
, remark
, UNI_STR_TERMINATE
);
442 init_unistr2(&sh502str
->uni_path
, path
, UNI_STR_TERMINATE
);
443 init_unistr2(&sh502str
->uni_passwd
, passwd
, UNI_STR_TERMINATE
);
445 sh502str
->reserved
= 0;
446 sh502str
->sd_size
= sd_size
;
449 /*******************************************************************
450 Reads or writes a structure.
451 ********************************************************************/
453 static BOOL
srv_io_share_info502_str(const char *desc
, SH_INFO_502_STR
*sh502
, prs_struct
*ps
, int depth
)
458 prs_debug(ps
, depth
, desc
, "srv_io_share_info502_str");
464 if(sh502
->ptrs
->ptr_netname
) {
465 if(!smb_io_unistr2("", &sh502
->uni_netname
, True
, ps
, depth
))
472 if(sh502
->ptrs
->ptr_remark
) {
473 if(!smb_io_unistr2("", &sh502
->uni_remark
, True
, ps
, depth
))
480 if(sh502
->ptrs
->ptr_path
) {
481 if(!smb_io_unistr2("", &sh502
->uni_path
, True
, ps
, depth
))
488 if(sh502
->ptrs
->ptr_passwd
) {
489 if(!smb_io_unistr2("", &sh502
->uni_passwd
, True
, ps
, depth
))
496 if(sh502
->ptrs
->ptr_sd
) {
498 uint32 reserved_offset
;
500 if(!prs_uint32_pre("reserved ", ps
, depth
, &sh502
->reserved
, &reserved_offset
))
503 old_offset
= prs_offset(ps
);
505 if (!sec_io_desc(desc
, &sh502
->sd
, ps
, depth
))
508 if(UNMARSHALLING(ps
)) {
510 sh502
->ptrs
->sd_size
= sh502
->sd_size
= sec_desc_size(sh502
->sd
);
512 prs_set_offset(ps
, old_offset
+ sh502
->reserved
);
517 if(MARSHALLING(ps
)) {
519 sh502
->ptrs
->reserved
= sh502
->reserved
= prs_offset(ps
) - old_offset
;
522 if(!prs_uint32_post("reserved ", ps
, depth
,
523 &sh502
->reserved
, reserved_offset
, sh502
->reserved
))
525 if(!prs_uint32_post("reserved ", ps
, depth
,
526 &sh502
->ptrs
->reserved
, sh502
->ptrs
->reserved_offset
, sh502
->ptrs
->reserved
))
533 /*******************************************************************
534 Inits a SH_INFO_1004_STR structure
535 ********************************************************************/
537 void init_srv_share_info1004_str(SH_INFO_1004_STR
*sh1004
, const char *remark
)
539 DEBUG(5,("init_srv_share_info1004_str\n"));
541 init_unistr2(&sh1004
->uni_remark
, remark
, UNI_STR_TERMINATE
);
544 /*******************************************************************
545 Reads or writes a structure.
546 ********************************************************************/
548 static BOOL
srv_io_share_info1004_str(const char *desc
, SH_INFO_1004_STR
*sh1004
, prs_struct
*ps
, int depth
)
553 prs_debug(ps
, depth
, desc
, "srv_io_share_info1004_str");
558 if(sh1004
->ptrs
->ptr_remark
)
559 if(!smb_io_unistr2("", &sh1004
->uni_remark
, True
, ps
, depth
))
565 /*******************************************************************
566 makes a SH_INFO_1004 structure
567 ********************************************************************/
569 void init_srv_share_info1004(SH_INFO_1004
*sh1004
, const char *remark
)
571 DEBUG(5,("init_srv_share_info1004: %s\n", remark
));
573 sh1004
->ptr_remark
= (remark
!= NULL
) ? 1 : 0;
576 /*******************************************************************
577 Reads or writes a structure.
578 ********************************************************************/
580 static BOOL
srv_io_share_info1004(const char *desc
, SH_INFO_1004
*sh1004
, prs_struct
*ps
, int depth
)
585 prs_debug(ps
, depth
, desc
, "srv_io_share_info1004");
591 if(!prs_uint32("ptr_remark", ps
, depth
, &sh1004
->ptr_remark
))
597 /*******************************************************************
598 Reads or writes a structure.
599 ********************************************************************/
601 static BOOL
srv_io_share_info1005(const char* desc
, SRV_SHARE_INFO_1005
* sh1005
, prs_struct
* ps
, int depth
)
606 prs_debug(ps
, depth
, desc
, "srv_io_share_info1005");
612 if(!prs_uint32("share_info_flags", ps
, depth
,
613 &sh1005
->share_info_flags
))
619 /*******************************************************************
620 Reads or writes a structure.
621 ********************************************************************/
623 static BOOL
srv_io_share_info1006(const char* desc
, SRV_SHARE_INFO_1006
* sh1006
, prs_struct
* ps
, int depth
)
628 prs_debug(ps
, depth
, desc
, "srv_io_share_info1006");
634 if(!prs_uint32("max uses ", ps
, depth
, &sh1006
->max_uses
))
640 /*******************************************************************
641 Inits a SH_INFO_1007_STR structure
642 ********************************************************************/
644 void init_srv_share_info1007_str(SH_INFO_1007_STR
*sh1007
, const char *alternate_directory_name
)
646 DEBUG(5,("init_srv_share_info1007_str\n"));
648 init_unistr2(&sh1007
->uni_AlternateDirectoryName
, alternate_directory_name
, UNI_STR_TERMINATE
);
651 /*******************************************************************
652 Reads or writes a structure.
653 ********************************************************************/
655 static BOOL
srv_io_share_info1007_str(const char *desc
, SH_INFO_1007_STR
*sh1007
, prs_struct
*ps
, int depth
)
660 prs_debug(ps
, depth
, desc
, "srv_io_share_info1007_str");
665 if(sh1007
->ptrs
->ptr_AlternateDirectoryName
)
666 if(!smb_io_unistr2("", &sh1007
->uni_AlternateDirectoryName
, True
, ps
, depth
))
672 /*******************************************************************
673 makes a SH_INFO_1007 structure
674 ********************************************************************/
676 void init_srv_share_info1007(SH_INFO_1007
*sh1007
, uint32 flags
, const char *alternate_directory_name
)
678 DEBUG(5,("init_srv_share_info1007: %s\n", alternate_directory_name
));
680 sh1007
->flags
= flags
;
681 sh1007
->ptr_AlternateDirectoryName
= (alternate_directory_name
!= NULL
) ? 1 : 0;
684 /*******************************************************************
685 Reads or writes a structure.
686 ********************************************************************/
688 static BOOL
srv_io_share_info1007(const char *desc
, SH_INFO_1007
*sh1007
, prs_struct
*ps
, int depth
)
693 prs_debug(ps
, depth
, desc
, "srv_io_share_info1007");
699 if(!prs_uint32("flags ", ps
, depth
, &sh1007
->flags
))
701 if(!prs_uint32("ptr_Alter..", ps
, depth
, &sh1007
->ptr_AlternateDirectoryName
))
707 /*******************************************************************
708 Reads or writes a structure.
709 ********************************************************************/
711 static BOOL
srv_io_share_info1501(const char* desc
, SRV_SHARE_INFO_1501
* sh1501
,
712 prs_struct
* ps
, int depth
)
717 prs_debug(ps
, depth
, desc
, "srv_io_share_info1501");
723 if (!sec_io_desc_buf(desc
, &sh1501
->sdb
, ps
, depth
))
729 /*******************************************************************
730 Reads or writes a structure.
731 ********************************************************************/
733 static BOOL
srv_io_srv_share_ctr(const char *desc
, SRV_SHARE_INFO_CTR
*ctr
, prs_struct
*ps
, int depth
)
738 prs_debug(ps
, depth
, desc
, "srv_io_srv_share_ctr");
741 if (UNMARSHALLING(ps
)) {
742 memset(ctr
, '\0', sizeof(SRV_SHARE_INFO_CTR
));
748 if(!prs_uint32("info_level", ps
, depth
, &ctr
->info_level
))
751 if(!prs_uint32("switch_value", ps
, depth
, &ctr
->switch_value
))
753 if(!prs_uint32("ptr_share_info", ps
, depth
, &ctr
->ptr_share_info
))
756 if (ctr
->ptr_share_info
== 0)
759 if(!prs_uint32("num_entries", ps
, depth
, &ctr
->num_entries
))
761 if(!prs_uint32("ptr_entries", ps
, depth
, &ctr
->ptr_entries
))
764 if (ctr
->ptr_entries
== 0) {
765 if (ctr
->num_entries
== 0)
771 if(!prs_uint32("num_entries2", ps
, depth
, &ctr
->num_entries2
))
774 if (ctr
->num_entries2
!= ctr
->num_entries
)
777 switch (ctr
->switch_value
) {
781 SRV_SHARE_INFO_0
*info0
= ctr
->share
.info0
;
782 int num_entries
= ctr
->num_entries
;
785 if (UNMARSHALLING(ps
)) {
786 if (!(info0
= PRS_ALLOC_MEM(ps
, SRV_SHARE_INFO_0
, num_entries
)))
788 ctr
->share
.info0
= info0
;
791 for (i
= 0; i
< num_entries
; i
++) {
792 if(!srv_io_share_info0("", &info0
[i
].info_0
, ps
, depth
))
796 for (i
= 0; i
< num_entries
; i
++) {
797 info0
[i
].info_0_str
.ptrs
= &info0
[i
].info_0
;
798 if(!srv_io_share_info0_str("", &info0
[i
].info_0_str
, ps
, depth
))
807 SRV_SHARE_INFO_1
*info1
= ctr
->share
.info1
;
808 int num_entries
= ctr
->num_entries
;
811 if (UNMARSHALLING(ps
)) {
812 if (!(info1
= PRS_ALLOC_MEM(ps
, SRV_SHARE_INFO_1
, num_entries
)))
814 ctr
->share
.info1
= info1
;
817 for (i
= 0; i
< num_entries
; i
++) {
818 if(!srv_io_share_info1("", &info1
[i
].info_1
, ps
, depth
))
822 for (i
= 0; i
< num_entries
; i
++) {
823 info1
[i
].info_1_str
.ptrs
= &info1
[i
].info_1
;
824 if(!srv_io_share_info1_str("", &info1
[i
].info_1_str
, ps
, depth
))
833 SRV_SHARE_INFO_2
*info2
= ctr
->share
.info2
;
834 int num_entries
= ctr
->num_entries
;
837 if (UNMARSHALLING(ps
)) {
838 if (!(info2
= PRS_ALLOC_MEM(ps
,SRV_SHARE_INFO_2
,num_entries
)))
840 ctr
->share
.info2
= info2
;
843 for (i
= 0; i
< num_entries
; i
++) {
844 if(!srv_io_share_info2("", &info2
[i
].info_2
, ps
, depth
))
848 for (i
= 0; i
< num_entries
; i
++) {
849 if(!srv_io_share_info2_str("", &info2
[i
].info_2
, &info2
[i
].info_2_str
, ps
, depth
))
858 SRV_SHARE_INFO_501
*info501
= ctr
->share
.info501
;
859 int num_entries
= ctr
->num_entries
;
862 if (UNMARSHALLING(ps
)) {
863 if (!(info501
= PRS_ALLOC_MEM(ps
, SRV_SHARE_INFO_501
, num_entries
)))
865 ctr
->share
.info501
= info501
;
868 for (i
= 0; i
< num_entries
; i
++) {
869 if (!srv_io_share_info501("", &info501
[i
].info_501
, ps
, depth
))
873 for (i
= 0; i
< num_entries
; i
++) {
874 if (!srv_io_share_info501_str("", &info501
[i
].info_501_str
, ps
, depth
))
883 SRV_SHARE_INFO_502
*info502
= ctr
->share
.info502
;
884 int num_entries
= ctr
->num_entries
;
887 if (UNMARSHALLING(ps
)) {
888 if (!(info502
= PRS_ALLOC_MEM(ps
,SRV_SHARE_INFO_502
,num_entries
)))
890 ctr
->share
.info502
= info502
;
893 for (i
= 0; i
< num_entries
; i
++) {
894 if(!srv_io_share_info502("", &info502
[i
].info_502
, ps
, depth
))
898 for (i
= 0; i
< num_entries
; i
++) {
899 info502
[i
].info_502_str
.ptrs
= &info502
[i
].info_502
;
900 if(!srv_io_share_info502_str("", &info502
[i
].info_502_str
, ps
, depth
))
909 SRV_SHARE_INFO_1004
*info1004
= ctr
->share
.info1004
;
910 int num_entries
= ctr
->num_entries
;
913 if (UNMARSHALLING(ps
)) {
914 if (!(info1004
= PRS_ALLOC_MEM(ps
,SRV_SHARE_INFO_1004
,num_entries
)))
916 ctr
->share
.info1004
= info1004
;
919 for (i
= 0; i
< num_entries
; i
++) {
920 if(!srv_io_share_info1004("", &info1004
[i
].info_1004
, ps
, depth
))
924 for (i
= 0; i
< num_entries
; i
++) {
925 info1004
[i
].info_1004_str
.ptrs
= &info1004
[i
].info_1004
;
926 if(!srv_io_share_info1004_str("", &info1004
[i
].info_1004_str
, ps
, depth
))
935 SRV_SHARE_INFO_1005
*info1005
= ctr
->share
.info1005
;
936 int num_entries
= ctr
->num_entries
;
939 if (UNMARSHALLING(ps
)) {
940 if (!(info1005
= PRS_ALLOC_MEM(ps
,SRV_SHARE_INFO_1005
,num_entries
)))
942 ctr
->share
.info1005
= info1005
;
945 for (i
= 0; i
< num_entries
; i
++) {
946 if(!srv_io_share_info1005("", &info1005
[i
], ps
, depth
))
955 SRV_SHARE_INFO_1006
*info1006
= ctr
->share
.info1006
;
956 int num_entries
= ctr
->num_entries
;
959 if (UNMARSHALLING(ps
)) {
960 if (!(info1006
= PRS_ALLOC_MEM(ps
,SRV_SHARE_INFO_1006
,num_entries
)))
962 ctr
->share
.info1006
= info1006
;
965 for (i
= 0; i
< num_entries
; i
++) {
966 if(!srv_io_share_info1006("", &info1006
[i
], ps
, depth
))
975 SRV_SHARE_INFO_1007
*info1007
= ctr
->share
.info1007
;
976 int num_entries
= ctr
->num_entries
;
979 if (UNMARSHALLING(ps
)) {
980 if (!(info1007
= PRS_ALLOC_MEM(ps
,SRV_SHARE_INFO_1007
,num_entries
)))
982 ctr
->share
.info1007
= info1007
;
985 for (i
= 0; i
< num_entries
; i
++) {
986 if(!srv_io_share_info1007("", &info1007
[i
].info_1007
, ps
, depth
))
990 for (i
= 0; i
< num_entries
; i
++) {
991 info1007
[i
].info_1007_str
.ptrs
= &info1007
[i
].info_1007
;
992 if(!srv_io_share_info1007_str("", &info1007
[i
].info_1007_str
, ps
, depth
))
1001 SRV_SHARE_INFO_1501
*info1501
= ctr
->share
.info1501
;
1002 int num_entries
= ctr
->num_entries
;
1005 if (UNMARSHALLING(ps
)) {
1006 if (!(info1501
= PRS_ALLOC_MEM(ps
,SRV_SHARE_INFO_1501
,num_entries
)))
1008 ctr
->share
.info1501
= info1501
;
1011 for (i
= 0; i
< num_entries
; i
++) {
1012 if(!srv_io_share_info1501("", &info1501
[i
], ps
, depth
))
1020 DEBUG(5,("%s no share info at switch_value %d\n",
1021 tab_depth(depth
), ctr
->switch_value
));
1028 /*******************************************************************
1029 Inits a SRV_Q_NET_SHARE_ENUM structure.
1030 ********************************************************************/
1032 void init_srv_q_net_share_enum(SRV_Q_NET_SHARE_ENUM
*q_n
,
1033 const char *srv_name
, uint32 info_level
,
1034 uint32 preferred_len
, ENUM_HND
*hnd
)
1037 DEBUG(5,("init_q_net_share_enum\n"));
1039 init_buf_unistr2(&q_n
->uni_srv_name
, &q_n
->ptr_srv_name
, srv_name
);
1041 q_n
->ctr
.info_level
= q_n
->ctr
.switch_value
= info_level
;
1042 q_n
->ctr
.ptr_share_info
= 1;
1043 q_n
->ctr
.num_entries
= 0;
1044 q_n
->ctr
.ptr_entries
= 0;
1045 q_n
->ctr
.num_entries2
= 0;
1046 q_n
->preferred_len
= preferred_len
;
1048 memcpy(&q_n
->enum_hnd
, hnd
, sizeof(*hnd
));
1051 /*******************************************************************
1052 Reads or writes a structure.
1053 ********************************************************************/
1055 BOOL
srv_io_q_net_share_enum(const char *desc
, SRV_Q_NET_SHARE_ENUM
*q_n
, prs_struct
*ps
, int depth
)
1060 prs_debug(ps
, depth
, desc
, "srv_io_q_net_share_enum");
1066 if(!prs_uint32("ptr_srv_name", ps
, depth
, &q_n
->ptr_srv_name
))
1068 if(!smb_io_unistr2("", &q_n
->uni_srv_name
, True
, ps
, depth
))
1071 if(!srv_io_srv_share_ctr("share_ctr", &q_n
->ctr
, ps
, depth
))
1077 if(!prs_uint32("preferred_len", ps
, depth
, &q_n
->preferred_len
))
1080 if(!smb_io_enum_hnd("enum_hnd", &q_n
->enum_hnd
, ps
, depth
))
1086 /*******************************************************************
1087 Reads or writes a structure.
1088 ********************************************************************/
1090 BOOL
srv_io_r_net_share_enum(const char *desc
, SRV_R_NET_SHARE_ENUM
*r_n
, prs_struct
*ps
, int depth
)
1095 prs_debug(ps
, depth
, desc
, "srv_io_r_net_share_enum");
1098 if(!srv_io_srv_share_ctr("share_ctr", &r_n
->ctr
, ps
, depth
))
1104 if(!prs_uint32("total_entries", ps
, depth
, &r_n
->total_entries
))
1107 if(!smb_io_enum_hnd("enum_hnd", &r_n
->enum_hnd
, ps
, depth
))
1110 if(!prs_werror("status", ps
, depth
, &r_n
->status
))
1116 /*******************************************************************
1117 initialises a structure.
1118 ********************************************************************/
1120 BOOL
init_srv_q_net_share_get_info(SRV_Q_NET_SHARE_GET_INFO
*q_n
, const char *srv_name
, const char *share_name
, uint32 info_level
)
1123 uint32 ptr_share_name
;
1125 DEBUG(5,("init_srv_q_net_share_get_info\n"));
1127 init_buf_unistr2(&q_n
->uni_srv_name
, &q_n
->ptr_srv_name
, srv_name
);
1128 init_buf_unistr2(&q_n
->uni_share_name
, &ptr_share_name
, share_name
);
1130 q_n
->info_level
= info_level
;
1135 /*******************************************************************
1136 Reads or writes a structure.
1137 ********************************************************************/
1139 BOOL
srv_io_q_net_share_get_info(const char *desc
, SRV_Q_NET_SHARE_GET_INFO
*q_n
, prs_struct
*ps
, int depth
)
1144 prs_debug(ps
, depth
, desc
, "srv_io_q_net_share_get_info");
1150 if(!prs_uint32("ptr_srv_name", ps
, depth
, &q_n
->ptr_srv_name
))
1152 if(!smb_io_unistr2("", &q_n
->uni_srv_name
, True
, ps
, depth
))
1155 if(!smb_io_unistr2("", &q_n
->uni_share_name
, True
, ps
, depth
))
1161 if(!prs_uint32("info_level", ps
, depth
, &q_n
->info_level
))
1167 /*******************************************************************
1168 Reads or writes a structure.
1169 ********************************************************************/
1171 static BOOL
srv_io_srv_share_info(const char *desc
, prs_struct
*ps
, int depth
, SRV_SHARE_INFO
*r_n
)
1176 prs_debug(ps
, depth
, desc
, "srv_io_srv_share_info");
1182 if(!prs_uint32("switch_value ", ps
, depth
, &r_n
->switch_value
))
1185 if(!prs_uint32("ptr_share_ctr", ps
, depth
, &r_n
->ptr_share_ctr
))
1188 if (r_n
->ptr_share_ctr
!= 0) {
1189 switch (r_n
->switch_value
) {
1191 if(!srv_io_share_info0("", &r_n
->share
.info0
.info_0
, ps
, depth
))
1194 /* allow access to pointers in the str part. */
1195 r_n
->share
.info0
.info_0_str
.ptrs
= &r_n
->share
.info0
.info_0
;
1197 if(!srv_io_share_info0_str("", &r_n
->share
.info0
.info_0_str
, ps
, depth
))
1202 if(!srv_io_share_info1("", &r_n
->share
.info1
.info_1
, ps
, depth
))
1205 /* allow access to pointers in the str part. */
1206 r_n
->share
.info1
.info_1_str
.ptrs
= &r_n
->share
.info1
.info_1
;
1208 if(!srv_io_share_info1_str("", &r_n
->share
.info1
.info_1_str
, ps
, depth
))
1213 if(!srv_io_share_info2("", &r_n
->share
.info2
.info_2
, ps
, depth
))
1216 if(!srv_io_share_info2_str("", &r_n
->share
.info2
.info_2
, &r_n
->share
.info2
.info_2_str
, ps
, depth
))
1221 if (!srv_io_share_info501("", &r_n
->share
.info501
.info_501
, ps
, depth
))
1223 if (!srv_io_share_info501_str("", &r_n
->share
.info501
.info_501_str
, ps
, depth
))
1228 if(!srv_io_share_info502("", &r_n
->share
.info502
.info_502
, ps
, depth
))
1231 /* allow access to pointers in the str part. */
1232 r_n
->share
.info502
.info_502_str
.ptrs
= &r_n
->share
.info502
.info_502
;
1234 if(!srv_io_share_info502_str("", &r_n
->share
.info502
.info_502_str
, ps
, depth
))
1238 if(!srv_io_share_info1004("", &r_n
->share
.info1004
.info_1004
, ps
, depth
))
1241 /* allow access to pointers in the str part. */
1242 r_n
->share
.info1004
.info_1004_str
.ptrs
= &r_n
->share
.info1004
.info_1004
;
1244 if(!srv_io_share_info1004_str("", &r_n
->share
.info1004
.info_1004_str
, ps
, depth
))
1248 if(!srv_io_share_info1005("", &r_n
->share
.info1005
, ps
, depth
))
1252 if(!srv_io_share_info1006("", &r_n
->share
.info1006
, ps
, depth
))
1256 if(!srv_io_share_info1007("", &r_n
->share
.info1007
.info_1007
, ps
, depth
))
1259 /* allow access to pointers in the str part. */
1260 r_n
->share
.info1007
.info_1007_str
.ptrs
= &r_n
->share
.info1007
.info_1007
;
1262 if(!srv_io_share_info1007_str("", &r_n
->share
.info1007
.info_1007_str
, ps
, depth
))
1266 if (!srv_io_share_info1501("", &r_n
->share
.info1501
, ps
, depth
))
1269 DEBUG(5,("%s no share info at switch_value %d\n",
1270 tab_depth(depth
), r_n
->switch_value
));
1278 /*******************************************************************
1279 Reads or writes a structure.
1280 ********************************************************************/
1282 BOOL
srv_io_r_net_share_get_info(const char *desc
, SRV_R_NET_SHARE_GET_INFO
*r_n
, prs_struct
*ps
, int depth
)
1287 prs_debug(ps
, depth
, desc
, "srv_io_r_net_share_get_info");
1293 if(!srv_io_srv_share_info("info ", ps
, depth
, &r_n
->info
))
1299 if(!prs_werror("status", ps
, depth
, &r_n
->status
))
1305 /*******************************************************************
1306 intialises a structure.
1307 ********************************************************************/
1309 BOOL
init_srv_q_net_share_set_info(SRV_Q_NET_SHARE_SET_INFO
*q_n
,
1310 const char *srv_name
,
1311 const char *share_name
,
1313 const SRV_SHARE_INFO
*info
)
1316 uint32 ptr_share_name
;
1318 DEBUG(5,("init_srv_q_net_share_set_info\n"));
1320 init_buf_unistr2(&q_n
->uni_srv_name
, &q_n
->ptr_srv_name
, srv_name
);
1321 init_buf_unistr2(&q_n
->uni_share_name
, &ptr_share_name
, share_name
);
1323 q_n
->info_level
= info_level
;
1327 q_n
->ptr_parm_error
= 1;
1328 q_n
->parm_error
= 0;
1333 /*******************************************************************
1334 Reads or writes a structure.
1335 ********************************************************************/
1337 BOOL
srv_io_q_net_share_set_info(const char *desc
, SRV_Q_NET_SHARE_SET_INFO
*q_n
, prs_struct
*ps
, int depth
)
1342 prs_debug(ps
, depth
, desc
, "srv_io_q_net_share_set_info");
1348 if(!prs_uint32("ptr_srv_name", ps
, depth
, &q_n
->ptr_srv_name
))
1350 if(!smb_io_unistr2("", &q_n
->uni_srv_name
, True
, ps
, depth
))
1353 if(!smb_io_unistr2("", &q_n
->uni_share_name
, True
, ps
, depth
))
1359 if(!prs_uint32("info_level", ps
, depth
, &q_n
->info_level
))
1365 if(!srv_io_srv_share_info("info ", ps
, depth
, &q_n
->info
))
1370 if(!prs_uint32("ptr_parm_error", ps
, depth
, &q_n
->ptr_parm_error
))
1372 if(q_n
->ptr_parm_error
!=0) {
1373 if(!prs_uint32("parm_error", ps
, depth
, &q_n
->parm_error
))
1380 /*******************************************************************
1381 Reads or writes a structure.
1382 ********************************************************************/
1384 BOOL
srv_io_r_net_share_set_info(const char *desc
, SRV_R_NET_SHARE_SET_INFO
*r_n
, prs_struct
*ps
, int depth
)
1389 prs_debug(ps
, depth
, desc
, "srv_io_r_net_share_set_info");
1395 if(!prs_uint32("ptr_parm_error ", ps
, depth
, &r_n
->ptr_parm_error
))
1398 if(r_n
->ptr_parm_error
) {
1400 if(!prs_uint32("parm_error ", ps
, depth
, &r_n
->parm_error
))
1404 if(!prs_werror("status", ps
, depth
, &r_n
->status
))
1411 /*******************************************************************
1412 Reads or writes a structure.
1413 ********************************************************************/
1415 BOOL
srv_io_q_net_share_add(const char *desc
, SRV_Q_NET_SHARE_ADD
*q_n
, prs_struct
*ps
, int depth
)
1420 prs_debug(ps
, depth
, desc
, "srv_io_q_net_share_add");
1426 if(!prs_uint32("ptr_srv_name", ps
, depth
, &q_n
->ptr_srv_name
))
1428 if(!smb_io_unistr2("", &q_n
->uni_srv_name
, True
, ps
, depth
))
1434 if(!prs_uint32("info_level", ps
, depth
, &q_n
->info_level
))
1440 if(!srv_io_srv_share_info("info ", ps
, depth
, &q_n
->info
))
1446 if(!prs_uint32("ptr_err_index", ps
, depth
, &q_n
->ptr_err_index
))
1448 if (q_n
->ptr_err_index
)
1449 if (!prs_uint32("err_index", ps
, depth
, &q_n
->err_index
))
1455 void init_srv_q_net_share_add(SRV_Q_NET_SHARE_ADD
*q
, const char *srvname
,
1456 const char *netname
, uint32 type
, const char *remark
,
1457 uint32 perms
, uint32 max_uses
, uint32 num_uses
,
1458 const char *path
, const char *passwd
,
1459 int level
, SEC_DESC
*sd
)
1463 size_t sd_size
= sec_desc_size(sd
);
1464 q
->ptr_srv_name
= 1;
1465 init_unistr2(&q
->uni_srv_name
, srvname
, UNI_STR_TERMINATE
);
1466 q
->info
.switch_value
= q
->info_level
= level
;
1467 q
->info
.ptr_share_ctr
= 1;
1468 init_srv_share_info502(&q
->info
.share
.info502
.info_502
, netname
, type
,
1469 remark
, perms
, max_uses
, num_uses
, path
, passwd
, sd
, sd_size
);
1470 init_srv_share_info502_str(&q
->info
.share
.info502
.info_502_str
, netname
,
1471 remark
, path
, passwd
, sd
, sd_size
);
1472 q
->ptr_err_index
= 1;
1478 q
->ptr_srv_name
= 1;
1479 init_unistr2(&q
->uni_srv_name
, srvname
, UNI_STR_TERMINATE
);
1480 q
->info
.switch_value
= q
->info_level
= level
;
1481 q
->info
.ptr_share_ctr
= 1;
1482 init_srv_share_info2(&q
->info
.share
.info2
.info_2
, netname
, type
,
1483 remark
, perms
, max_uses
, num_uses
, path
, passwd
);
1484 init_srv_share_info2_str(&q
->info
.share
.info2
.info_2_str
, netname
,
1485 remark
, path
, passwd
);
1486 q
->ptr_err_index
= 1;
1493 /*******************************************************************
1494 Reads or writes a structure.
1495 ********************************************************************/
1497 BOOL
srv_io_r_net_share_add(const char *desc
, SRV_R_NET_SHARE_ADD
*r_n
, prs_struct
*ps
, int depth
)
1502 prs_debug(ps
, depth
, desc
, "srv_io_r_net_share_add");
1508 if(!prs_uint32("ptr_parm_error", ps
, depth
, &r_n
->ptr_parm_error
))
1511 if(r_n
->ptr_parm_error
) {
1513 if(!prs_uint32("parm_error", ps
, depth
, &r_n
->parm_error
))
1517 if(!prs_werror("status", ps
, depth
, &r_n
->status
))
1523 /*******************************************************************
1524 initialises a structure.
1525 ********************************************************************/
1527 void init_srv_q_net_share_del(SRV_Q_NET_SHARE_DEL
*del
, const char *srvname
,
1528 const char *sharename
)
1530 del
->ptr_srv_name
= 1;
1531 init_unistr2(&del
->uni_srv_name
, srvname
, UNI_STR_TERMINATE
);
1532 init_unistr2(&del
->uni_share_name
, sharename
, UNI_STR_TERMINATE
);
1535 /*******************************************************************
1536 Reads or writes a structure.
1537 ********************************************************************/
1539 BOOL
srv_io_q_net_share_del(const char *desc
, SRV_Q_NET_SHARE_DEL
*q_n
, prs_struct
*ps
, int depth
)
1544 prs_debug(ps
, depth
, desc
, "srv_io_q_net_share_del");
1550 if(!prs_uint32("ptr_srv_name", ps
, depth
, &q_n
->ptr_srv_name
))
1552 if(!smb_io_unistr2("", &q_n
->uni_srv_name
, True
, ps
, depth
))
1555 if(!smb_io_unistr2("", &q_n
->uni_share_name
, True
, ps
, depth
))
1560 if(!prs_uint32("reserved", ps
, depth
, &q_n
->reserved
))
1566 /*******************************************************************
1567 Reads or writes a structure.
1568 ********************************************************************/
1570 BOOL
srv_io_r_net_share_del(const char *desc
, SRV_R_NET_SHARE_DEL
*q_n
, prs_struct
*ps
, int depth
)
1575 prs_debug(ps
, depth
, desc
, "srv_io_r_net_share_del");
1581 if(!prs_werror("status", ps
, depth
, &q_n
->status
))
1587 /*******************************************************************
1588 Inits a SESS_INFO_0_STR structure
1589 ********************************************************************/
1591 void init_srv_sess_info0_str(SESS_INFO_0_STR
*ss0
, const char *name
)
1593 DEBUG(5,("init_srv_sess_info0_str\n"));
1595 init_unistr2(&ss0
->uni_name
, name
, UNI_STR_TERMINATE
);
1598 /*******************************************************************
1599 Reads or writes a structure.
1600 ********************************************************************/
1602 static BOOL
srv_io_sess_info0_str(const char *desc
, SESS_INFO_0_STR
*ss0
, prs_struct
*ps
, int depth
)
1607 prs_debug(ps
, depth
, desc
, "srv_io_sess_info0_str");
1613 if(!smb_io_unistr2("", &ss0
->uni_name
, True
, ps
, depth
))
1619 /*******************************************************************
1620 Inits a SESS_INFO_0 structure
1621 ********************************************************************/
1623 void init_srv_sess_info0(SESS_INFO_0
*ss0
, const char *name
)
1625 DEBUG(5,("init_srv_sess_info0: %s\n", name
));
1627 ss0
->ptr_name
= (name
!= NULL
) ? 1 : 0;
1630 /*******************************************************************
1631 Reads or writes a structure.
1632 ********************************************************************/
1634 static BOOL
srv_io_sess_info0(const char *desc
, SESS_INFO_0
*ss0
, prs_struct
*ps
, int depth
)
1639 prs_debug(ps
, depth
, desc
, "srv_io_sess_info0");
1645 if(!prs_uint32("ptr_name", ps
, depth
, &ss0
->ptr_name
))
1651 /*******************************************************************
1652 Reads or writes a structure.
1653 ********************************************************************/
1655 static BOOL
srv_io_srv_sess_info_0(const char *desc
, SRV_SESS_INFO_0
*ss0
, prs_struct
*ps
, int depth
)
1660 prs_debug(ps
, depth
, desc
, "srv_io_srv_sess_info_0");
1666 if(!prs_uint32("num_entries_read", ps
, depth
, &ss0
->num_entries_read
))
1668 if(!prs_uint32("ptr_sess_info", ps
, depth
, &ss0
->ptr_sess_info
))
1671 if (ss0
->ptr_sess_info
!= 0) {
1673 uint32 num_entries
= ss0
->num_entries_read
;
1675 if (num_entries
> MAX_SESS_ENTRIES
) {
1676 num_entries
= MAX_SESS_ENTRIES
; /* report this! */
1679 if(!prs_uint32("num_entries_read2", ps
, depth
, &ss0
->num_entries_read2
))
1682 SMB_ASSERT_ARRAY(ss0
->info_0
, num_entries
);
1684 for (i
= 0; i
< num_entries
; i
++) {
1685 if(!srv_io_sess_info0("", &ss0
->info_0
[i
], ps
, depth
))
1689 for (i
= 0; i
< num_entries
; i
++) {
1690 if(!srv_io_sess_info0_str("", &ss0
->info_0_str
[i
], ps
, depth
))
1701 /*******************************************************************
1702 Inits a SESS_INFO_1_STR structure
1703 ********************************************************************/
1705 void init_srv_sess_info1_str(SESS_INFO_1_STR
*ss1
, const char *name
, const char *user
)
1707 DEBUG(5,("init_srv_sess_info1_str\n"));
1709 init_unistr2(&ss1
->uni_name
, name
, UNI_STR_TERMINATE
);
1710 init_unistr2(&ss1
->uni_user
, user
, UNI_STR_TERMINATE
);
1713 /*******************************************************************
1714 Reads or writes a structure.
1715 ********************************************************************/
1717 static BOOL
srv_io_sess_info1_str(const char *desc
, SESS_INFO_1_STR
*ss1
, prs_struct
*ps
, int depth
)
1722 prs_debug(ps
, depth
, desc
, "srv_io_sess_info1_str");
1728 if(!smb_io_unistr2("", &ss1
->uni_name
, True
, ps
, depth
))
1730 if(!smb_io_unistr2("", &(ss1
->uni_user
), True
, ps
, depth
))
1736 /*******************************************************************
1737 Inits a SESS_INFO_1 structure
1738 ********************************************************************/
1740 void init_srv_sess_info1(SESS_INFO_1
*ss1
,
1741 const char *name
, const char *user
,
1742 uint32 num_opens
, uint32 open_time
, uint32 idle_time
,
1745 DEBUG(5,("init_srv_sess_info1: %s\n", name
));
1747 ss1
->ptr_name
= (name
!= NULL
) ? 1 : 0;
1748 ss1
->ptr_user
= (user
!= NULL
) ? 1 : 0;
1750 ss1
->num_opens
= num_opens
;
1751 ss1
->open_time
= open_time
;
1752 ss1
->idle_time
= idle_time
;
1753 ss1
->user_flags
= user_flags
;
1756 /*******************************************************************
1757 reads or writes a structure.
1758 ********************************************************************/
1760 static BOOL
srv_io_sess_info1(const char *desc
, SESS_INFO_1
*ss1
, prs_struct
*ps
, int depth
)
1765 prs_debug(ps
, depth
, desc
, "srv_io_sess_info1");
1771 if(!prs_uint32("ptr_name ", ps
, depth
, &ss1
->ptr_name
))
1773 if(!prs_uint32("ptr_user ", ps
, depth
, &ss1
->ptr_user
))
1776 if(!prs_uint32("num_opens ", ps
, depth
, &ss1
->num_opens
))
1778 if(!prs_uint32("open_time ", ps
, depth
, &ss1
->open_time
))
1780 if(!prs_uint32("idle_time ", ps
, depth
, &ss1
->idle_time
))
1782 if(!prs_uint32("user_flags", ps
, depth
, &ss1
->user_flags
))
1788 /*******************************************************************
1789 Reads or writes a structure.
1790 ********************************************************************/
1792 static BOOL
srv_io_srv_sess_info_1(const char *desc
, SRV_SESS_INFO_1
*ss1
, prs_struct
*ps
, int depth
)
1797 prs_debug(ps
, depth
, desc
, "srv_io_srv_sess_info_1");
1803 if(!prs_uint32("num_entries_read", ps
, depth
, &ss1
->num_entries_read
))
1805 if(!prs_uint32("ptr_sess_info", ps
, depth
, &ss1
->ptr_sess_info
))
1808 if (ss1
->ptr_sess_info
!= 0) {
1810 uint32 num_entries
= ss1
->num_entries_read
;
1812 if (num_entries
> MAX_SESS_ENTRIES
) {
1813 num_entries
= MAX_SESS_ENTRIES
; /* report this! */
1816 if(!prs_uint32("num_entries_read2", ps
, depth
, &ss1
->num_entries_read2
))
1819 SMB_ASSERT_ARRAY(ss1
->info_1
, num_entries
);
1821 for (i
= 0; i
< num_entries
; i
++) {
1822 if(!srv_io_sess_info1("", &ss1
->info_1
[i
], ps
, depth
))
1826 for (i
= 0; i
< num_entries
; i
++) {
1827 if(!srv_io_sess_info1_str("", &ss1
->info_1_str
[i
], ps
, depth
))
1838 /*******************************************************************
1839 Reads or writes a structure.
1840 ********************************************************************/
1842 static BOOL
srv_io_srv_sess_ctr(const char *desc
, SRV_SESS_INFO_CTR
**pp_ctr
, prs_struct
*ps
, int depth
)
1844 SRV_SESS_INFO_CTR
*ctr
= *pp_ctr
;
1846 prs_debug(ps
, depth
, desc
, "srv_io_srv_sess_ctr");
1849 if(UNMARSHALLING(ps
)) {
1850 ctr
= *pp_ctr
= PRS_ALLOC_MEM(ps
, SRV_SESS_INFO_CTR
, 1);
1861 if(!prs_uint32("switch_value", ps
, depth
, &ctr
->switch_value
))
1863 if(!prs_uint32("ptr_sess_ctr", ps
, depth
, &ctr
->ptr_sess_ctr
))
1866 if (ctr
->ptr_sess_ctr
!= 0) {
1867 switch (ctr
->switch_value
) {
1869 if(!srv_io_srv_sess_info_0("", &ctr
->sess
.info0
, ps
, depth
))
1873 if(!srv_io_srv_sess_info_1("", &ctr
->sess
.info1
, ps
, depth
))
1877 DEBUG(5,("%s no session info at switch_value %d\n",
1878 tab_depth(depth
), ctr
->switch_value
));
1886 /*******************************************************************
1887 Inits a SRV_Q_NET_SESS_ENUM structure.
1888 ********************************************************************/
1890 void init_srv_q_net_sess_enum(SRV_Q_NET_SESS_ENUM
*q_n
,
1891 const char *srv_name
, const char *qual_name
,
1892 const char *user_name
, uint32 sess_level
,
1893 SRV_SESS_INFO_CTR
*ctr
, uint32 preferred_len
,
1898 DEBUG(5,("init_q_net_sess_enum\n"));
1900 init_buf_unistr2(&q_n
->uni_srv_name
, &q_n
->ptr_srv_name
, srv_name
);
1901 init_buf_unistr2(&q_n
->uni_qual_name
, &q_n
->ptr_qual_name
, qual_name
);
1902 init_buf_unistr2(&q_n
->uni_user_name
, &q_n
->ptr_user_name
, user_name
);
1904 q_n
->sess_level
= sess_level
;
1905 q_n
->preferred_len
= preferred_len
;
1907 memcpy(&q_n
->enum_hnd
, hnd
, sizeof(*hnd
));
1910 /*******************************************************************
1911 Reads or writes a structure.
1912 ********************************************************************/
1914 BOOL
srv_io_q_net_sess_enum(const char *desc
, SRV_Q_NET_SESS_ENUM
*q_n
, prs_struct
*ps
, int depth
)
1919 prs_debug(ps
, depth
, desc
, "srv_io_q_net_sess_enum");
1925 if(!prs_uint32("ptr_srv_name", ps
, depth
, &q_n
->ptr_srv_name
))
1927 if(!smb_io_unistr2("", &q_n
->uni_srv_name
, True
, ps
, depth
))
1933 if(!prs_uint32("ptr_qual_name", ps
, depth
, &q_n
->ptr_qual_name
))
1935 if(!smb_io_unistr2("", &q_n
->uni_qual_name
, q_n
->ptr_qual_name
, ps
, depth
))
1940 if(!prs_uint32("ptr_user_name", ps
, depth
, &q_n
->ptr_user_name
))
1942 if(!smb_io_unistr2("", &q_n
->uni_user_name
, q_n
->ptr_user_name
, ps
, depth
))
1948 if(!prs_uint32("sess_level", ps
, depth
, &q_n
->sess_level
))
1951 if (q_n
->sess_level
!= (uint32
)-1) {
1952 if(!srv_io_srv_sess_ctr("sess_ctr", &q_n
->ctr
, ps
, depth
))
1956 if(!prs_uint32("preferred_len", ps
, depth
, &q_n
->preferred_len
))
1959 if(!smb_io_enum_hnd("enum_hnd", &q_n
->enum_hnd
, ps
, depth
))
1965 /*******************************************************************
1966 Reads or writes a structure.
1967 ********************************************************************/
1969 BOOL
srv_io_r_net_sess_enum(const char *desc
, SRV_R_NET_SESS_ENUM
*r_n
, prs_struct
*ps
, int depth
)
1974 prs_debug(ps
, depth
, desc
, "srv_io_r_net_sess_enum");
1980 if(!prs_uint32("sess_level", ps
, depth
, &r_n
->sess_level
))
1983 if (r_n
->sess_level
!= (uint32
)-1) {
1984 if(!srv_io_srv_sess_ctr("sess_ctr", &r_n
->ctr
, ps
, depth
))
1988 if(!prs_uint32("total_entries", ps
, depth
, &r_n
->total_entries
))
1990 if(!smb_io_enum_hnd("enum_hnd", &r_n
->enum_hnd
, ps
, depth
))
1992 if(!prs_werror("status", ps
, depth
, &r_n
->status
))
1998 /*******************************************************************
1999 Inits a SRV_Q_NET_SESS_DEL structure.
2000 ********************************************************************/
2002 void init_srv_q_net_sess_del(SRV_Q_NET_SESS_DEL
*q_n
, const char *srv_name
,
2003 const char *cli_name
, const char *user_name
)
2005 DEBUG(5,("init_q_net_sess_enum\n"));
2007 init_buf_unistr2(&q_n
->uni_srv_name
, &q_n
->ptr_srv_name
, srv_name
);
2008 init_buf_unistr2(&q_n
->uni_cli_name
, &q_n
->ptr_cli_name
, cli_name
);
2009 init_buf_unistr2(&q_n
->uni_user_name
, &q_n
->ptr_user_name
, user_name
);
2012 /*******************************************************************
2013 Reads or writes a structure.
2014 ********************************************************************/
2016 BOOL
srv_io_q_net_sess_del(const char *desc
, SRV_Q_NET_SESS_DEL
*q_n
, prs_struct
*ps
, int depth
)
2021 prs_debug(ps
, depth
, desc
, "srv_io_q_net_sess_del");
2027 if(!prs_uint32("ptr_srv_name", ps
, depth
, &q_n
->ptr_srv_name
))
2029 if(!smb_io_unistr2("", &q_n
->uni_srv_name
, True
, ps
, depth
))
2035 if(!prs_uint32("ptr_cli_name", ps
, depth
, &q_n
->ptr_cli_name
))
2037 if(!smb_io_unistr2("", &q_n
->uni_cli_name
, q_n
->ptr_cli_name
, ps
, depth
))
2042 if(!prs_uint32("ptr_user_name", ps
, depth
, &q_n
->ptr_user_name
))
2044 if(!smb_io_unistr2("", &q_n
->uni_user_name
, q_n
->ptr_user_name
, ps
, depth
))
2050 /*******************************************************************
2051 Reads or writes a structure.
2052 ********************************************************************/
2054 BOOL
srv_io_r_net_sess_del(const char *desc
, SRV_R_NET_SESS_DEL
*r_n
, prs_struct
*ps
, int depth
)
2059 prs_debug(ps
, depth
, desc
, "srv_io_r_net_sess_del");
2065 if(!prs_werror("status", ps
, depth
, &r_n
->status
))
2071 /*******************************************************************
2072 Inits a CONN_INFO_0 structure
2073 ********************************************************************/
2075 void init_srv_conn_info0(CONN_INFO_0
*ss0
, uint32 id
)
2077 DEBUG(5,("init_srv_conn_info0\n"));
2082 /*******************************************************************
2083 Reads or writes a structure.
2084 ********************************************************************/
2086 static BOOL
srv_io_conn_info0(const char *desc
, CONN_INFO_0
*ss0
, prs_struct
*ps
, int depth
)
2091 prs_debug(ps
, depth
, desc
, "srv_io_conn_info0");
2097 if(!prs_uint32("id", ps
, depth
, &ss0
->id
))
2103 /*******************************************************************
2104 Reads or writes a structure.
2105 ********************************************************************/
2107 static BOOL
srv_io_srv_conn_info_0(const char *desc
, SRV_CONN_INFO_0
*ss0
, prs_struct
*ps
, int depth
)
2112 prs_debug(ps
, depth
, desc
, "srv_io_srv_conn_info_0");
2118 if(!prs_uint32("num_entries_read", ps
, depth
, &ss0
->num_entries_read
))
2120 if(!prs_uint32("ptr_conn_info", ps
, depth
, &ss0
->ptr_conn_info
))
2123 if (ss0
->ptr_conn_info
!= 0) {
2125 int num_entries
= ss0
->num_entries_read
;
2127 if (num_entries
> MAX_CONN_ENTRIES
) {
2128 num_entries
= MAX_CONN_ENTRIES
; /* report this! */
2131 if(!prs_uint32("num_entries_read2", ps
, depth
, &ss0
->num_entries_read2
))
2134 for (i
= 0; i
< num_entries
; i
++) {
2135 if(!srv_io_conn_info0("", &ss0
->info_0
[i
], ps
, depth
))
2146 /*******************************************************************
2147 Inits a CONN_INFO_1_STR structure
2148 ********************************************************************/
2150 void init_srv_conn_info1_str(CONN_INFO_1_STR
*ss1
, const char *usr_name
, const char *net_name
)
2152 DEBUG(5,("init_srv_conn_info1_str\n"));
2154 init_unistr2(&ss1
->uni_usr_name
, usr_name
, UNI_STR_TERMINATE
);
2155 init_unistr2(&ss1
->uni_net_name
, net_name
, UNI_STR_TERMINATE
);
2158 /*******************************************************************
2159 Reads or writes a structure.
2160 ********************************************************************/
2162 static BOOL
srv_io_conn_info1_str(const char *desc
, CONN_INFO_1_STR
*ss1
, prs_struct
*ps
, int depth
)
2167 prs_debug(ps
, depth
, desc
, "srv_io_conn_info1_str");
2173 if(!smb_io_unistr2("", &ss1
->uni_usr_name
, True
, ps
, depth
))
2175 if(!smb_io_unistr2("", &ss1
->uni_net_name
, True
, ps
, depth
))
2181 /*******************************************************************
2182 Inits a CONN_INFO_1 structure
2183 ********************************************************************/
2185 void init_srv_conn_info1(CONN_INFO_1
*ss1
,
2186 uint32 id
, uint32 type
,
2187 uint32 num_opens
, uint32 num_users
, uint32 open_time
,
2188 const char *usr_name
, const char *net_name
)
2190 DEBUG(5,("init_srv_conn_info1: %s %s\n", usr_name
, net_name
));
2194 ss1
->num_opens
= num_opens
;
2195 ss1
->num_users
= num_users
;
2196 ss1
->open_time
= open_time
;
2198 ss1
->ptr_usr_name
= (usr_name
!= NULL
) ? 1 : 0;
2199 ss1
->ptr_net_name
= (net_name
!= NULL
) ? 1 : 0;
2202 /*******************************************************************
2203 Reads or writes a structure.
2204 ********************************************************************/
2206 static BOOL
srv_io_conn_info1(const char *desc
, CONN_INFO_1
*ss1
, prs_struct
*ps
, int depth
)
2211 prs_debug(ps
, depth
, desc
, "srv_io_conn_info1");
2217 if(!prs_uint32("id ", ps
, depth
, &ss1
->id
))
2219 if(!prs_uint32("type ", ps
, depth
, &ss1
->type
))
2221 if(!prs_uint32("num_opens ", ps
, depth
, &ss1
->num_opens
))
2223 if(!prs_uint32("num_users ", ps
, depth
, &ss1
->num_users
))
2225 if(!prs_uint32("open_time ", ps
, depth
, &ss1
->open_time
))
2228 if(!prs_uint32("ptr_usr_name", ps
, depth
, &ss1
->ptr_usr_name
))
2230 if(!prs_uint32("ptr_net_name", ps
, depth
, &ss1
->ptr_net_name
))
2236 /*******************************************************************
2237 Reads or writes a structure.
2238 ********************************************************************/
2240 static BOOL
srv_io_srv_conn_info_1(const char *desc
, SRV_CONN_INFO_1
*ss1
, prs_struct
*ps
, int depth
)
2245 prs_debug(ps
, depth
, desc
, "srv_io_srv_conn_info_1");
2251 if(!prs_uint32("num_entries_read", ps
, depth
, &ss1
->num_entries_read
))
2253 if(!prs_uint32("ptr_conn_info", ps
, depth
, &ss1
->ptr_conn_info
))
2256 if (ss1
->ptr_conn_info
!= 0) {
2258 int num_entries
= ss1
->num_entries_read
;
2260 if (num_entries
> MAX_CONN_ENTRIES
) {
2261 num_entries
= MAX_CONN_ENTRIES
; /* report this! */
2264 if(!prs_uint32("num_entries_read2", ps
, depth
, &ss1
->num_entries_read2
))
2267 for (i
= 0; i
< num_entries
; i
++) {
2268 if(!srv_io_conn_info1("", &ss1
->info_1
[i
], ps
, depth
))
2272 for (i
= 0; i
< num_entries
; i
++) {
2273 if(!srv_io_conn_info1_str("", &ss1
->info_1_str
[i
], ps
, depth
))
2284 /*******************************************************************
2285 Reads or writes a structure.
2286 ********************************************************************/
2288 static BOOL
srv_io_srv_conn_ctr(const char *desc
, SRV_CONN_INFO_CTR
**pp_ctr
, prs_struct
*ps
, int depth
)
2290 SRV_CONN_INFO_CTR
*ctr
= *pp_ctr
;
2292 prs_debug(ps
, depth
, desc
, "srv_io_srv_conn_ctr");
2295 if (UNMARSHALLING(ps
)) {
2296 ctr
= *pp_ctr
= PRS_ALLOC_MEM(ps
, SRV_CONN_INFO_CTR
, 1);
2307 if(!prs_uint32("switch_value", ps
, depth
, &ctr
->switch_value
))
2309 if(!prs_uint32("ptr_conn_ctr", ps
, depth
, &ctr
->ptr_conn_ctr
))
2312 if (ctr
->ptr_conn_ctr
!= 0) {
2313 switch (ctr
->switch_value
) {
2315 if(!srv_io_srv_conn_info_0("", &ctr
->conn
.info0
, ps
, depth
))
2319 if(!srv_io_srv_conn_info_1("", &ctr
->conn
.info1
, ps
, depth
))
2323 DEBUG(5,("%s no connection info at switch_value %d\n",
2324 tab_depth(depth
), ctr
->switch_value
));
2332 /*******************************************************************
2333 Reads or writes a structure.
2334 ********************************************************************/
2336 void init_srv_q_net_conn_enum(SRV_Q_NET_CONN_ENUM
*q_n
,
2337 const char *srv_name
, const char *qual_name
,
2338 uint32 conn_level
, SRV_CONN_INFO_CTR
*ctr
,
2339 uint32 preferred_len
,
2342 DEBUG(5,("init_q_net_conn_enum\n"));
2346 init_buf_unistr2(&q_n
->uni_srv_name
, &q_n
->ptr_srv_name
, srv_name
);
2347 init_buf_unistr2(&q_n
->uni_qual_name
, &q_n
->ptr_qual_name
, qual_name
);
2349 q_n
->conn_level
= conn_level
;
2350 q_n
->preferred_len
= preferred_len
;
2352 memcpy(&q_n
->enum_hnd
, hnd
, sizeof(*hnd
));
2355 /*******************************************************************
2356 Reads or writes a structure.
2357 ********************************************************************/
2359 BOOL
srv_io_q_net_conn_enum(const char *desc
, SRV_Q_NET_CONN_ENUM
*q_n
, prs_struct
*ps
, int depth
)
2364 prs_debug(ps
, depth
, desc
, "srv_io_q_net_conn_enum");
2370 if(!prs_uint32("ptr_srv_name ", ps
, depth
, &q_n
->ptr_srv_name
))
2372 if(!smb_io_unistr2("", &q_n
->uni_srv_name
, q_n
->ptr_srv_name
, ps
, depth
))
2378 if(!prs_uint32("ptr_qual_name", ps
, depth
, &q_n
->ptr_qual_name
))
2380 if(!smb_io_unistr2("", &q_n
->uni_qual_name
, q_n
->ptr_qual_name
, ps
, depth
))
2386 if(!prs_uint32("conn_level", ps
, depth
, &q_n
->conn_level
))
2389 if (q_n
->conn_level
!= (uint32
)-1) {
2390 if(!srv_io_srv_conn_ctr("conn_ctr", &q_n
->ctr
, ps
, depth
))
2394 if(!prs_uint32("preferred_len", ps
, depth
, &q_n
->preferred_len
))
2397 if(!smb_io_enum_hnd("enum_hnd", &q_n
->enum_hnd
, ps
, depth
))
2403 /*******************************************************************
2404 Reads or writes a structure.
2405 ********************************************************************/
2407 BOOL
srv_io_r_net_conn_enum(const char *desc
, SRV_R_NET_CONN_ENUM
*r_n
, prs_struct
*ps
, int depth
)
2412 prs_debug(ps
, depth
, desc
, "srv_io_r_net_conn_enum");
2418 if(!prs_uint32("conn_level", ps
, depth
, &r_n
->conn_level
))
2421 if (r_n
->conn_level
!= (uint32
)-1) {
2422 if(!srv_io_srv_conn_ctr("conn_ctr", &r_n
->ctr
, ps
, depth
))
2426 if(!prs_uint32("total_entries", ps
, depth
, &r_n
->total_entries
))
2428 if(!smb_io_enum_hnd("enum_hnd", &r_n
->enum_hnd
, ps
, depth
))
2430 if(!prs_werror("status", ps
, depth
, &r_n
->status
))
2436 /*******************************************************************
2437 Inits a FILE_INFO_3_STR structure
2438 ********************************************************************/
2440 void init_srv_file_info3_str(FILE_INFO_3_STR
*fi3
, const char *user_name
, const char *path_name
)
2442 DEBUG(5,("init_srv_file_info3_str\n"));
2444 init_unistr2(&fi3
->uni_path_name
, path_name
, UNI_STR_TERMINATE
);
2445 init_unistr2(&fi3
->uni_user_name
, user_name
, UNI_STR_TERMINATE
);
2448 /*******************************************************************
2449 Reads or writes a structure.
2450 ********************************************************************/
2452 static BOOL
srv_io_file_info3_str(const char *desc
, FILE_INFO_3_STR
*sh1
, prs_struct
*ps
, int depth
)
2457 prs_debug(ps
, depth
, desc
, "srv_io_file_info3_str");
2463 if(!smb_io_unistr2("", &sh1
->uni_path_name
, True
, ps
, depth
))
2465 if(!smb_io_unistr2("", &sh1
->uni_user_name
, True
, ps
, depth
))
2471 /*******************************************************************
2472 Inits a FILE_INFO_3 structure
2473 ********************************************************************/
2475 void init_srv_file_info3(FILE_INFO_3
*fl3
,
2476 uint32 id
, uint32 perms
, uint32 num_locks
,
2477 const char *path_name
, const char *user_name
)
2479 DEBUG(5,("init_srv_file_info3: %s %s\n", path_name
, user_name
));
2483 fl3
->num_locks
= num_locks
;
2485 fl3
->ptr_path_name
= (path_name
!= NULL
) ? 1 : 0;
2486 fl3
->ptr_user_name
= (user_name
!= NULL
) ? 1 : 0;
2489 /*******************************************************************
2490 Reads or writes a structure.
2491 ********************************************************************/
2493 static BOOL
srv_io_file_info3(const char *desc
, FILE_INFO_3
*fl3
, prs_struct
*ps
, int depth
)
2498 prs_debug(ps
, depth
, desc
, "srv_io_file_info3");
2504 if(!prs_uint32("id ", ps
, depth
, &fl3
->id
))
2506 if(!prs_uint32("perms ", ps
, depth
, &fl3
->perms
))
2508 if(!prs_uint32("num_locks ", ps
, depth
, &fl3
->num_locks
))
2510 if(!prs_uint32("ptr_path_name", ps
, depth
, &fl3
->ptr_path_name
))
2512 if(!prs_uint32("ptr_user_name", ps
, depth
, &fl3
->ptr_user_name
))
2518 /*******************************************************************
2519 Reads or writes a structure.
2520 ********************************************************************/
2522 static BOOL
srv_io_srv_file_ctr(const char *desc
, SRV_FILE_INFO_CTR
*ctr
, prs_struct
*ps
, int depth
)
2527 prs_debug(ps
, depth
, desc
, "srv_io_srv_file_ctr");
2530 if (UNMARSHALLING(ps
)) {
2531 memset(ctr
, '\0', sizeof(SRV_FILE_INFO_CTR
));
2537 if(!prs_uint32("switch_value", ps
, depth
, &ctr
->switch_value
))
2539 if (ctr
->switch_value
!= 3) {
2540 DEBUG(5,("%s File info %d level not supported\n",
2541 tab_depth(depth
), ctr
->switch_value
));
2543 if(!prs_uint32("ptr_file_info", ps
, depth
, &ctr
->ptr_file_info
))
2545 if(!prs_uint32("num_entries", ps
, depth
, &ctr
->num_entries
))
2547 if(!prs_uint32("ptr_entries", ps
, depth
, &ctr
->ptr_entries
))
2549 if (ctr
->ptr_entries
== 0)
2551 if(!prs_uint32("num_entries2", ps
, depth
,
2552 &ctr
->num_entries2
))
2555 switch (ctr
->switch_value
) {
2557 SRV_FILE_INFO_3
*info3
= ctr
->file
.info3
;
2558 int num_entries
= ctr
->num_entries
;
2561 if (UNMARSHALLING(ps
)) {
2562 if (!(info3
= PRS_ALLOC_MEM(ps
, SRV_FILE_INFO_3
, num_entries
)))
2564 ctr
->file
.info3
= info3
;
2567 for (i
= 0; i
< num_entries
; i
++) {
2568 if(!srv_io_file_info3("", &ctr
->file
.info3
[i
].info_3
, ps
, depth
))
2571 for (i
= 0; i
< num_entries
; i
++) {
2572 if(!srv_io_file_info3_str("", &ctr
->file
.info3
[i
].info_3_str
, ps
, depth
))
2578 DEBUG(5,("%s no file info at switch_value %d\n",
2579 tab_depth(depth
), ctr
->switch_value
));
2586 /*******************************************************************
2587 Inits a SRV_Q_NET_FILE_ENUM structure.
2588 ********************************************************************/
2590 void init_srv_q_net_file_enum(SRV_Q_NET_FILE_ENUM
*q_n
,
2591 const char *srv_name
, const char *qual_name
,
2592 const char *user_name
,
2593 uint32 file_level
, SRV_FILE_INFO_CTR
*ctr
,
2594 uint32 preferred_len
,
2597 DEBUG(5,("init_q_net_file_enum\n"));
2599 init_buf_unistr2(&q_n
->uni_srv_name
, &q_n
->ptr_srv_name
, srv_name
);
2600 init_buf_unistr2(&q_n
->uni_qual_name
, &q_n
->ptr_qual_name
, qual_name
);
2601 init_buf_unistr2(&q_n
->uni_user_name
, &q_n
->ptr_user_name
, user_name
);
2603 q_n
->file_level
= q_n
->ctr
.switch_value
= file_level
;
2604 q_n
->preferred_len
= preferred_len
;
2605 q_n
->ctr
.ptr_file_info
= 1;
2606 q_n
->ctr
.num_entries
= 0;
2607 q_n
->ctr
.num_entries2
= 0;
2609 memcpy(&q_n
->enum_hnd
, hnd
, sizeof(*hnd
));
2612 /*******************************************************************
2613 Reads or writes a structure.
2614 ********************************************************************/
2616 BOOL
srv_io_q_net_file_enum(const char *desc
, SRV_Q_NET_FILE_ENUM
*q_n
, prs_struct
*ps
, int depth
)
2621 prs_debug(ps
, depth
, desc
, "srv_io_q_net_file_enum");
2627 if(!prs_uint32("ptr_srv_name", ps
, depth
, &q_n
->ptr_srv_name
))
2629 if(!smb_io_unistr2("", &q_n
->uni_srv_name
, True
, ps
, depth
))
2635 if(!prs_uint32("ptr_qual_name", ps
, depth
, &q_n
->ptr_qual_name
))
2637 if(!smb_io_unistr2("", &q_n
->uni_qual_name
, q_n
->ptr_qual_name
, ps
, depth
))
2643 if(!prs_uint32("ptr_user_name", ps
, depth
, &q_n
->ptr_user_name
))
2645 if(!smb_io_unistr2("", &q_n
->uni_user_name
, q_n
->ptr_user_name
, ps
, depth
))
2650 if(!prs_uint32("file_level", ps
, depth
, &q_n
->file_level
))
2653 if (q_n
->file_level
!= (uint32
)-1) {
2654 if(!srv_io_srv_file_ctr("file_ctr", &q_n
->ctr
, ps
, depth
))
2658 if(!prs_uint32("preferred_len", ps
, depth
, &q_n
->preferred_len
))
2661 if(!smb_io_enum_hnd("enum_hnd", &q_n
->enum_hnd
, ps
, depth
))
2667 /*******************************************************************
2668 Reads or writes a structure.
2669 ********************************************************************/
2671 BOOL
srv_io_r_net_file_enum(const char *desc
, SRV_R_NET_FILE_ENUM
*r_n
, prs_struct
*ps
, int depth
)
2676 prs_debug(ps
, depth
, desc
, "srv_io_r_net_file_enum");
2682 if(!prs_uint32("file_level", ps
, depth
, &r_n
->file_level
))
2685 if (r_n
->file_level
!= 0) {
2686 if(!srv_io_srv_file_ctr("file_ctr", &r_n
->ctr
, ps
, depth
))
2690 if(!prs_uint32("total_entries", ps
, depth
, &r_n
->total_entries
))
2692 if(!smb_io_enum_hnd("enum_hnd", &r_n
->enum_hnd
, ps
, depth
))
2694 if(!prs_werror("status", ps
, depth
, &r_n
->status
))
2700 /*******************************************************************
2701 Initialize a net file close request
2702 ********************************************************************/
2703 void init_srv_q_net_file_close(SRV_Q_NET_FILE_CLOSE
*q_n
, const char *server
,
2706 q_n
->ptr_srv_name
= 1;
2707 init_unistr2(&q_n
->uni_srv_name
, server
, UNI_STR_TERMINATE
);
2708 q_n
->file_id
= file_id
;
2711 /*******************************************************************
2712 Reads or writes a structure.
2713 ********************************************************************/
2714 BOOL
srv_io_q_net_file_close(const char *desc
, SRV_Q_NET_FILE_CLOSE
*q_n
,
2715 prs_struct
*ps
, int depth
)
2720 prs_debug(ps
, depth
, desc
, "srv_io_q_net_file_close");
2726 if(!prs_uint32("ptr_srv_name", ps
, depth
, &q_n
->ptr_srv_name
))
2728 if(!smb_io_unistr2("", &q_n
->uni_srv_name
, True
, ps
, depth
))
2734 if(!prs_uint32("file_id", ps
, depth
, &q_n
->file_id
))
2740 /*******************************************************************
2741 Reads or writes a structure.
2742 ********************************************************************/
2744 BOOL
srv_io_r_net_file_close(const char *desc
, SRV_R_NET_FILE_CLOSE
*q_n
,
2745 prs_struct
*ps
, int depth
)
2750 prs_debug(ps
, depth
, desc
, "srv_io_r_net_file_close");
2756 if(!prs_werror("status", ps
, depth
, &q_n
->status
))
2762 /*******************************************************************
2763 Inits a SRV_INFO_100 structure.
2764 ********************************************************************/
2766 void init_srv_info_100(SRV_INFO_100
*sv100
, uint32 platform_id
, const char *name
)
2768 DEBUG(5,("init_srv_info_100\n"));
2770 sv100
->platform_id
= platform_id
;
2771 init_buf_unistr2(&sv100
->uni_name
, &sv100
->ptr_name
, name
);
2774 /*******************************************************************
2775 Reads or writes a SRV_INFO_101 structure.
2776 ********************************************************************/
2778 static BOOL
srv_io_info_100(const char *desc
, SRV_INFO_100
*sv100
, prs_struct
*ps
, int depth
)
2783 prs_debug(ps
, depth
, desc
, "srv_io_info_100");
2789 if(!prs_uint32("platform_id ", ps
, depth
, &sv100
->platform_id
))
2791 if(!prs_uint32("ptr_name ", ps
, depth
, &sv100
->ptr_name
))
2794 if(!smb_io_unistr2("uni_name ", &sv100
->uni_name
, True
, ps
, depth
))
2801 /*******************************************************************
2802 Inits a SRV_INFO_101 structure.
2803 ********************************************************************/
2805 void init_srv_info_101(SRV_INFO_101
*sv101
, uint32 platform_id
, const char *name
,
2806 uint32 ver_major
, uint32 ver_minor
,
2807 uint32 srv_type
, const char *comment
)
2809 DEBUG(5,("init_srv_info_101\n"));
2811 sv101
->platform_id
= platform_id
;
2812 init_buf_unistr2(&sv101
->uni_name
, &sv101
->ptr_name
, name
);
2813 sv101
->ver_major
= ver_major
;
2814 sv101
->ver_minor
= ver_minor
;
2815 sv101
->srv_type
= srv_type
;
2816 init_buf_unistr2(&sv101
->uni_comment
, &sv101
->ptr_comment
, comment
);
2819 /*******************************************************************
2820 Reads or writes a SRV_INFO_101 structure.
2821 ********************************************************************/
2823 static BOOL
srv_io_info_101(const char *desc
, SRV_INFO_101
*sv101
, prs_struct
*ps
, int depth
)
2828 prs_debug(ps
, depth
, desc
, "srv_io_info_101");
2834 if(!prs_uint32("platform_id ", ps
, depth
, &sv101
->platform_id
))
2836 if(!prs_uint32("ptr_name ", ps
, depth
, &sv101
->ptr_name
))
2838 if(!prs_uint32("ver_major ", ps
, depth
, &sv101
->ver_major
))
2840 if(!prs_uint32("ver_minor ", ps
, depth
, &sv101
->ver_minor
))
2842 if(!prs_uint32("srv_type ", ps
, depth
, &sv101
->srv_type
))
2844 if(!prs_uint32("ptr_comment ", ps
, depth
, &sv101
->ptr_comment
))
2850 if(!smb_io_unistr2("uni_name ", &sv101
->uni_name
, True
, ps
, depth
))
2852 if(!smb_io_unistr2("uni_comment ", &sv101
->uni_comment
, True
, ps
, depth
))
2858 /*******************************************************************
2859 Inits a SRV_INFO_102 structure.
2860 ********************************************************************/
2862 void init_srv_info_102(SRV_INFO_102
*sv102
, uint32 platform_id
, const char *name
,
2863 const char *comment
, uint32 ver_major
, uint32 ver_minor
,
2864 uint32 srv_type
, uint32 users
, uint32 disc
, uint32 hidden
,
2865 uint32 announce
, uint32 ann_delta
, uint32 licenses
,
2866 const char *usr_path
)
2868 DEBUG(5,("init_srv_info_102\n"));
2870 sv102
->platform_id
= platform_id
;
2871 init_buf_unistr2(&sv102
->uni_name
, &sv102
->ptr_name
, name
);
2872 sv102
->ver_major
= ver_major
;
2873 sv102
->ver_minor
= ver_minor
;
2874 sv102
->srv_type
= srv_type
;
2875 init_buf_unistr2(&sv102
->uni_comment
, &sv102
->ptr_comment
, comment
);
2877 /* same as 101 up to here */
2879 sv102
->users
= users
;
2881 sv102
->hidden
= hidden
;
2882 sv102
->announce
= announce
;
2883 sv102
->ann_delta
= ann_delta
;
2884 sv102
->licenses
= licenses
;
2885 init_buf_unistr2(&sv102
->uni_usr_path
, &sv102
->ptr_usr_path
, usr_path
);
2889 /*******************************************************************
2890 Reads or writes a SRV_INFO_102 structure.
2891 ********************************************************************/
2893 static BOOL
srv_io_info_102(const char *desc
, SRV_INFO_102
*sv102
, prs_struct
*ps
, int depth
)
2898 prs_debug(ps
, depth
, desc
, "srv_io_info102");
2904 if(!prs_uint32("platform_id ", ps
, depth
, &sv102
->platform_id
))
2906 if(!prs_uint32("ptr_name ", ps
, depth
, &sv102
->ptr_name
))
2908 if(!prs_uint32("ver_major ", ps
, depth
, &sv102
->ver_major
))
2910 if(!prs_uint32("ver_minor ", ps
, depth
, &sv102
->ver_minor
))
2912 if(!prs_uint32("srv_type ", ps
, depth
, &sv102
->srv_type
))
2914 if(!prs_uint32("ptr_comment ", ps
, depth
, &sv102
->ptr_comment
))
2917 /* same as 101 up to here */
2919 if(!prs_uint32("users ", ps
, depth
, &sv102
->users
))
2921 if(!prs_uint32("disc ", ps
, depth
, &sv102
->disc
))
2923 if(!prs_uint32("hidden ", ps
, depth
, &sv102
->hidden
))
2925 if(!prs_uint32("announce ", ps
, depth
, &sv102
->announce
))
2927 if(!prs_uint32("ann_delta ", ps
, depth
, &sv102
->ann_delta
))
2929 if(!prs_uint32("licenses ", ps
, depth
, &sv102
->licenses
))
2931 if(!prs_uint32("ptr_usr_path", ps
, depth
, &sv102
->ptr_usr_path
))
2934 if(!smb_io_unistr2("uni_name ", &sv102
->uni_name
, True
, ps
, depth
))
2938 if(!smb_io_unistr2("uni_comment ", &sv102
->uni_comment
, True
, ps
, depth
))
2942 if(!smb_io_unistr2("uni_usr_path", &sv102
->uni_usr_path
, True
, ps
, depth
))
2948 /*******************************************************************
2949 Reads or writes a SRV_INFO_102 structure.
2950 ********************************************************************/
2952 static BOOL
srv_io_info_ctr(const char *desc
, SRV_INFO_CTR
*ctr
, prs_struct
*ps
, int depth
)
2957 prs_debug(ps
, depth
, desc
, "srv_io_info_ctr");
2963 if(!prs_uint32("switch_value", ps
, depth
, &ctr
->switch_value
))
2965 if(!prs_uint32("ptr_srv_ctr ", ps
, depth
, &ctr
->ptr_srv_ctr
))
2968 if (ctr
->ptr_srv_ctr
!= 0 && ctr
->switch_value
!= 0 && ctr
!= NULL
) {
2969 switch (ctr
->switch_value
) {
2971 if(!srv_io_info_100("sv100", &ctr
->srv
.sv100
, ps
, depth
))
2975 if(!srv_io_info_101("sv101", &ctr
->srv
.sv101
, ps
, depth
))
2979 if(!srv_io_info_102("sv102", &ctr
->srv
.sv102
, ps
, depth
))
2983 DEBUG(5,("%s no server info at switch_value %d\n",
2984 tab_depth(depth
), ctr
->switch_value
));
2994 /*******************************************************************
2995 Inits a SRV_Q_NET_SRV_GET_INFO structure.
2996 ********************************************************************/
2998 void init_srv_q_net_srv_get_info(SRV_Q_NET_SRV_GET_INFO
*srv
,
2999 const char *server_name
, uint32 switch_value
)
3001 DEBUG(5,("init_srv_q_net_srv_get_info\n"));
3003 init_buf_unistr2(&srv
->uni_srv_name
, &srv
->ptr_srv_name
, server_name
);
3005 srv
->switch_value
= switch_value
;
3008 /*******************************************************************
3009 Reads or writes a structure.
3010 ********************************************************************/
3012 BOOL
srv_io_q_net_srv_get_info(const char *desc
, SRV_Q_NET_SRV_GET_INFO
*q_n
, prs_struct
*ps
, int depth
)
3017 prs_debug(ps
, depth
, desc
, "srv_io_q_net_srv_get_info");
3023 if(!prs_uint32("ptr_srv_name ", ps
, depth
, &q_n
->ptr_srv_name
))
3025 if(!smb_io_unistr2("", &q_n
->uni_srv_name
, True
, ps
, depth
))
3031 if(!prs_uint32("switch_value ", ps
, depth
, &q_n
->switch_value
))
3037 /*******************************************************************
3038 Inits a SRV_R_NET_SRV_GET_INFO structure.
3039 ********************************************************************/
3041 void init_srv_r_net_srv_get_info(SRV_R_NET_SRV_GET_INFO
*srv
,
3042 uint32 switch_value
, SRV_INFO_CTR
*ctr
, WERROR status
)
3044 DEBUG(5,("init_srv_r_net_srv_get_info\n"));
3048 if (W_ERROR_IS_OK(status
)) {
3049 srv
->ctr
->switch_value
= switch_value
;
3050 srv
->ctr
->ptr_srv_ctr
= 1;
3052 srv
->ctr
->switch_value
= 0;
3053 srv
->ctr
->ptr_srv_ctr
= 0;
3056 srv
->status
= status
;
3059 /*******************************************************************
3060 Inits a SRV_R_NET_SRV_SET_INFO structure.
3061 ********************************************************************/
3063 void init_srv_r_net_srv_set_info(SRV_R_NET_SRV_SET_INFO
*srv
,
3064 uint32 switch_value
, WERROR status
)
3066 DEBUG(5,("init_srv_r_net_srv_set_info\n"));
3068 srv
->switch_value
= switch_value
;
3069 srv
->status
= status
;
3072 /*******************************************************************
3073 Reads or writes a structure.
3074 ********************************************************************/
3076 BOOL
srv_io_q_net_srv_set_info(const char *desc
, SRV_Q_NET_SRV_SET_INFO
*q_n
,
3077 prs_struct
*ps
, int depth
)
3079 prs_debug(ps
, depth
, desc
, "srv_io_q_net_srv_set_info");
3085 if(!prs_uint32("ptr_srv_name ", ps
, depth
, &q_n
->ptr_srv_name
))
3087 if(!smb_io_unistr2("", &q_n
->uni_srv_name
, True
, ps
, depth
))
3093 if(!prs_uint32("switch_value ", ps
, depth
, &q_n
->switch_value
))
3096 if (UNMARSHALLING(ps
)) {
3097 q_n
->ctr
= PRS_ALLOC_MEM(ps
, SRV_INFO_CTR
, 1);
3103 if(!srv_io_info_ctr("ctr", q_n
->ctr
, ps
, depth
))
3109 /*******************************************************************
3110 Reads or writes a structure.
3111 ********************************************************************/
3113 BOOL
srv_io_r_net_srv_get_info(const char *desc
, SRV_R_NET_SRV_GET_INFO
*r_n
, prs_struct
*ps
, int depth
)
3118 prs_debug(ps
, depth
, desc
, "srv_io_r_net_srv_get_info");
3124 if(!srv_io_info_ctr("ctr", r_n
->ctr
, ps
, depth
))
3127 if(!prs_werror("status", ps
, depth
, &r_n
->status
))
3133 /*******************************************************************
3134 Reads or writes a structure.
3135 ********************************************************************/
3137 BOOL
srv_io_r_net_srv_set_info(const char *desc
, SRV_R_NET_SRV_SET_INFO
*r_n
,
3138 prs_struct
*ps
, int depth
)
3140 prs_debug(ps
, depth
, desc
, "srv_io_r_net_srv_set_info");
3146 if(!prs_uint32("switch value ", ps
, depth
, &r_n
->switch_value
))
3149 if(!prs_werror("status", ps
, depth
, &r_n
->status
))
3155 /*******************************************************************
3156 Reads or writes a structure.
3157 ********************************************************************/
3159 BOOL
srv_io_q_net_remote_tod(const char *desc
, SRV_Q_NET_REMOTE_TOD
*q_n
, prs_struct
*ps
, int depth
)
3164 prs_debug(ps
, depth
, desc
, "srv_io_q_net_remote_tod");
3170 if(!prs_uint32("ptr_srv_name ", ps
, depth
, &q_n
->ptr_srv_name
))
3172 if(!smb_io_unistr2("", &q_n
->uni_srv_name
, True
, ps
, depth
))
3178 /*******************************************************************
3179 Reads or writes a TIME_OF_DAY_INFO structure.
3180 ********************************************************************/
3182 static BOOL
srv_io_time_of_day_info(const char *desc
, TIME_OF_DAY_INFO
*tod
, prs_struct
*ps
, int depth
)
3187 prs_debug(ps
, depth
, desc
, "srv_io_time_of_day_info");
3193 if(!prs_uint32("elapsedt ", ps
, depth
, &tod
->elapsedt
))
3195 if(!prs_uint32("msecs ", ps
, depth
, &tod
->msecs
))
3197 if(!prs_uint32("hours ", ps
, depth
, &tod
->hours
))
3199 if(!prs_uint32("mins ", ps
, depth
, &tod
->mins
))
3201 if(!prs_uint32("secs ", ps
, depth
, &tod
->secs
))
3203 if(!prs_uint32("hunds ", ps
, depth
, &tod
->hunds
))
3205 if(!prs_uint32("timezone ", ps
, depth
, &tod
->zone
))
3207 if(!prs_uint32("tintervals ", ps
, depth
, &tod
->tintervals
))
3209 if(!prs_uint32("day ", ps
, depth
, &tod
->day
))
3211 if(!prs_uint32("month ", ps
, depth
, &tod
->month
))
3213 if(!prs_uint32("year ", ps
, depth
, &tod
->year
))
3215 if(!prs_uint32("weekday ", ps
, depth
, &tod
->weekday
))
3221 /*******************************************************************
3222 Inits a TIME_OF_DAY_INFO structure.
3223 ********************************************************************/
3225 void init_time_of_day_info(TIME_OF_DAY_INFO
*tod
, uint32 elapsedt
, uint32 msecs
,
3226 uint32 hours
, uint32 mins
, uint32 secs
, uint32 hunds
,
3227 uint32 zone
, uint32 tintervals
, uint32 day
,
3228 uint32 month
, uint32 year
, uint32 weekday
)
3230 DEBUG(5,("init_time_of_day_info\n"));
3232 tod
->elapsedt
= elapsedt
;
3239 tod
->tintervals
= tintervals
;
3243 tod
->weekday
= weekday
;
3247 /*******************************************************************
3248 Reads or writes a structure.
3249 ********************************************************************/
3251 BOOL
srv_io_r_net_remote_tod(const char *desc
, SRV_R_NET_REMOTE_TOD
*r_n
, prs_struct
*ps
, int depth
)
3256 prs_debug(ps
, depth
, desc
, "srv_io_r_net_remote_tod");
3262 if(!prs_uint32("ptr_srv_tod ", ps
, depth
, &r_n
->ptr_srv_tod
))
3265 if(!srv_io_time_of_day_info("tod", r_n
->tod
, ps
, depth
))
3268 if(!prs_werror("status", ps
, depth
, &r_n
->status
))
3274 /*******************************************************************
3275 initialises a structure.
3276 ********************************************************************/
3278 BOOL
init_srv_q_net_disk_enum(SRV_Q_NET_DISK_ENUM
*q_n
,
3279 const char *srv_name
,
3280 uint32 preferred_len
,
3286 DEBUG(5,("init_srv_q_net_srv_disk_enum\n"));
3288 init_buf_unistr2(&q_n
->uni_srv_name
, &q_n
->ptr_srv_name
, srv_name
);
3290 q_n
->disk_enum_ctr
.level
= 0;
3291 q_n
->disk_enum_ctr
.disk_info_ptr
= 0;
3293 q_n
->preferred_len
= preferred_len
;
3294 memcpy(&q_n
->enum_hnd
, enum_hnd
, sizeof(*enum_hnd
));
3299 /*******************************************************************
3300 Reads or writes a structure.
3301 ********************************************************************/
3303 BOOL
srv_io_q_net_disk_enum(const char *desc
, SRV_Q_NET_DISK_ENUM
*q_n
, prs_struct
*ps
, int depth
)
3308 prs_debug(ps
, depth
, desc
, "srv_io_q_net_disk_enum");
3314 if(!prs_uint32("ptr_srv_name", ps
, depth
, &q_n
->ptr_srv_name
))
3317 if(!smb_io_unistr2("", &q_n
->uni_srv_name
, True
, ps
, depth
))
3323 if(!prs_uint32("level", ps
, depth
, &q_n
->disk_enum_ctr
.level
))
3326 if(!prs_uint32("entries_read", ps
, depth
, &q_n
->disk_enum_ctr
.entries_read
))
3329 if(!prs_uint32("buffer", ps
, depth
, &q_n
->disk_enum_ctr
.disk_info_ptr
))
3335 if(!prs_uint32("preferred_len", ps
, depth
, &q_n
->preferred_len
))
3337 if(!smb_io_enum_hnd("enum_hnd", &q_n
->enum_hnd
, ps
, depth
))
3343 /*******************************************************************
3344 Reads or writes a structure.
3345 ********************************************************************/
3347 BOOL
srv_io_r_net_disk_enum(const char *desc
, SRV_R_NET_DISK_ENUM
*r_n
, prs_struct
*ps
, int depth
)
3351 uint32 entries_read
, entries_read2
, entries_read3
;
3356 prs_debug(ps
, depth
, desc
, "srv_io_r_net_disk_enum");
3359 entries_read
= entries_read2
= entries_read3
= r_n
->disk_enum_ctr
.entries_read
;
3364 if(!prs_uint32("entries_read", ps
, depth
, &entries_read
))
3366 if(!prs_uint32("ptr_disk_info", ps
, depth
, &r_n
->disk_enum_ctr
.disk_info_ptr
))
3369 /*this may be max, unknown, actual?*/
3371 if(!prs_uint32("max_elements", ps
, depth
, &entries_read2
))
3373 if(!prs_uint32("unknown", ps
, depth
, &r_n
->disk_enum_ctr
.unknown
))
3375 if(!prs_uint32("actual_elements", ps
, depth
, &entries_read3
))
3378 r_n
->disk_enum_ctr
.entries_read
= entries_read3
;
3380 if(UNMARSHALLING(ps
)) {
3384 if(!(dinfo
= PRS_ALLOC_MEM(ps
, DISK_INFO
, entries_read3
)))
3386 r_n
->disk_enum_ctr
.disk_info
= dinfo
;
3389 for(i
=0; i
< r_n
->disk_enum_ctr
.entries_read
; i
++) {
3391 if(!prs_uint32("unknown", ps
, depth
, &r_n
->disk_enum_ctr
.disk_info
[i
].unknown
))
3394 if(!smb_io_unistr3("disk_name", &r_n
->disk_enum_ctr
.disk_info
[i
].disk_name
, ps
, depth
))
3401 if(!prs_uint32("total_entries", ps
, depth
, &r_n
->total_entries
))
3404 if(!smb_io_enum_hnd("enum_hnd", &r_n
->enum_hnd
, ps
, depth
))
3407 if(!prs_werror("status", ps
, depth
, &r_n
->status
))
3413 /*******************************************************************
3414 initialises a structure.
3415 ********************************************************************/
3417 BOOL
init_srv_q_net_name_validate(SRV_Q_NET_NAME_VALIDATE
*q_n
, const char *srv_name
, const char *share_name
, int type
)
3419 uint32 ptr_share_name
;
3421 DEBUG(5,("init_srv_q_net_name_validate\n"));
3423 init_buf_unistr2(&q_n
->uni_srv_name
, &q_n
->ptr_srv_name
, srv_name
);
3424 init_buf_unistr2(&q_n
->uni_name
, &ptr_share_name
, share_name
);
3432 /*******************************************************************
3433 Reads or writes a structure.
3434 ********************************************************************/
3436 BOOL
srv_io_q_net_name_validate(const char *desc
, SRV_Q_NET_NAME_VALIDATE
*q_n
, prs_struct
*ps
, int depth
)
3441 prs_debug(ps
, depth
, desc
, "srv_io_q_net_name_validate");
3447 if(!prs_uint32("ptr_srv_name", ps
, depth
, &q_n
->ptr_srv_name
))
3450 if(!smb_io_unistr2("", &q_n
->uni_srv_name
, True
, ps
, depth
))
3456 if(!smb_io_unistr2("", &q_n
->uni_name
, True
, ps
, depth
))
3462 if(!prs_uint32("type", ps
, depth
, &q_n
->type
))
3465 if(!prs_uint32("flags", ps
, depth
, &q_n
->flags
))
3471 /*******************************************************************
3472 Reads or writes a structure.
3473 ********************************************************************/
3475 BOOL
srv_io_r_net_name_validate(const char *desc
, SRV_R_NET_NAME_VALIDATE
*r_n
, prs_struct
*ps
, int depth
)
3480 prs_debug(ps
, depth
, desc
, "srv_io_r_net_name_validate");
3486 if(!prs_werror("status", ps
, depth
, &r_n
->status
))
3492 /*******************************************************************
3493 Reads or writes a structure.
3494 ********************************************************************/
3496 BOOL
srv_io_q_net_file_query_secdesc(const char *desc
, SRV_Q_NET_FILE_QUERY_SECDESC
*q_n
, prs_struct
*ps
, int depth
)
3501 prs_debug(ps
, depth
, desc
, "srv_io_q_net_file_query_secdesc");
3507 if(!prs_uint32("ptr_srv_name", ps
, depth
, &q_n
->ptr_srv_name
))
3510 if(!smb_io_unistr2("", &q_n
->uni_srv_name
, True
, ps
, depth
))
3516 if(!prs_uint32("ptr_qual_name", ps
, depth
, &q_n
->ptr_qual_name
))
3519 if(!smb_io_unistr2("", &q_n
->uni_qual_name
, True
, ps
, depth
))
3525 if(!smb_io_unistr2("", &q_n
->uni_file_name
, True
, ps
, depth
))
3528 if(!prs_uint32("unknown1", ps
, depth
, &q_n
->unknown1
))
3531 if(!prs_uint32("unknown2", ps
, depth
, &q_n
->unknown2
))
3534 if(!prs_uint32("unknown3", ps
, depth
, &q_n
->unknown3
))
3540 /*******************************************************************
3541 Reads or writes a structure.
3542 ********************************************************************/
3544 BOOL
srv_io_r_net_file_query_secdesc(const char *desc
, SRV_R_NET_FILE_QUERY_SECDESC
*r_n
, prs_struct
*ps
, int depth
)
3549 prs_debug(ps
, depth
, desc
, "srv_io_r_net_file_query_secdesc");
3555 if(!prs_uint32("ptr_response", ps
, depth
, &r_n
->ptr_response
))
3558 if(!prs_uint32("size_response", ps
, depth
, &r_n
->size_response
))
3561 if(!prs_uint32("ptr_secdesc", ps
, depth
, &r_n
->ptr_secdesc
))
3564 if(!prs_uint32("size_secdesc", ps
, depth
, &r_n
->size_secdesc
))
3567 if(!sec_io_desc("sec_desc", &r_n
->sec_desc
, ps
, depth
))
3573 if(!prs_werror("status", ps
, depth
, &r_n
->status
))
3579 /*******************************************************************
3580 Reads or writes a structure.
3581 ********************************************************************/
3583 BOOL
srv_io_q_net_file_set_secdesc(const char *desc
, SRV_Q_NET_FILE_SET_SECDESC
*q_n
, prs_struct
*ps
, int depth
)
3588 prs_debug(ps
, depth
, desc
, "srv_io_q_net_file_set_secdesc");
3594 if(!prs_uint32("ptr_srv_name", ps
, depth
, &q_n
->ptr_srv_name
))
3597 if(!smb_io_unistr2("", &q_n
->uni_srv_name
, True
, ps
, depth
))
3603 if(!prs_uint32("ptr_qual_name", ps
, depth
, &q_n
->ptr_qual_name
))
3606 if(!smb_io_unistr2("", &q_n
->uni_qual_name
, True
, ps
, depth
))
3612 if(!smb_io_unistr2("", &q_n
->uni_file_name
, True
, ps
, depth
))
3618 if(!prs_uint32("sec_info", ps
, depth
, &q_n
->sec_info
))
3621 if(!prs_uint32("size_set", ps
, depth
, &q_n
->size_set
))
3624 if(!prs_uint32("ptr_secdesc", ps
, depth
, &q_n
->ptr_secdesc
))
3627 if(!prs_uint32("size_secdesc", ps
, depth
, &q_n
->size_secdesc
))
3630 if(!sec_io_desc("sec_desc", &q_n
->sec_desc
, ps
, depth
))
3636 /*******************************************************************
3637 Reads or writes a structure.
3638 ********************************************************************/
3640 BOOL
srv_io_r_net_file_set_secdesc(const char *desc
, SRV_R_NET_FILE_SET_SECDESC
*r_n
, prs_struct
*ps
, int depth
)
3645 prs_debug(ps
, depth
, desc
, "srv_io_r_net_file_set_secdesc");
3651 if(!prs_werror("status", ps
, depth
, &r_n
->status
))
3657 /*******************************************************************
3659 ********************************************************************/
3661 void init_srv_q_net_remote_tod(SRV_Q_NET_REMOTE_TOD
*q_u
, const char *server
)
3663 q_u
->ptr_srv_name
= 1;
3664 init_unistr2(&q_u
->uni_srv_name
, server
, UNI_STR_TERMINATE
);