X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;f=git-daemon%2Fgit-daemon.pl;fp=git-daemon%2Fgit-daemon.pl;h=a17412f1fa9ccf28c11246d3ae71e41d27faecfe;hb=b8db4eb5d8ffd32a50e5173af7472f6a1cf56f42;hp=5458c08fcd2c77036fcf34261d900640fbbb010e;hpb=11b88dbb4e21bf4a21e611eb185b1df02d0d7379;p=userv-utils.git diff --git a/git-daemon/git-daemon.pl b/git-daemon/git-daemon.pl index 5458c08..a17412f 100755 --- a/git-daemon/git-daemon.pl +++ b/git-daemon/git-daemon.pl @@ -17,8 +17,8 @@ use POSIX; use Socket; use Sys::Syslog; -use vars qw{ %vhost_default_user %vhost_user_from_tilde - $TILDE $REPO $HOSTNAME }; +use vars qw{ $TILDE $REPO $HOSTNAME + %vhost_default_user %vhost_tilde_is_user %vhost_tilde_forbidden }; use lib '/etc/userv'; require 'git-daemon-vhosts.pl'; @@ -67,8 +67,9 @@ unless ($line =~ m{^git-upload-pack (?:~($TILDE)/)?($REPO[.]git)\0host=($HOSTNAM my ($tilde,$repo,$host) = ($1,$2,$3); my $url = $tilde ? "git://$host/~$tilde/$repo" : "git://$host/$repo"; -my $user = $vhost_user_from_tilde{$host} ? $tilde : $vhost_default_user{$host}; -fail "no user configuration for $url" unless defined $user; +fail "tilde forbidden for $url" if defined $tilde and $vhost_tilde_forbidden{$host}; +my $user = $vhost_tilde_is_user{$host} ? $tilde : $vhost_default_user{$host}; +fail "no user configured for $url" unless defined $user; syslog 'info', "$peer $user $url"; my @opts = ("-DHOST=$host", "-DREPO=$repo");