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.
This commit is contained in:
Daniel Stenberg 2006-09-09 11:45:27 +00:00
parent ed72d4e104
commit b0f6e7cee4
3 changed files with 15 additions and 1 deletions

View File

@ -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...

View 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)

View 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