From 9ea6d163fb30b697f41282af0fab30b3b30438ec Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sven=20Sch=C3=B6ling?= Date: Fri, 17 Sep 2010 14:53:40 +0200 Subject: [PATCH] Bugfix CGI Routing - $0 wird bei MatchAlias auf dispatcher.pl nicht richtig gesetzt. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Die ursprüngliche Version zieht sich den aufgrufenen Scriptnamen aus $0. Das funktioniert aber nur in der Symlinkversion. Wenn ein Matchalias auf das Script gesetzt wird, muss der Scriptname aus %ENV geholt werden. Da das bei FCGI sowieso schon gemacht wird, das einfach zum Standard erklärt, und dafür das unrequire vereinfacht. --- SL/Dispatcher.pm | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/SL/Dispatcher.pm b/SL/Dispatcher.pm index 2c0539bb8..8bd296804 100644 --- a/SL/Dispatcher.pm +++ b/SL/Dispatcher.pm @@ -130,13 +130,9 @@ sub handle_request { my $interface = lc(shift || 'cgi'); my ($script_name, $action); - if ($interface =~ m/^(?:fastcgi|fcgid|fcgi)$/) { - $script_name = $ENV{SCRIPT_NAME}; - unrequire_bin_mozilla(); + $script_name = $ENV{SCRIPT_NAME}; - } else { - $script_name = $0; - } + unrequire_bin_mozilla($interface); $::cgi = CGI->new(''); $::locale = Locale->new($::language); @@ -205,6 +201,8 @@ sub handle_request { } sub unrequire_bin_mozilla { + return unless $_[0] =~ m/^(?:fastcgi|fcgid|fcgi)$/; + for (keys %INC) { next unless m#^bin/mozilla/#; next if /\bcommon.pl$/; -- 2.20.1