Author: sparky
Date: Sat Jun 26 19:05:39 2010
New Revision: 11594

Modified:
   toys/rsget.pl/Direct/HTTP
Log:
- added "file not found" detection (HTTP 404)
- fixed content-type detection
- improved filename detection in case of redirect


Modified: toys/rsget.pl/Direct/HTTP
==============================================================================
--- toys/rsget.pl/Direct/HTTP   (original)
+++ toys/rsget.pl/Direct/HTTP   Sat Jun 26 19:05:39 2010
@@ -15,7 +15,10 @@
 start:
        GET( $-{_uri}, headonly => 1 );
 
-       ! my ( $type ) = /^Content-Type:\s*(\S+?)(;.*?)\r?$/mi;
+       ERROR( "file not found" ) if /^HTTP\S+ 404/s;
+
+       my @type = /^Content-Type:\s*(\S+?)(?:;.*?)?\r?$/mig;
+       ! my $type = pop @type;
        my ( $len ) = /^Content-Length:\s*(\d+)\r?$/mi;
        $len ||= -1;
 
@@ -23,7 +26,7 @@
        ERROR( "file is a small image ($type, $len)" )
                if $type =~ m#^image/# and $len < 100 * 1024;
 
-       my ( $name ) = $-{_uri} =~ m{.*/(.*)$};
+       my ( $name ) = $-{_referer} =~ m{.*/(.*)$};
        if ( /^Content-Disposition:(.+?)\r?$/mi ) {
                $name = RSGet::Curl::content_filename( $1 );
        }
_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to