]> git.deb.at Git - deb/packages.git/blobdiff - lib/Packages/Dispatcher.pm
Merge commit 'origin/master' into debian-master
[deb/packages.git] / lib / Packages / Dispatcher.pm
index e2b64ad0e409db45ff486fc630825a9dc0ec01a7..bc439b98ccb4af787eedb2f0ae34cf729aa28c7d 100755 (executable)
@@ -25,6 +25,7 @@ use warnings;
 use CGI;
 use POSIX;
 use File::Basename;
+use URI;
 use URI::Escape;
 use HTML::Entities;
 use Template;
@@ -138,7 +139,7 @@ sub do_dispatch {
 
     my $what_to_do = 'show';
     my $source = 0;
-    if (my $path = $input->path_info() || $input->param('PATH_INFO')) {
+    if (my $path = $ENV{'PATH_INFO'} || $input->param('PATH_INFO')) {
        my @components = grep { $_ } map { lc $_ } split /\/+/, $path;
 
        debug( "PATH_INFO=$path components=@components", 3) if DEBUG;
@@ -332,6 +333,11 @@ Packages::CGI::init_url( $input, \%params, \%opts );
 
     $page_content{make_search_url} = sub { return &Packages::CGI::make_search_url(@_) };
     $page_content{make_url} = sub { return &Packages::CGI::make_url(@_) };
+    $page_content{extract_host} = sub { my $uri = URI->new($_[0]);
+                                        my $host = $uri->host;
+                                        $host .= ':'.$uri->port if $uri->port != $uri->default_port;
+                                        return $host;
+                                      };
     # needed to work around the limitations of the the FILTER syntax
     $page_content{html_encode} = sub { return HTML::Entities::encode_entities(@_,'<>&"') };
     $page_content{uri_escape} = sub { return URI::Escape::uri_escape(@_) };