Hi,
Was wandering home in an inebriated haze last night thinking about this...
People have been talking about ra_pipe. Someone mentioned putting a
wrapper around the xml parts of svn to make it. Someone else mentioned they
thought this would be pretty easy, but there were a few details to work out.
BUT, doesn't svn already have a pipe protocol - it's called http/webdav. We
want to replace the transport layer, not the protocol layer.
I don't know apache/neon that well. Does the following make any sense?
I believe Apache can be run using inetd (although it is deprecated?). See
<http://httpd.apache.org/docs/mod/core.html#servertype>. This will be our
version of the cvs server.
Then you need to modify neon to create an ne_session from an already open
socket.
Finally, you define a new URI type:
pipe:/rsh-cmd:user,password/host/rest/of/path/. When you get one of these
you use the supplied rsh-cmd and auth info to start up apache on the remote
host in the same way inetd used to. This gives you a connection to apache
over ssh. You make a new ne_session from your socket and the path in the
URI.
You now have a secure http connection to the remote machine. ssh is the
only aperture - this is not the same as running your own instance of apache
on an unprivileged port. You do what ra_dav currently does over the http
connection using the ne_session.
It is kinda ugly. It relies upon deprecated features in apache. It
assumes that svn can use "keep alive" stuff to do the entire transation over
one ne_session. It doesn't require defining a new wire protocol.
\x/ill :-}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Apr 18 17:40:11 2002