]> sjero.net Git - wget/commitdiff
[svn] Don't read more than the amount of data specified by the content-length
authorhniksic <devnull@localhost>
Mon, 8 Aug 2005 22:51:19 +0000 (15:51 -0700)
committerhniksic <devnull@localhost>
Mon, 8 Aug 2005 22:51:19 +0000 (15:51 -0700)
header.  Removed the obsolete "kill_lines" wgetrc var.

doc/wget.texi
src/ChangeLog
src/http.c
src/init.c
src/options.h

index 1f8344ee4e06eb68ff4c45871026a89c837b6f5a..cf41dc01bfd06118d39ce7248c5a9cb8955dc86a 100644 (file)
@@ -2664,12 +2664,6 @@ or @samp{-6}.
 @item input = @var{file}
 Read the @sc{url}s from @var{string}, like @samp{-i @var{file}}.
 
-@item kill_longer = on/off
-Consider data longer than specified in content-length header as invalid
-(and retry getting it).  The default behavior is to save as much data
-as there is, provided there is more than or equal to the value in
-@code{Content-Length}.
-
 @item limit_rate = @var{rate}
 Limit the download speed to no more than @var{rate} bytes per second.
 The same as @samp{--limit-rate=@var{rate}}.
index 0d54e9861f8fed3cde3ce9702b56c5bfdcdcd01c..762ad73a65d74a945b2937dfb63d0a137cc8326a 100644 (file)
@@ -1,3 +1,8 @@
+2005-08-09  Hrvoje Niksic  <hniksic@xemacs.org>
+
+       * http.c (gethttp): Don't read more than the amount of data
+       specified by the content-length header.
+
 2005-08-09  Vasil Dimov  <vd@datamax.bg>
 
        * ftp.c (getftp): Don't free RESPLINE if ftp_response returns a
index 6f298e6028b34bca1a6847118a8cb4a9b904f73a..b83be2bbda8936b96d7284d06e4772d3f250240b 100644 (file)
@@ -1950,7 +1950,10 @@ gethttp (struct url *u, struct http_stat *hs, int *dt, struct url *proxy)
 
   /* Download the request body.  */
   flags = 0;
-  if (keep_alive)
+  if (contlen != -1)
+    /* If content-length is present, read that much; otherwise, read
+       until EOF.  The HTTP spec doesn't require the server to
+       actually close the connection when it's done sending data. */
     flags |= rb_read_exactly;
   if (hs->restval > 0 && contrange == 0)
     /* If the server ignored our range request, instruct fd_read_body
@@ -2352,9 +2355,7 @@ The sizes do not match (local %s) -- retrieving.\n"),
       if ((tmr != (time_t) (-1))
          && !opt.spider
          && ((hstat.len == hstat.contlen) ||
-             ((hstat.res == 0) &&
-              ((hstat.contlen == -1) ||
-               (hstat.len >= hstat.contlen && !opt.kill_longer)))))
+             ((hstat.res == 0) && (hstat.contlen == -1))))
        {
          /* #### This code repeats in http.c and ftp.c.  Move it to a
              function!  */
@@ -2450,43 +2451,10 @@ The sizes do not match (local %s) -- retrieving.\n"),
              free_hstat (&hstat);
              continue;
            }
-         else if (!opt.kill_longer) /* meaning we got more than expected */
-           {
-             logprintf (LOG_VERBOSE,
-                        _("%s (%s) - `%s' saved [%s/%s]\n\n"),
-                        tms, tmrate, locf,
-                        number_to_static_string (hstat.len),
-                        number_to_static_string (hstat.contlen));
-             logprintf (LOG_NONVERBOSE,
-                        "%s URL:%s [%s/%s] -> \"%s\" [%d]\n",
-                        tms, u->url,
-                        number_to_static_string (hstat.len),
-                        number_to_static_string (hstat.contlen),
-                        locf, count);
-             ++opt.numurls;
-             total_downloaded_bytes += hstat.len;
-
-             /* Remember that we downloaded the file for later ".orig" code. */
-             if (*dt & ADDED_HTML_EXTENSION)
-               downloaded_file(FILE_DOWNLOADED_AND_HTML_EXTENSION_ADDED, locf);
-             else
-               downloaded_file(FILE_DOWNLOADED_NORMALLY, locf);
-             
-             free_hstat (&hstat);
-             xfree_null (dummy);
-             return RETROK;
-           }
-         else                  /* the same, but not accepted */
-           {
-             logprintf (LOG_VERBOSE,
-                        _("%s (%s) - Connection closed at byte %s/%s. "),
-                        tms, tmrate,
-                        number_to_static_string (hstat.len),
-                        number_to_static_string (hstat.contlen));
-             printwhat (count, opt.ntry);
-             free_hstat (&hstat);
-             continue;
-           }
+         else
+           /* Getting here would mean reading more data than
+              requested with content-length, which we never do.  */
+           abort ();
        }
       else                     /* now hstat.res can only be -1 */
        {
index d2e41a946005dc3dcea64c951d720eced2699673..820f84dbd31165868ee9ab1c7be1c601ed7c98b3 100644 (file)
@@ -173,7 +173,6 @@ static struct {
 #endif
   { "input",           &opt.input_filename,    cmd_file },
   { "keepsessioncookies", &opt.keep_session_cookies, cmd_boolean },
-  { "killlonger",      &opt.kill_longer,       cmd_boolean },
   { "limitrate",       &opt.limit_rate,        cmd_bytes },
   { "loadcookies",     &opt.cookies_input,     cmd_file },
   { "logfile",         &opt.lfilename,         cmd_file },
index 8d57d46325e54962c47bf2c76d2c14779860c98a..c9399d3cfd9d3e37b4a61bd310f94ff4243937f0 100644 (file)
@@ -35,9 +35,6 @@ struct options
   int ntry;                    /* Number of tries per URL */
   bool retry_connrefused;      /* Treat CONNREFUSED as non-fatal. */
   bool background;             /* Whether we should work in background. */
-  bool kill_longer;            /* Do we reject messages with *more*
-                                  data than specified in
-                                  content-length? */
   bool ignore_length;          /* Do we heed content-length at all?  */
   bool recursive;              /* Are we recursive? */
   bool spanhost;                       /* Do we span across hosts in