added some comments to make the cli read code clearer
authorAndrew Tridgell <tridge@samba.org>
Fri, 22 Jun 2001 00:42:53 +0000 (00:42 +0000)
committerAndrew Tridgell <tridge@samba.org>
Fri, 22 Jun 2001 00:42:53 +0000 (00:42 +0000)
(This used to be commit bbfbe03cc6166c23c42a704b5acaa19cbdbc39ce)

source3/libsmb/clireadwrite.c

index 9ee63270dff06079919dad9c73b17b082f7ea92d..70266a2d9a8ed0336f9d7392e0722493d7d931a1 100644 (file)
@@ -55,8 +55,6 @@ size_t cli_read(struct cli_state *cli, int fnum, char *buf, off_t offset, size_t
 {
        char *p;
        int total = -1;
-       int issued=0;
-       int received=0;
 /*
  * There is a problem in this code when mpx is more than one.
  * for some reason files can get corrupted when being read.
@@ -68,12 +66,24 @@ size_t cli_read(struct cli_state *cli, int fnum, char *buf, off_t offset, size_t
 #else
        int mpx = 1;
 #endif
-       int block = (cli->max_xmit - (smb_size+32)) & ~1023;
+       int block;
        int mid;
-       int blocks = (size + (block-1)) / block;
+       int blocks;
+       /* issued is the number of readX requests we have sent so far */
+       int issued=0;
+       /* received is the number of readX replies we have received */
+       int received=0;
 
+       /* maybe its a very silly request? */
        if (size == 0) return 0;
 
+       /* set block to the maximum size we can handle in one readX,
+           rounded down to a multiple of 1024 */
+       block = (cli->max_xmit - (smb_size+32)) & ~1023;
+
+       /* work out how many readX calls we will need in total */
+       blocks = (size + (block-1)) / block;
+
        while (received < blocks) {
                int size2;