summaryrefslogtreecommitdiffstats
path: root/source/libsmb
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>1998-10-16 00:54:16 +0000
committerJeremy Allison <jra@samba.org>1998-10-16 00:54:16 +0000
commit514e52e4b4d6c7db7ebe2265e60c77b4f18d11b3 (patch)
tree395df25b5f6c542d73c377b61ee9c7765b937c76 /source/libsmb
parentfa86770d56fd4a3e280ee4f5685e29dee2a713fb (diff)
downloadsamba-514e52e4b4d6c7db7ebe2265e60c77b4f18d11b3.tar.gz
samba-514e52e4b4d6c7db7ebe2265e60c77b4f18d11b3.tar.xz
samba-514e52e4b4d6c7db7ebe2265e60c77b4f18d11b3.zip
trans2.h: Added Thursby MAC extension.
smbd/trans2.c: Added Thursby MAX extension. libsmb/clientgen.c: Fixed smbtorture lock code. Jeremy.
Diffstat (limited to 'source/libsmb')
-rw-r--r--source/libsmb/clientgen.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/source/libsmb/clientgen.c b/source/libsmb/clientgen.c
index a6ffb57834e..3c2ad3e0eaa 100644
--- a/source/libsmb/clientgen.c
+++ b/source/libsmb/clientgen.c
@@ -1126,6 +1126,7 @@ BOOL cli_close(struct cli_state *cli, int fnum)
BOOL cli_lock(struct cli_state *cli, int fnum, uint32 offset, uint32 len, int timeout)
{
char *p;
+ int saved_timeout = cli->timeout;
bzero(cli->outbuf,smb_size);
bzero(cli->inbuf,smb_size);
@@ -1149,10 +1150,16 @@ BOOL cli_lock(struct cli_state *cli, int fnum, uint32 offset, uint32 len, int ti
SIVAL(p, 6, len);
send_smb(cli->fd,cli->outbuf);
+
+ cli->timeout = (timeout == -1) ? 0x7FFFFFFF : timeout;
+
if (!client_receive_smb(cli->fd,cli->inbuf,cli->timeout)) {
+ cli->timeout = saved_timeout;
return False;
}
+ cli->timeout = saved_timeout;
+
if (CVAL(cli->inbuf,smb_rcls) != 0) {
return False;
}
@@ -1315,6 +1322,7 @@ static void cli_issue_write(struct cli_state *cli, int fnum, off_t offset, uint1
CVAL(cli->outbuf,smb_vwv0) = 0xFF;
SSVAL(cli->outbuf,smb_vwv2,fnum);
+
SIVAL(cli->outbuf,smb_vwv3,offset);
SIVAL(cli->outbuf,smb_vwv5,IS_BITS_SET_ALL(mode, 0x0008) ? 0xFFFFFFFF : 0);
SSVAL(cli->outbuf,smb_vwv7,mode);