diff options
Diffstat (limited to 'source3')
-rw-r--r-- | source3/include/proto.h | 9 | ||||
-rw-r--r-- | source3/include/rpc_eventlog.h | 14 | ||||
-rw-r--r-- | source3/include/rpc_srvsvc.h | 5 | ||||
-rw-r--r-- | source3/rpc_client/cli_srvsvc.c | 8 | ||||
-rw-r--r-- | source3/rpc_parse/parse_srv.c | 13 | ||||
-rw-r--r-- | source3/rpcclient/cmd_srvsvc.c | 4 | ||||
-rw-r--r-- | source3/utils/torture.c | 4 |
7 files changed, 36 insertions, 21 deletions
diff --git a/source3/include/proto.h b/source3/include/proto.h index 5b52e5aa61..98cb20b12a 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -1968,7 +1968,7 @@ BOOL do_srv_net_srv_conn_enum(struct cli_state *cli, uint16 fnum, uint32 preferred_len, ENUM_HND *hnd); BOOL do_srv_net_srv_sess_enum(struct cli_state *cli, uint16 fnum, - char *server_name, char *qual_name, + char *server_name, char *qual_name, char *user_name, uint32 switch_value, SRV_SESS_INFO_CTR *ctr, uint32 preferred_len, ENUM_HND *hnd); @@ -1978,7 +1978,7 @@ BOOL do_srv_net_srv_share_enum(struct cli_state *cli, uint16 fnum, uint32 preferred_len, ENUM_HND *hnd); BOOL do_srv_net_srv_file_enum(struct cli_state *cli, uint16 fnum, - char *server_name, char *qual_name, + char *server_name, char *qual_name, uint32 file_id, uint32 switch_value, SRV_FILE_INFO_CTR *ctr, uint32 preferred_len, ENUM_HND *hnd); @@ -2036,7 +2036,7 @@ void at_io_r_query_job(char *desc, AT_R_QUERY_JOB *r_q, prs_struct *ps, int dept /*The following definitions come from rpc_parse/parse_eventlog.c */ -void make_eventlog_q_open(EVENTLOG_Q_OPEN *q_u, char *journal); +void make_eventlog_q_open(EVENTLOG_Q_OPEN *q_u, char *journal, char *unk); void eventlog_io_q_open(char *desc, EVENTLOG_Q_OPEN *q_u, prs_struct *ps, int depth); void eventlog_io_r_open(char *desc, EVENTLOG_R_OPEN *r_u, prs_struct *ps, int depth); void make_eventlog_q_close(EVENTLOG_Q_CLOSE *q_u, POLICY_HND *pol); @@ -2909,6 +2909,7 @@ void make_srv_sess_info1(SESS_INFO_1 *ss1, uint32 user_flags); void make_srv_q_net_sess_enum(SRV_Q_NET_SESS_ENUM *q_n, char *srv_name, char *qual_name, + char *user_name, uint32 sess_level, SRV_SESS_INFO_CTR *ctr, uint32 preferred_len, ENUM_HND *hnd); @@ -2932,7 +2933,7 @@ void make_srv_file_info3(FILE_INFO_3 *fl3, uint32 id, uint32 perms, uint32 num_locks, char *path_name, char *user_name); void make_srv_q_net_file_enum(SRV_Q_NET_FILE_ENUM *q_n, - char *srv_name, char *qual_name, + char *srv_name, char *qual_name, uint32 file_id, uint32 file_level, SRV_FILE_INFO_CTR *ctr, uint32 preferred_len, ENUM_HND *hnd); diff --git a/source3/include/rpc_eventlog.h b/source3/include/rpc_eventlog.h index cc4d9fc62d..14e5570c9b 100644 --- a/source3/include/rpc_eventlog.h +++ b/source3/include/rpc_eventlog.h @@ -72,23 +72,23 @@ typedef struct eventlog_q_open uint16 unk0; uint16 unk1; - uint16 unk2; - uint16 unk3; - uint32 ptr_source; - - UNISTR2 source; + UNIHDR hdr_source; + UNISTR2 uni_source; + + UNIHDR hdr_unk; + UNISTR2 uni_unk; - uint32 unk4; - uint32 unk5; uint32 unk6; uint32 unk7; + } EVENTLOG_Q_OPEN; typedef struct eventlog_r_open { POLICY_HND pol; uint32 status; + } EVENTLOG_R_OPEN; typedef struct eventlog_q_close diff --git a/source3/include/rpc_srvsvc.h b/source3/include/rpc_srvsvc.h index afcef4e168..4ed7761fb2 100644 --- a/source3/include/rpc_srvsvc.h +++ b/source3/include/rpc_srvsvc.h @@ -121,6 +121,9 @@ typedef struct q_net_sess_enum_info uint32 ptr_qual_name; /* pointer (to qualifier name) */ UNISTR2 uni_qual_name; /* qualifier name "\\qualifier" */ + uint32 ptr_user_name; /* pointer (to user name) */ + UNISTR2 uni_user_name; /* user name */ + uint32 sess_level; /* session level */ SRV_SESS_INFO_CTR *ctr; @@ -419,6 +422,8 @@ typedef struct q_net_file_enum_info uint32 ptr_qual_name; /* pointer (to qualifier name) */ UNISTR2 uni_qual_name; /* qualifier name "\\qualifier" */ + uint32 file_id; /* file id */ + uint32 file_level; /* file level */ SRV_FILE_INFO_CTR *ctr; diff --git a/source3/rpc_client/cli_srvsvc.c b/source3/rpc_client/cli_srvsvc.c index 70aee4e1c8..5e4af69c6a 100644 --- a/source3/rpc_client/cli_srvsvc.c +++ b/source3/rpc_client/cli_srvsvc.c @@ -112,7 +112,7 @@ BOOL do_srv_net_srv_conn_enum(struct cli_state *cli, uint16 fnum, do a server net sess enum ****************************************************************************/ BOOL do_srv_net_srv_sess_enum(struct cli_state *cli, uint16 fnum, - char *server_name, char *qual_name, + char *server_name, char *qual_name, char *user_name, uint32 switch_value, SRV_SESS_INFO_CTR *ctr, uint32 preferred_len, ENUM_HND *hnd) @@ -138,7 +138,7 @@ BOOL do_srv_net_srv_sess_enum(struct cli_state *cli, uint16 fnum, ctr->sess.info0.ptr_sess_info = 1; /* store the parameters */ - make_srv_q_net_sess_enum(&q_o, server_name, qual_name, + make_srv_q_net_sess_enum(&q_o, server_name, qual_name, user_name, switch_value, ctr, preferred_len, hnd); @@ -268,7 +268,7 @@ BOOL do_srv_net_srv_share_enum(struct cli_state *cli, uint16 fnum, do a server net file enum ****************************************************************************/ BOOL do_srv_net_srv_file_enum(struct cli_state *cli, uint16 fnum, - char *server_name, char *qual_name, + char *server_name, char *qual_name, uint32 file_id, uint32 switch_value, SRV_FILE_INFO_CTR *ctr, uint32 preferred_len, ENUM_HND *hnd) @@ -296,7 +296,7 @@ BOOL do_srv_net_srv_file_enum(struct cli_state *cli, uint16 fnum, ctr->file.info3.ptr_file_info = 1; /* store the parameters */ - make_srv_q_net_file_enum(&q_o, server_name, qual_name, + make_srv_q_net_file_enum(&q_o, server_name, qual_name, file_id, switch_value, ctr, preferred_len, hnd); diff --git a/source3/rpc_parse/parse_srv.c b/source3/rpc_parse/parse_srv.c index 1bcc961853..bf4f63dc4c 100644 --- a/source3/rpc_parse/parse_srv.c +++ b/source3/rpc_parse/parse_srv.c @@ -271,6 +271,8 @@ static void srv_io_srv_share_ctr(char *desc, SRV_SHARE_INFO_CTR *ctr, prs_struc prs_uint32("switch_value", ps, depth, &(ctr->switch_value)); prs_uint32("ptr_share_ctr", ps, depth, &(ctr->ptr_share_ctr)); + return; + if (ctr->ptr_share_ctr != 0) { switch (ctr->switch_value) @@ -628,6 +630,7 @@ reads or writes a structure. ********************************************************************/ void make_srv_q_net_sess_enum(SRV_Q_NET_SESS_ENUM *q_n, char *srv_name, char *qual_name, + char *user_name, uint32 sess_level, SRV_SESS_INFO_CTR *ctr, uint32 preferred_len, ENUM_HND *hnd) @@ -640,6 +643,7 @@ void make_srv_q_net_sess_enum(SRV_Q_NET_SESS_ENUM *q_n, make_buf_unistr2(&(q_n->uni_srv_name), &(q_n->ptr_srv_name), srv_name); make_buf_unistr2(&(q_n->uni_qual_name), &(q_n->ptr_qual_name), qual_name); + make_buf_unistr2(&(q_n->uni_user_name), &(q_n->ptr_user_name), user_name); q_n->sess_level = sess_level; q_n->preferred_len = preferred_len; @@ -666,7 +670,10 @@ void srv_io_q_net_sess_enum(char *desc, SRV_Q_NET_SESS_ENUM *q_n, prs_struct *p prs_uint32("ptr_qual_name", ps, depth, &(q_n->ptr_qual_name)); smb_io_unistr2("", &(q_n->uni_qual_name), q_n->ptr_qual_name, ps, depth); + prs_align(ps); + prs_uint32("ptr_user_name", ps, depth, &(q_n->ptr_user_name)); + smb_io_unistr2("", &(q_n->uni_user_name), q_n->ptr_user_name, ps, depth); prs_align(ps); prs_uint32("sess_level", ps, depth, &(q_n->sess_level )); @@ -1150,7 +1157,7 @@ static void srv_io_srv_file_ctr(char *desc, SRV_FILE_INFO_CTR *ctr, prs_struct reads or writes a structure. ********************************************************************/ void make_srv_q_net_file_enum(SRV_Q_NET_FILE_ENUM *q_n, - char *srv_name, char *qual_name, + char *srv_name, char *qual_name, uint32 file_id, uint32 file_level, SRV_FILE_INFO_CTR *ctr, uint32 preferred_len, ENUM_HND *hnd) @@ -1164,6 +1171,7 @@ void make_srv_q_net_file_enum(SRV_Q_NET_FILE_ENUM *q_n, make_buf_unistr2(&(q_n->uni_srv_name), &(q_n->ptr_srv_name), srv_name); make_buf_unistr2(&(q_n->uni_qual_name), &(q_n->ptr_qual_name), qual_name); + q_n->file_id = file_id; q_n->file_level = file_level; q_n->preferred_len = preferred_len; @@ -1192,7 +1200,8 @@ void srv_io_q_net_file_enum(char *desc, SRV_Q_NET_FILE_ENUM *q_n, prs_struct *p prs_align(ps); - prs_uint32("file_level", ps, depth, &(q_n->file_level )); + prs_uint32("file_id ", ps, depth, &(q_n->file_id )); + prs_uint32("file_level", ps, depth, &(q_n->file_level)); if (q_n->file_level != -1) { diff --git a/source3/rpcclient/cmd_srvsvc.c b/source3/rpcclient/cmd_srvsvc.c index 2cb741b966..477e68561c 100644 --- a/source3/rpcclient/cmd_srvsvc.c +++ b/source3/rpcclient/cmd_srvsvc.c @@ -256,7 +256,7 @@ void cmd_srv_enum_sess(struct client_info *info) /* enumerate sessions on server */ res = res ? do_srv_net_srv_sess_enum(smb_cli, nt_pipe_fnum, - dest_srv, NULL, info_level, &ctr, 0x1000, &hnd) : False; + dest_srv, NULL, NULL, info_level, &ctr, 0x1000, &hnd) : False; /* close the session */ cli_nt_session_close(smb_cli, nt_pipe_fnum); @@ -309,7 +309,7 @@ void cmd_srv_enum_files(struct client_info *info) /* enumerate files on server */ res = res ? do_srv_net_srv_file_enum(smb_cli, nt_pipe_fnum, - dest_srv, NULL, info_level, &ctr, 0x1000, &hnd) : False; + dest_srv, NULL, 0, info_level, &ctr, 0x1000, &hnd) : False; if (res) { diff --git a/source3/utils/torture.c b/source3/utils/torture.c index 3c872ea672..6dea2f2d22 100644 --- a/source3/utils/torture.c +++ b/source3/utils/torture.c @@ -1221,9 +1221,9 @@ static void create_procs(int nprocs, int numops, void (*fn)(int )) printf("host=%s share=%s user=%s myname=%s procs=%d ops=%d\n", host, share, username, myname, nprocs, numops); - create_procs(nprocs, numops, run_randomipc_nowait); -/* create_procs(nprocs, numops, run_randomipc); +/* + create_procs(nprocs, numops, run_randomipc_nowait); create_procs(nprocs, numops, run_connection); |