Author: des
Date: Mon Nov  5 13:02:34 2012
New Revision: 242615
URL: http://svnweb.freebsd.org/changeset/base/242615

Log:
  MFH r225599: fix resume logic

Modified:
  stable/7/usr.bin/fetch/fetch.c
Directory Properties:
  stable/7/usr.bin/fetch/   (props changed)

Modified: stable/7/usr.bin/fetch/fetch.c
==============================================================================
--- stable/7/usr.bin/fetch/fetch.c      Mon Nov  5 12:58:44 2012        
(r242614)
+++ stable/7/usr.bin/fetch/fetch.c      Mon Nov  5 13:02:34 2012        
(r242615)
@@ -522,6 +522,12 @@ fetch(char *URL, const char *path)
                                    "does not match remote", path);
                                goto failure_keep;
                        }
+               } else if (url->offset > sb.st_size) {
+                       /* gap between what we asked for and what we got */
+                       warnx("%s: gap in resume mode", URL);
+                       fclose(of);
+                       of = NULL;
+                       /* picked up again later */
                } else if (us.size != -1) {
                        if (us.size == sb.st_size)
                                /* nothing to do */
@@ -551,6 +557,14 @@ fetch(char *URL, const char *path)
                                fclose(of);
                                of = NULL;
                                sb = nsb;
+                               /* picked up again later */
+                       }
+                       /* seek to where we left off */
+                       if (of != NULL && fseek(of, url->offset, SEEK_SET) != 
0) {
+                               warn("%s: fseek()", path);
+                               fclose(of);
+                               of = NULL;
+                               /* picked up again later */
                        }
                }
        } else if (m_flag && sb.st_size != -1) {
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to