]> sjero.net Git - wget/commitdiff
Returh 416 for fully-retrieved resources.
authorMicah Cowan <micah@cowan.name>
Sun, 1 Jun 2008 00:38:58 +0000 (17:38 -0700)
committerMicah Cowan <micah@cowan.name>
Sun, 1 Jun 2008 00:38:58 +0000 (17:38 -0700)
tests/ChangeLog
tests/HTTPServer.pm

index f076a2742f9d46ef76344f3b57e3c156aadf93f6..eae267077f4fb0cb55fcc7e1d8f2007f2f820920 100644 (file)
@@ -1,12 +1,19 @@
 2008-05-31  Micah Cowan  <micah@cowan.name>
 
        * Test-N-current.px: Ensure we catch failures.
+
        * Test-N-old.px: Make it test only the timestamp, and not the
        content length in addition.
+
        * Test-N-smaller.px: added.
+
        * Test-N-no-info.px: added.
+
        * run-px: Added Test-N-smaller.px, Test-N-no-info.px.
 
+       * HTTPServer.pm: Return 416 for fully-retrieved content, rather
+       than 206 with a zero content-length.
+
 2008-05-23  Micah Cowan  <micah@cowan.name>
 
        * Test--spider.px: Make test expect 0 return code.
index 97e91396dcf6e5b6f5ed0105e8cf1cd2fc1ba5ff..a307b737310cb644abb489d1132d06211d02e38f 100644 (file)
@@ -98,15 +98,25 @@ sub send_response {
             my $start = $1 ? $1 : 0;
             my $end = $2 ? $2 : ($content_len - 1);
             my $len = $2 ? ($2 - $start) : ($content_len - $start);
-            $resp->header("Accept-Ranges" => "bytes");
-            $resp->header("Content-Length" => $len);
-            $resp->header("Content-Range" => "bytes $start-$end/$content_len");
-            $resp->header("Keep-Alive" => "timeout=15, max=100");
-            $resp->header("Connection" => "Keep-Alive");
-            $con->send_basic_header(206, "Partial Content", $resp->protocol);
-            print $con $resp->headers_as_string($CRLF);
-            print $con $CRLF;
-            print $con substr($content, $start, $len);
+            if ($len) {
+                $resp->header("Accept-Ranges" => "bytes");
+                $resp->header("Content-Length" => $len);
+                $resp->header("Content-Range"
+                    => "bytes $start-$end/$content_len");
+                $resp->header("Keep-Alive" => "timeout=15, max=100");
+                $resp->header("Connection" => "Keep-Alive");
+                $con->send_basic_header(206,
+                    "Partial Content", $resp->protocol);
+                print $con $resp->headers_as_string($CRLF);
+                print $con $CRLF;
+                print $con substr($content, $start, $len);
+            } else {
+                $con->send_basic_header(416, "Range Not Satisfiable",
+                    $resp->protocol);
+                $resp->header("Keep-Alive" => "timeout=15, max=100");
+                $resp->header("Connection" => "Keep-Alive");
+                print $con $CRLF;
+            }
             next;
         }
         # fill in content