summaryrefslogtreecommitdiff
path: root/src/ne_sspi.c
diff options
context:
space:
mode:
authorjoe <joe@61a7d7f5-40b7-0310-9c16-bb0ea8cb1845>2011-09-02 09:52:44 +0000
committerjoe <joe@61a7d7f5-40b7-0310-9c16-bb0ea8cb1845>2011-09-02 09:52:44 +0000
commit8eb1d1a788ecd18222d2b277cde0c8d95eb089e3 (patch)
tree25c3865ac6a13716f07b04d21b3ed8aa82181e04 /src/ne_sspi.c
parent7b8d55aa400ed4ad6ebf32837579f06a794de6ab (diff)
downloadneon-8eb1d1a788ecd18222d2b277cde0c8d95eb089e3.tar.gz
* src/ne_sspi.c (canonical_hostname): Use NE_ADDR_CANON to determine
canonical hostname. git-svn-id: http://svn.webdav.org/repos/projects/neon/trunk@1853 61a7d7f5-40b7-0310-9c16-bb0ea8cb1845
Diffstat (limited to 'src/ne_sspi.c')
-rw-r--r--src/ne_sspi.c30
1 files changed, 10 insertions, 20 deletions
diff --git a/src/ne_sspi.c b/src/ne_sspi.c
index 4b59cdc..9c67f5c 100644
--- a/src/ne_sspi.c
+++ b/src/ne_sspi.c
@@ -337,34 +337,24 @@ static int freeBuffer(SecBufferDesc * secBufferDesc)
*/
static char *canonical_hostname(const char *serverName)
{
- char *hostname;
- ne_sock_addr *addresses;
+ const char *hostname;
+ ne_sock_addr *addr;
- /* DNS resolution. It would be useful to be able to use the
- * AI_CANONNAME flag where getaddrinfo() is available, but the
- * reverse-lookup is sufficient and simpler. */
- addresses = ne_addr_resolve(serverName, 0);
- if (ne_addr_result(addresses)) {
+ addr = ne_addr_resolve(serverName, NE_ADDR_CANON);
+ if (ne_addr_result(addr) || ne_addr_canonical(addr) == NULL) {
/* Lookup failed */
char buf[256];
NE_DEBUG(NE_DBG_HTTPAUTH,
"sspi: Could not resolve IP address for `%s': %s\n",
- serverName, ne_addr_error(addresses, buf, sizeof buf));
+ serverName, ne_addr_error(addr, buf, sizeof buf));
hostname = ne_strdup(serverName);
- } else {
- char hostbuffer[256];
- const ne_inet_addr *address = ne_addr_first(addresses);
-
- if (ne_iaddr_reverse(address, hostbuffer, sizeof hostbuffer) == 0) {
- hostname = ne_strdup(hostbuffer);
- } else {
- NE_DEBUG(NE_DBG_HTTPAUTH, "sspi: Could not resolve host name"
- "from IP address for `%s'\n", serverName);
- hostname = ne_strdup(serverName);
- }
}
+ else {
+ hostname = ne_strdup(ne_addr_canonical(addr));
+ }
+
+ ne_addr_destroy(addr);
- ne_addr_destroy(addresses);
return hostname;
}