mirror of
https://github.com/samba-team/samba.git
synced 2024-12-22 13:34:15 +03:00
parent
ae6453269d
commit
9af22cd883
@ -1086,6 +1086,40 @@ static BOOL handler_openx(int instance)
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
generate open operations
|
||||
*/
|
||||
static BOOL handler_open(int instance)
|
||||
{
|
||||
union smb_open parm[NSERVERS];
|
||||
NTSTATUS status[NSERVERS];
|
||||
|
||||
parm[0].open.level = RAW_OPEN_OPEN;
|
||||
parm[0].open.in.flags = gen_bits_mask2(0xF, 0xFFFF);
|
||||
parm[0].open.in.search_attrs = gen_attrib();
|
||||
parm[0].open.in.fname = gen_fname_open(instance);
|
||||
|
||||
if (!options.use_oplocks) {
|
||||
/* mask out oplocks */
|
||||
parm[0].open.in.flags &= ~(OPENX_FLAGS_REQUEST_OPLOCK|
|
||||
OPENX_FLAGS_REQUEST_BATCH_OPLOCK);
|
||||
}
|
||||
|
||||
GEN_COPY_PARM;
|
||||
GEN_CALL(smb_raw_open(tree, current_op.mem_ctx, &parm[i]));
|
||||
|
||||
CHECK_EQUAL(open.out.attrib);
|
||||
CHECK_TIMES_EQUAL(open.out.write_time);
|
||||
CHECK_EQUAL(open.out.size);
|
||||
CHECK_EQUAL(open.out.rmode);
|
||||
|
||||
/* open creates a new file handle */
|
||||
ADD_HANDLE(parm[0].open.in.fname, open.out.fnum);
|
||||
|
||||
return True;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
generate ntcreatex operations
|
||||
*/
|
||||
@ -1820,6 +1854,7 @@ static struct {
|
||||
BOOL (*handler)(int instance);
|
||||
int count, success_count;
|
||||
} gen_ops[] = {
|
||||
{"OPEN", handler_open},
|
||||
{"OPENX", handler_openx},
|
||||
{"NTCREATEX", handler_ntcreatex},
|
||||
{"CLOSE", handler_close},
|
||||
|
Loading…
Reference in New Issue
Block a user