From b0f6e7cee48365d6b0cc9b52eeb8c151f2d86814 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Sat, 9 Sep 2006 11:45:27 +0000 Subject: [PATCH] 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. --- CHANGES | 3 +++ RELEASE-NOTES | 3 ++- lib/http_ntlm.c | 10 ++++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index 55bf264d8..ac973884b 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 65ac9c6aa..942f59f7f 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 24b89dded..7444a400c 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 -- 2.40.0