--- Common.pm.orig	Thu May 20 16:14:48 2004
+++ Common.pm	Thu May 20 16:19:37 2004
@@ -3,14 +3,15 @@
 package HTTP::Request::Common;
 
 use strict;
-use vars qw(@EXPORT @EXPORT_OK $VERSION $DYNAMIC_FILE_UPLOAD);
+use vars qw(@EXPORT @EXPORT_OK $VERSION $DYNAMIC_FILE_UPLOAD $NO_LENGTH_FILE_UPLOAD);
 
 $DYNAMIC_FILE_UPLOAD ||= 0;  # make it defined (don't know why)
+$NO_LENGTH_FILE_UPLOAD ||= 0;
 
 require Exporter;
 *import = \&Exporter::import;
 @EXPORT =qw(GET HEAD PUT POST);
[EMAIL PROTECTED] = qw($DYNAMIC_FILE_UPLOAD);
[EMAIL PROTECTED] = qw($DYNAMIC_FILE_UPLOAD $NO_LENGTH_FILE_UPLOAD);
 
 require HTTP::Request;
 use Carp();
@@ -87,12 +88,16 @@
 
     $req->header('Content-Type' => $ct);  # might be redundant
     if (defined($content)) {
-	$req->header('Content-Length' =>
-		     length($content)) unless ref($content);
+	unless ($NO_LENGTH_FILE_UPLOAD) {
+	  $req->header('Content-Length' =>
+		       length($content)) unless ref($content);
+        }
 	$req->content($content);
     }
     else {
-        $req->header('Content-Length' => 0);
+	unless ($NO_LENGTH_FILE_UPLOAD) {
+          $req->header('Content-Length' => 0);
+        }
     }
     $req;
 }
@@ -152,7 +157,10 @@
 		    local($/) = undef; # slurp files
 		    $content = <$fh>;
 		    close($fh);
-		    $h->header("Content-Length" => length($content));
+
+		    unless ($NO_LENGTH_FILE_UPLOAD) {
+		      $h->header("Content-Length" => length($content));
+		    }
 		}
 		unless ($ct) {
 		    require LWP::MediaTypes;
@@ -438,6 +446,12 @@
 applications) like this.  Also, if the file(s) change in size between
 the time the Content-Length is calculated and the time that the last
 chunk is delivered, the subroutine will C<Croak>.
+
+Alternatively, if you set the $NO_LENGTH_FILE_UPLOAD variable
+(exportable) to some TRUE value, then the Content-Length header will
+NOT be set for the file upload MIME chunk.  This allow you to
+upload files to old/broken web servers that cannot handle
+Content-Length headers.
 
 =back
 



Please consider applying this patch to the development version of
libwww-perl and including it in future versions of libwww-perl.

Thanks,

- Matt

-- 
Matt Christian  [EMAIL PROTECTED]  Learn to love and love to learn.
http://www.visi.com/~mattc/ 0111 ftp://ftp.visi.com/users/mattc/
5468652073656372657420697320131b331b2e1b311b341b311b351b39110d0a

Reply via email to