Author: poeml Date: Wed Jan 27 00:46:55 2010 New Revision: 7944 URL: http://svn.mirrorbrain.org/viewvc/mirrorbrain?rev=7944&view=rev Log: mb scan: - make FTP authentication work (URLs in the format ftp://user:pass@hostname/path) Note that these URLs might end up in public mirror lists, if those are generated somehow. Modified: trunk/tools/scanner.pl Modified: trunk/tools/scanner.pl URL: http://svn.mirrorbrain.org/viewvc/mirrorbrain/trunk/tools/scanner.pl?rev=7944&r1=7943&r2=7944&view=diff ============================================================================== --- trunk/tools/scanner.pl (original) +++ trunk/tools/scanner.pl Wed Jan 27 00:46:55 2010 @@ -1183,9 +1183,6 @@ sub ftp_connect { my ($identifier, $url) = @_; - my $port = 21; - my $user ||= 'anonymous'; - my $pass ||= "$0@" . Net::Domain::hostfqdn; if($url =~ s{^(\w+)://}{}) { # no protocol prefix please if(lc $1 ne 'ftp') { @@ -1194,7 +1191,15 @@ } } $url =~ s{/.*$}{}; # no path components please + my $port = 21; $port = $1 if $url =~ s{:(\d+)$}{}; # port number? + + my $auth = $1 if $url =~ s{^([^:]*:[^@]*)@}{}; # auth data? + my $user = $1 if $auth =~ s{^([^:]*):}{}; + my $pass = $auth; + $user ||= 'anonymous'; + $pass ||= "$0@" . Net::Domain::hostfqdn; + my $ftp = Net::FTP->new($url, Timeout => 360, Port => $port, Debug => (($verbose||0)>2)?1:0, Passive => 1, Hash => 0); unless (defined $ftp) { warn "$identifier: ftp_connect($identifier, $url, $port) failed: $! $@\n"; _______________________________________________ mirrorbrain-commits mailing list Archive: http://mirrorbrain.org/archive/mirrorbrain-commits/ Note: To remove yourself from this list, send a mail with the content unsubscribe to the address mirrorbrain-commits-request_at_mirrorbrain.orgReceived on Tue Jan 26 2010 - 23:47:01 GMT
This archive was generated by hypermail 2.2.0 : Tue Jan 26 2010 - 23:47:11 GMT