fix for John.
authorAndrew Tridgell <tridge@samba.org>
Sat, 24 Oct 1998 08:24:11 +0000 (08:24 +0000)
committerAndrew Tridgell <tridge@samba.org>
Sat, 24 Oct 1998 08:24:11 +0000 (08:24 +0000)
don't seek unless absolutely necessary on files in do_put()
(This used to be commit 9d33d405cdbd9ae61fb68b6f5ce5f56f86cc54bb)

source3/client/client.c

index bf38684d3e820274acb31c02ac1e4c41c61955ae..efd52ca0543b073ce8fd2a18bb9bbc6a464c6dad 100644 (file)
@@ -1953,7 +1953,6 @@ static void do_put(char *rname,char *lname,file_info *finfo)
       int n = maxwrite;
       int ret;
 
       int n = maxwrite;
       int ret;
 
-      fseek(f,nread,SEEK_SET);
       if ((n = readfile(buf+4,1,n,f)) < 1)
        {
          DEBUG(0,("Error reading local file\n"));
       if ((n = readfile(buf+4,1,n,f)) < 1)
        {
          DEBUG(0,("Error reading local file\n"));
@@ -1963,13 +1962,14 @@ static void do_put(char *rname,char *lname,file_info *finfo)
       ret = smb_writefile(outbuf,fnum,nread,buf+4,n);
 
       if (n != ret) {
       ret = smb_writefile(outbuf,fnum,nread,buf+4,n);
 
       if (n != ret) {
-       if (!maxwrite) {
-         DEBUG(0,("Error writing file\n"));
-         break;
-       } else {
-         maxwrite /= 2;
-         continue;
-       }
+             if (!maxwrite) {
+                     DEBUG(0,("Error writing file\n"));
+                     break;
+             } else {
+                     fseek(f,nread,SEEK_SET);
+                     maxwrite /= 2;
+                     continue;
+             }
       }
 
       nread += n;
       }
 
       nread += n;