diff --git a/CHANGES b/CHANGES index 55bf264d86..ac973884bd 100644 --- a/CHANGES +++ b/CHANGES @@ -7,6 +7,9 @@ Changelog Daniel (9 September 2006) +- Michele Bini fixed how the hostname is put in NTLM packages. As servers + don't expect fully qualified names we need to cut them off at the first dot. + - Peter Sylvester cleaned up and fixed the getsockname() uses in ftp.c. Some of them can be completetly removed though... diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 65ac9c6aa3..942f59f7f5 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -19,6 +19,7 @@ This release includes the following changes: This release includes the following bugfixes: + o (HTTP) NTLM hostname fix o getsockname usage fixes o SOCKS5 proxy connects can now time-out o SOCKS5 connects that require auth no longer segfaults when auth not given @@ -45,6 +46,6 @@ advice from friends like these: Domenico Andreoli, Armel Asselin, Gisle Vanem, Yang Tse, Andrew Biggs, Peter Sylvester, David McCreedy, Dmitriy Sergeyev, Dmitry Rechkin, - Jari Sundell, Ravi Pratap + Jari Sundell, Ravi Pratap, Michele Bini Thanks! (and sorry if I forgot to mention someone) diff --git a/lib/http_ntlm.c b/lib/http_ntlm.c index 24b89ddeda..7444a400c2 100644 --- a/lib/http_ntlm.c +++ b/lib/http_ntlm.c @@ -277,6 +277,7 @@ CURLntlm Curl_input_ntlm(struct connectdata *conn, fprintf(stderr, "\n nonce="); print_hex(stderr, ntlm->nonce, 8); fprintf(stderr, "\n****\n"); + fprintf(stderr, "**** Header %s\n ", header); }); free(buffer); @@ -708,6 +709,7 @@ CURLcode Curl_output_ntlm(struct connectdata *conn, *allocuserpwd = aprintf("%sAuthorization: NTLM %s\r\n", proxy?"Proxy-":"", base64); + DEBUG_OUT(fprintf(stderr, "**** Header %s\n ", *allocuserpwd)); free(base64); } else @@ -798,6 +800,13 @@ CURLcode Curl_output_ntlm(struct connectdata *conn, hostlen = 0; } else { + /* If the workstation if configured with a full DNS name (i.e. + * workstation.somewhere.net) gethostname() returns the fully qualified + * name, which NTLM doesn't like. + */ + char *dot = strchr(host, '.'); + if (dot) + *dot = '\0'; hostlen = strlen(host); } @@ -1011,6 +1020,7 @@ CURLcode Curl_output_ntlm(struct connectdata *conn, *allocuserpwd = aprintf("%sAuthorization: NTLM %s\r\n", proxy?"Proxy-":"", base64); + DEBUG_OUT(fprintf(stderr, "**** %s\n ", *allocuserpwd)); free(base64); } else