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);
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);
/*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);
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);
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);
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
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;
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;
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)
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);
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)
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);
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)
********************************************************************/
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)
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;
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 ));
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)
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;
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)
{
/* 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);
/* 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)
{
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);