[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: request for proxy code review

From: Mark Benedetto King <bking_at_answerfriend.com>
Date: 2002-03-22 05:47:08 CET

On Fri, Mar 22, 2002 at 03:03:40AM +0000, Philip Martin wrote:
> 2002/03/22 02:11:43| parseHttpRequest: Unsupported method 'REPORT'
> 2002/03/22 02:11:43| clientReadRequest: FD 12 Invalid Request
>
> It looks like the Subversion proxy code works :) but that proxies will
> still be a problem :(
>

I think with a little tweaking, neon can be convinced to tunnel
through a proxy via CONNECT. It already does this for SSL
connections.

Until that tweaking is done, HTTPS should probably work fine
through your proxy (unless it also doesn't support CONNECT).
Maybe HTTPS should be turned on on svn.collab.net, in order
to increase accessibility.

--ben

Here's a patch that tries the tweaking I have in mind.
I have not tested it in any way, and it may be horribly
broken. It's definitely ill-conceived (it will totally
defeat any proxy-caching strategy). But it might work. :-)

*** ne_request.c Mon Feb 25 15:52:07 2002
--- /tmp/ne_request.c Thu Mar 21 23:42:58 2002
***************
*** 1377,1394 ****
              sess->connected = 1;
              /* FALL-THROUGH */
          case 1:
! if (sess->use_ssl && !sess->in_connect) {
                  int ret;
                  ret = proxy_tunnel(sess);
                  if (ret != NE_OK) {
                      ne_close_connection(sess);
                      return ret;
                  }
! ret = ne_negotiate_ssl(req);
! if (ret) {
! NE_DEBUG(NE_DBG_SOCKET, "Terminating connection.\n");
! sock_close(sess->socket);
! return ret;
                  }
                  sess->connected = 2;
              } else {
--- 1377,1396 ----
              sess->connected = 1;
              /* FALL-THROUGH */
          case 1:
! if ( /* sess->use_ssl && */ !sess->in_connect) {
                  int ret;
                  ret = proxy_tunnel(sess);
                  if (ret != NE_OK) {
                      ne_close_connection(sess);
                      return ret;
                  }
! if (sess->use_ssl) {
! ret = ne_negotiate_ssl(req);
! if (ret) {
! NE_DEBUG(NE_DBG_SOCKET, "Terminating connection.\n");
! sock_close(sess->socket);
! return ret;
! }
                  }
                  sess->connected = 2;
              } else {

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Fri Mar 22 05:48:51 2002

This is an archived mail posted to the Subversion Dev mailing list.