Re: Fwd: [OT] Re: Git via a proxy server?

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

 



Sam Song wrote:
Hello,

Petr Vandrovec <petr@xxxxxxxxxx> wrote:

Date:	Mon, 27 Feb 2006 00:35:00 +0100
From:	Petr Vandrovec <petr@xxxxxxxxxx>
To:	Sergey Vlasov <vsu@xxxxxxxxxxx>
CC:	"Salyzyn, Mark" <mark_salyzyn@xxxxxxxxxxx>,
Kernel Mailing List <linux-kernel@xxxxxxxxxxxxxxx>

[snip]
I have successfully used transconnect
(http://sourceforge.net/projects/transconnect) for
tunnelling git
protocol through a HTTP proxy (squid in my case)
supporting the CONNECT method.

[snip] Note: most HTTP proxy servers allow CONNECT method to a very limited range of ports, and administrators will need to enable the git port
(9418) explicitly.


I know I'm coming kinda late, but I'm using:

export GIT_PROXY_COMMAND=/usr/local/bin/proxy-cmd.sh

and proxy-cmd.sh is just single-line command glued
from what I found available in /bin:

#! /bin/bash

(echo "CONNECT $1:$2 HTTP/1.0"; echo; cat ) | socket

proxy.ourcompany.com 3128 | (read a; read a; cat )

Replace socket's arguments 'proxy.ourcompany.com
3128' with your http proxy.  Fortunately our proxy
does not see anything wrong with git's port.
		Best regards,
			Petr Vandrovec


With above usage on GIT_PROXY_COMMAND, I still have
problem on connection with remote git repository.

I also tried setting http_proxy directly but the same
result. It's first usage of git in our network. Well, need I enable the git port 9418 at proxy server? Or did I miss sth or what?

Yes.  Try running 'socket 192.168.40.99 80', and type
CONNECT 204.152.191.37:9418 HTTP/1.0
Proxy-Authorization: Basic <yoursecret,f.e.wget -d should reveal this to you>
<empty line>

You should get back user readable diagnostics what went wrong. Yes, your admin must allow CONNECT method for target port 9418.

I use git-2006-05-14.tar.gz package on FC3.
Method I : Use GIT_PROXY_COMMAND

[root@sam u-boot]# git clone \
git://www.denx.de/git/u-boot.git u-boot-denx.git

fatal: exec failed
fetch-pack from 'git://www.denx.de/git/u-boot.git' failed.

Is $GIT_PROXY_COMMAND executable? (just in case...) Try 'strace -f git clone ...', it should tell you what's going on.

#! /bin/bash

(echo "CONNECT $1:$2 HTTP/1.0";echo;cat) | socket
<um> <pwd> 192.168.40.99 80 | (read a;read a;cat)

What is '<um>' and '<pwd>' ? socket just connects somewhere, so if you are supposed to use <username>:<pwd> to connect to your proxy, you must add Proxy-Authorization header yourself:

(echo "CONNECT $1:$2 HTTP/1.0";
 echo "Proxy-Authorization: Basic <base64encoded um:pwd>";
 echo;
 cat ) | socket 192.168.40.99 80 | (read a; read a; cat)

Best to test this is to start 'socket 192.168.40.99 80' from command line and then type these two lines above, plus one empty line. You should get back '200 OK', empty line, and then you can start communicating using git protocol - if you can do that...

Method II : Use http_proxy directly

[root@sam u-boot]# export \
http_proxy="http://<username>:<pwd>@192.168.40.99:80"
[root@sam u-boot]# git clone \ http://parisc-linux.org/git/linux-2.6.git/ parisc-2.6

As far as I can tell, http_proxy is ignored (Debian's git 1.3.2-1/cogito 0.17.2-1).
								Petr
-
: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]