summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Giuseppe Bilotta <giuseppe.bilotta@gmail.com>2009-01-02 12:34:40 +0100
committerLibravatar Junio C Hamano <gitster@pobox.com>2009-01-06 19:33:24 -0800
commitfb098a942b925296e0e86b6935a4fdda872e2f99 (patch)
treeafd2d470a4fb920c6f5dcf1cc9148b340db8a1fa
parentgitweb: use href() when generating URLs in OPML (diff)
downloadtgif-fb098a942b925296e0e86b6935a4fdda872e2f99.tar.xz
gitweb: don't use pathinfo for global actions
With PATH_INFO urls, actions for the projects list (e.g. opml, project_index) were being put in the URL right after the base. The resulting URL is not properly parsed by gitweb itself, since it expects a project name as first component of the URL. Accepting global actions in use_pathinfo is not a very robust solution due to possible present and future conflicts between project names and global actions, therefore we just refuse to create PATH_INFO URLs when the project is not defined. Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com> Acked-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-xgitweb/gitweb.perl4
1 files changed, 2 insertions, 2 deletions
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index 7999bb37d3..b16400193d 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -830,7 +830,7 @@ sub href (%) {
}
my $use_pathinfo = gitweb_check_feature('pathinfo');
- if ($use_pathinfo) {
+ if ($use_pathinfo and defined $params{'project'}) {
# try to put as many parameters as possible in PATH_INFO:
# - project name
# - action
@@ -845,7 +845,7 @@ sub href (%) {
$href =~ s,/$,,;
# Then add the project name, if present
- $href .= "/".esc_url($params{'project'}) if defined $params{'project'};
+ $href .= "/".esc_url($params{'project'});
delete $params{'project'};
# since we destructively absorb parameters, we keep this