1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-05-06 22:46:14 +02:00

cvsserver: Handle 'cvs login'

Since this is a trivial variation of the general pserver
authentication, there is really no reason not to support
it.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Frank Lichtenheld 2007-05-27 14:33:10 +02:00 committed by Junio C Hamano
parent b3c81cff02
commit 24a97d84ad
2 changed files with 34 additions and 3 deletions

View File

@ -95,9 +95,10 @@
if (@ARGV && $ARGV[0] eq 'pserver') {
$state->{method} = 'pserver';
my $line = <STDIN>; chomp $line;
unless( $line eq 'BEGIN AUTH REQUEST') {
unless( $line =~ /^BEGIN (AUTH|VERIFICATION) REQUEST$/) {
die "E Do not understand $line - expecting BEGIN AUTH REQUEST\n";
}
my $request = $1;
$line = <STDIN>; chomp $line;
req_Root('root', $line) # reuse Root
or die "E Invalid root $line \n";
@ -109,10 +110,11 @@
}
$line = <STDIN>; chomp $line; # validate the password?
$line = <STDIN>; chomp $line;
unless ($line eq 'END AUTH REQUEST') {
die "E Do not understand $line -- expecting END AUTH REQUEST\n";
unless ($line eq "END $request REQUEST") {
die "E Do not understand $line -- expecting END $request REQUEST\n";
}
print "I LOVE YOU\n";
exit if $request eq 'VERIFICATION'; # cvs login
# and now back to our regular programme...
}

View File

@ -67,6 +67,22 @@ git
END AUTH REQUEST
EOF
cat >login-anonymous <<EOF
BEGIN VERIFICATION REQUEST
$SERVERDIR
anonymous
END VERIFICATION REQUEST
EOF
cat >login-git <<EOF
BEGIN VERIFICATION REQUEST
$SERVERDIR
git
END VERIFICATION REQUEST
EOF
test_expect_success 'pserver authentication' \
'cat request-anonymous | git-cvsserver pserver >log 2>&1 &&
tail -n1 log | grep -q "^I LOVE YOU$"'
@ -80,6 +96,19 @@ test_expect_success 'pserver authentication failure (non-anonymous user)' \
fi &&
tail -n1 log | grep -q "^I HATE YOU$"'
test_expect_success 'pserver authentication (login)' \
'cat login-anonymous | git-cvsserver pserver >log 2>&1 &&
tail -n1 log | grep -q "^I LOVE YOU$"'
test_expect_success 'pserver authentication failure (login/non-anonymous user)' \
'if cat login-git | git-cvsserver pserver >log 2>&1
then
false
else
true
fi &&
tail -n1 log | grep -q "^I HATE YOU$"'
#--------------
# CONFIG TESTS