diff options
author | Jeremy Allison <jra@samba.org> | 2002-03-20 01:43:06 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2002-03-20 01:43:06 +0000 |
commit | 24ef6258a16e6b4673f1088d64b79bddcd268df5 (patch) | |
tree | 64e675410f76f93d13ee7b1b052dc6a293f52bf1 | |
parent | 00cabb2346fb11c5568b6c7a038c313ae293a0c2 (diff) | |
download | samba-24ef6258a16e6b4673f1088d64b79bddcd268df5.tar.gz samba-24ef6258a16e6b4673f1088d64b79bddcd268df5.tar.xz samba-24ef6258a16e6b4673f1088d64b79bddcd268df5.zip |
Test against W2K that we're doing large read/writes correctly (we are).
At least with 14 word writes.
Jeremy.
-rw-r--r-- | source/libsmb/clireadwrite.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/source/libsmb/clireadwrite.c b/source/libsmb/clireadwrite.c index 627bab88a52..402de726e8d 100644 --- a/source/libsmb/clireadwrite.c +++ b/source/libsmb/clireadwrite.c @@ -223,6 +223,14 @@ static BOOL cli_issue_write(struct cli_state *cli, int fnum, off_t offset, uint1 { char *p; + if (size > cli->bufsize) { + cli->outbuf = realloc(cli->outbuf, size + 1024); + cli->inbuf = realloc(cli->inbuf, size + 1024); + if (cli->outbuf == NULL || cli->inbuf == NULL) + return False; + cli->bufsize = size + 1024; + } + memset(cli->outbuf,'\0',smb_size); memset(cli->inbuf,'\0',smb_size); @@ -300,6 +308,7 @@ ssize_t cli_write(struct cli_state *cli, break; bwritten += SVAL(cli->inbuf, smb_vwv2); + bwritten += (((int)(SVAL(cli->inbuf, smb_vwv4)))>>16); } while (received < issued && cli_receive_smb(cli)) |