info-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: RFC: server->pserver proxy?


From: Gary Funck
Subject: Re: RFC: server->pserver proxy?
Date: Sun, 27 Jan 2008 14:27:42 -0800
User-agent: Mutt/1.5.17 (2007-11-01)

On 01/24/08 07:47:59, Gary Funck wrote:
> 
> Doing a little research, I noticed that pserver and
> server share the same CVS transaction protocol, except
> for the "front end" of the protocol where pserver
> authenticates and :ext: server does not.  It seemed
> to me that it might be possible to write a "server
> to pserver" protocol converter, that talks to an
> :ext:server client on side and that translates those
> requests to a pserver in a meaningful way.
> 
> To demonstrate how this might be done, I've sketched
> out the basics as I understand them.
> 
> ===
> 
> cvspsproxy - a cvs server proxy that connects to a pserver
> 
> cvspsproxy supports connections from CVS clients using
> the :ext: server protocol.  cvspsproxy will in turn connect
> to a psercer, obtaining the pserver specification by
> reading the various :ext:server specifications from stdin,
> utilizing the server protocol.  The pserver user, host,
> and password will be extracted from the ~/.cvspass file.
> This authentication information is then sent to the
> pserver.  Once authenticated cvspsproxy simply passes
> data between the client and the pserver.  This works
> because the pserver and server protocols are identical
> once the client has been authenticated.
> 
> Cvspsproxy is intended for use via an ssh connection,
> but can be used in other contexts as well.

As a rainy day project (and we've had plenty of rain),
I developed an initial implementation of cvspsproxy,
described here:
http://intrepid.com/~gary/cvspsproxy/
(with a link to download the source code).  Cvspspproxy
seems to work as expected on a limited set of test cases.

You may find the following extension to be of interest:

An extended repository syntax is supported, as illustrated
by this command:

CVS_SERVER=cvspsproxy CVS_RSH=ssh \
  cvs -d ':ext:address@hidden/address@hidden/var/cvs' \
  co module

Above, puser is a user known to the pserver executing
on cvs-host. This user need not have a user account on
that system. The CVS pserver will validate puser. This
extension makes it possible to define a single cvsuser
account on an outward-facing firewall system that serves
as a gateway for local pserver access.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]