Test against W2K that we're doing large read/writes correctly (we are).
authorJeremy Allison <jra@samba.org>
Wed, 20 Mar 2002 01:43:06 +0000 (01:43 +0000)
committerJeremy Allison <jra@samba.org>
Wed, 20 Mar 2002 01:43:06 +0000 (01:43 +0000)
At least with 14 word writes.
Jeremy.

source/libsmb/clireadwrite.c

index 627bab88a52e0b16ddb1740fbf63b9268cb36b3d..402de726e8dc06b1bc72dbcd82f441b2e907ad22 100644 (file)
@@ -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))