diff options
Diffstat (limited to 'source3/rpc_parse/parse_srv.c')
-rw-r--r-- | source3/rpc_parse/parse_srv.c | 65 |
1 files changed, 43 insertions, 22 deletions
diff --git a/source3/rpc_parse/parse_srv.c b/source3/rpc_parse/parse_srv.c index 3db3161ed5..55a0cd95e5 100644 --- a/source3/rpc_parse/parse_srv.c +++ b/source3/rpc_parse/parse_srv.c @@ -427,28 +427,6 @@ BOOL srv_io_r_net_share_enum(char *desc, SRV_R_NET_SHARE_ENUM *r_n, prs_struct * } /******************************************************************* - Frees a SRV_Q_NET_SHARE_GET_INFO structure. -********************************************************************/ - -void free_srv_q_net_share_get_info(SRV_Q_NET_SHARE_GET_INFO *q_n) -{ - if(!q_n) - return; - memset(q_n, '\0', sizeof(SRV_Q_NET_SHARE_GET_INFO)); -} - -/******************************************************************* - Frees a SRV_R_NET_SHARE_GET_INFO structure. -********************************************************************/ - -void free_srv_r_net_share_get_info(SRV_R_NET_SHARE_GET_INFO *r_n) -{ - if(!r_n) - return; - memset(r_n, '\0', sizeof(SRV_R_NET_SHARE_GET_INFO)); -} - -/******************************************************************* Reads or writes a structure. ********************************************************************/ @@ -1586,6 +1564,45 @@ BOOL srv_io_r_net_file_enum(char *desc, SRV_R_NET_FILE_ENUM *r_n, prs_struct *ps } /******************************************************************* + Inits a SRV_INFO_100 structure. + ********************************************************************/ + +void init_srv_info_100(SRV_INFO_100 *sv100, uint32 platform_id, char *name) +{ + DEBUG(5,("init_srv_info_100\n")); + + sv100->platform_id = platform_id; + init_buf_unistr2(&sv100->uni_name, &sv100->ptr_name, name); +} + +/******************************************************************* + Reads or writes a SRV_INFO_101 structure. + ********************************************************************/ + +static BOOL srv_io_info_100(char *desc, SRV_INFO_100 *sv100, prs_struct *ps, int depth) +{ + if (sv100 == NULL) + return False; + + prs_debug(ps, depth, desc, "srv_io_info_100"); + depth++; + + if(!prs_align(ps)) + return False; + + if(!prs_uint32("platform_id ", ps, depth, &sv100->platform_id)) + return False; + if(!prs_uint32("ptr_name ", ps, depth, &sv100->ptr_name)) + return False; + + if(!smb_io_unistr2("uni_name ", &sv100->uni_name, True, ps, depth)) + return False; + + return True; +} + + +/******************************************************************* Inits a SRV_INFO_101 structure. ********************************************************************/ @@ -1754,6 +1771,10 @@ static BOOL srv_io_info_ctr(char *desc, SRV_INFO_CTR *ctr, prs_struct *ps, int d if (ctr->ptr_srv_ctr != 0 && ctr->switch_value != 0 && ctr != NULL) { switch (ctr->switch_value) { + case 100: + if(!srv_io_info_100("sv100", &ctr->srv.sv100, ps, depth)) + return False; + break; case 101: if(!srv_io_info_101("sv101", &ctr->srv.sv101, ps, depth)) return False; |