mirror of
https://github.com/samba-team/samba.git
synced 2025-08-04 08:22:08 +03:00
Allow trans2 and nttrans messages to be processed in oplock break state.
As noticed by Lev Iserovich <lev@ciprico.com> this seems to fix a problem
with oplock breaks and Win2k, and we are protected from problems by existing
code in trans2.c and nttrans.c
Jeremy.
(This used to be commit e3f7d6c03f
)
This commit is contained in:
@ -1636,13 +1636,15 @@ int reply_nttrans(connection_struct *conn,
|
||||
uint32 num_params_sofar, num_data_sofar;
|
||||
START_PROFILE(SMBnttrans);
|
||||
|
||||
if(global_oplock_break && (function_code == NT_TRANSACT_CREATE)) {
|
||||
if(global_oplock_break &&
|
||||
((function_code == NT_TRANSACT_CREATE) ||
|
||||
(function_code == NT_TRANSACT_RENAME))) {
|
||||
/*
|
||||
* Queue this open message as we are the process of an oplock break.
|
||||
*/
|
||||
|
||||
DEBUG(2,("reply_nttrans: queueing message NT_TRANSACT_CREATE \
|
||||
due to being in oplock break state.\n" ));
|
||||
DEBUG(2,("reply_nttrans: queueing message code 0x%x \
|
||||
due to being in oplock break state.\n", (unsigned int)function_code ));
|
||||
|
||||
push_oplock_pending_smb_message( inbuf, length);
|
||||
END_PROFILE(SMBnttrans);
|
||||
|
@ -386,7 +386,7 @@ static struct smb_message_struct
|
||||
/* 0x22 */ { "SMBsetattrE",reply_setattrE,AS_USER | NEED_WRITE },
|
||||
/* 0x23 */ { "SMBgetattrE",reply_getattrE,AS_USER },
|
||||
/* 0x24 */ { "SMBlockingX",reply_lockingX,AS_USER },
|
||||
/* 0x25 */ { "SMBtrans",reply_trans,AS_USER | CAN_IPC | QUEUE_IN_OPLOCK},
|
||||
/* 0x25 */ { "SMBtrans",reply_trans,AS_USER | CAN_IPC },
|
||||
/* 0x26 */ { "SMBtranss",NULL,AS_USER | CAN_IPC},
|
||||
/* 0x27 */ { "SMBioctl",reply_ioctl,0},
|
||||
/* 0x28 */ { "SMBioctls",NULL,AS_USER},
|
||||
@ -399,7 +399,7 @@ static struct smb_message_struct
|
||||
/* 0x2f */ { "SMBwriteX",reply_write_and_X,AS_USER | CAN_IPC },
|
||||
/* 0x30 */ { NULL, NULL, 0 },
|
||||
/* 0x31 */ { NULL, NULL, 0 },
|
||||
/* 0x32 */ { "SMBtrans2", reply_trans2, AS_USER | QUEUE_IN_OPLOCK | CAN_IPC },
|
||||
/* 0x32 */ { "SMBtrans2", reply_trans2, AS_USER | CAN_IPC },
|
||||
/* 0x33 */ { "SMBtranss2", reply_transs2, AS_USER},
|
||||
/* 0x34 */ { "SMBfindclose", reply_findclose,AS_USER},
|
||||
/* 0x35 */ { "SMBfindnclose", reply_findnclose, AS_USER},
|
||||
|
Reference in New Issue
Block a user