]> sjero.net Git - wget/blobdiff - tests/HTTPServer.pm
Test --auth-no-challenge, for URL- and option-specified user/pass.
[wget] / tests / HTTPServer.pm
index dbfa3ef1ce8cea7d87c2c1d140d5634b018a60b9..57b0499faa47df2c109210f6c9fb59769a457c65 100644 (file)
@@ -92,13 +92,13 @@ sub send_response {
             print $con $content;
             next;
         }
-        if ($req->header("Range")) {
+        if ($req->header("Range") && !$url_rec->{'force_code'}) {
             $req->header("Range") =~ m/bytes=(\d*)-(\d*)/;
             my $content_len = length($content);
             my $start = $1 ? $1 : 0;
             my $end = $2 ? $2 : ($content_len - 1);
             my $len = $2 ? ($2 - $start) : ($content_len - $start);
-            if ($len) {
+            if ($len > 0) {
                 $resp->header("Accept-Ranges" => "bytes");
                 $resp->header("Content-Length" => $len);
                 $resp->header("Content-Range"
@@ -144,8 +144,7 @@ sub handle_auth {
     my $authhdr = $req->header('Authorization');
 
     # Have we sent the challenge yet?
-    unless (defined $url_rec->{auth_challenged}
-        && $url_rec->{auth_challenged}) {
+    unless ($url_rec->{auth_challenged} || $url_rec->{auth_no_challenge}) {
         # Since we haven't challenged yet, we'd better not
         # have received authentication (for our testing purposes).
         if ($authhdr) {
@@ -166,6 +165,9 @@ sub handle_auth {
         # failed it.
         $code = 400;
         $msg  = "You didn't send auth after I sent challenge";
+        if ($url_rec->{auth_no_challenge}) {
+            $msg = "--auth-no-challenge but no auth sent."
+        }
     } else {
         my ($sent_method) = ($authhdr =~ /^(\S+)/g);
         unless ($sent_method eq $url_rec->{'auth_method'}) {