aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES3
-rw-r--r--RELEASE-NOTES3
-rw-r--r--lib/http_ntlm.c10
3 files changed, 15 insertions, 1 deletions
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