]> granicus.if.org Git - curl/commitdiff
Michele Bini fixed how the hostname is put in NTLM packages. As servers
authorDaniel Stenberg <daniel@haxx.se>
Sat, 9 Sep 2006 11:45:27 +0000 (11:45 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Sat, 9 Sep 2006 11:45:27 +0000 (11:45 +0000)
don't expect fully qualified names we need to cut them off at the first dot.

CHANGES
RELEASE-NOTES
lib/http_ntlm.c

diff --git a/CHANGES b/CHANGES
index 55bf264d864d8fc2105225c75f87d7e56db54a01..ac973884bd727341d9decb63d216f92987c110e4 100644 (file)
--- 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...
 
index 65ac9c6aa3bffbec2a33490194ef72dc4b28685d..942f59f7f566a2fb6810dbb5587b61dcfb6a3328 100644 (file)
@@ -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)
index 24b89ddeda491bd23c9fdc77e023b5bee9861ab0..7444a400c2ce34e161c6afe59c508ba46786077e 100644 (file)
@@ -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