summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/include/proto.h9
-rw-r--r--source3/include/rpc_eventlog.h14
-rw-r--r--source3/include/rpc_srvsvc.h5
-rw-r--r--source3/rpc_client/cli_srvsvc.c8
-rw-r--r--source3/rpc_parse/parse_srv.c13
-rw-r--r--source3/rpcclient/cmd_srvsvc.c4
-rw-r--r--source3/utils/torture.c4
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);