aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2006-09-09 11:45:27 +0000
committerDaniel Stenberg <daniel@haxx.se>2006-09-09 11:45:27 +0000
commitb0f6e7cee48365d6b0cc9b52eeb8c151f2d86814 (patch)
tree27db0cdd266a567acb8ca9f65d87bfcd29d51b79
parented72d4e104cb7bf5b279b21550bf20c420819534 (diff)
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.
-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