RE: FW: git via http protocol _and_ a proxy using NTLM authentication -- git 1.5.4.2 & curl 7.18.0
From: <hidden>
Date: 2016-06-15 22:44:17
Ken Fuchs wrote:quoted
+ curl_easy_setopt(result, CURLOPT_PROXYAUTH,(long)CURLAUTH_NTLM);quoted
+ curl_easy_setopt(result, CURLOPT_PROXYUSERPWD, + "<user-id>:<password>");
Daniel Stenberg wrote:
First, you should rather allow any auth and not just the specific one you want. Then, the userid and password is probably better passed in embedded in the proxy URL as that's given on the command line/environment already. Or as separate arguments.
Agreed. (I'd just like to get it working first.)
quoted
It seems that git fetch (via HTLM proxy) works untilquoted
fatal: Couldn't find remote ref HEADWell, the CURLOPT_PROXY is set in transport.c as well which your patch didn't address.
Thanks, I just did a similar patch to transport.c:
$ diff -u ../git-1.5.4.2/transport.c.orig \
../git-1.5.4.2/transport.c@@ -456,7 +456,8 @@ if (transport->remote->http_proxy) curl_easy_setopt(slot->curl, CURLOPT_PROXY, transport->remote->http_proxy); - + curl_easy_setopt(slot->curl, CURLOPT_PROXYAUTH,
(long)CURLAUTH_NTLM);
+ curl_easy_setopt(slot->curl, CURLOPT_PROXYUSERPWD,
"<user-id>:<password>");
if (start_active_slot(slot)) {
run_active_slot(slot);
if (results.curl_result != CURLE_OK) {
$
If that's the case, I figure the verbose output should've shown some auth failures with the proxy?
No, actually the last 2 lines of debug output (unchanged) is:
* Connection #0 to host <proxy domain> left intact
fatal: Couldn't find remote ref HEAD
So, the proxy communication via NTLM authentication seems to be working.
The patch to transport.c did not change anything as far as I can see.
The fatal error is from remote.c. Perhaps, it also requires some
changes.
--
Example of curl (sans git) working via an NTLM proxy:
$ curl --proxy-ntlm --proxy-user <user-id> \
--proxy <proxy-domain>:<proxy-port> http://slashdot.org/
Enter proxy password for user '<user-id>': <non-echoed password>
<HTML of /. home page>
Thus, it seems that git could be modified to work via HTLM
authentication, but my simple changes to http.c and transport.c
above are probably not sufficient.
Suggestions are most welcome.
Thanks,
Ken Fuchs