From: Sven Schöling Date: Fri, 17 Sep 2010 12:53:40 +0000 (+0200) Subject: Bugfix CGI Routing - $0 wird bei MatchAlias auf dispatcher.pl nicht richtig gesetzt. X-Git-Tag: release-2.6.2beta1~127^2~3 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=9ea6d163fb30b697f41282af0fab30b3b30438ec;p=kivitendo-erp.git Bugfix CGI Routing - $0 wird bei MatchAlias auf dispatcher.pl nicht richtig gesetzt. 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. --- 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$/;