diff options
author | joe <joe@61a7d7f5-40b7-0310-9c16-bb0ea8cb1845> | 2012-06-25 11:21:39 +0000 |
---|---|---|
committer | joe <joe@61a7d7f5-40b7-0310-9c16-bb0ea8cb1845> | 2012-06-25 11:21:39 +0000 |
commit | 464d32fd7232f885cc0233b3436ddb05cbfe6c9e (patch) | |
tree | 82f849386df9696232862a8496233d4e5ed036a0 /test | |
parent | bb0992cf76cf377265d9a7fe638b0c879412e2c1 (diff) | |
download | neon-464d32fd7232f885cc0233b3436ddb05cbfe6c9e.tar.gz |
* test/ssl.c (fail_ssl_request_with_error2): Fix tests with "fake" hostname
where localhost maps to multiple addresses.
git-svn-id: http://svn.webdav.org/repos/projects/neon/trunk@1886 61a7d7f5-40b7-0310-9c16-bb0ea8cb1845
Diffstat (limited to 'test')
-rw-r--r-- | test/ssl.c | 21 |
1 files changed, 17 insertions, 4 deletions
@@ -798,17 +798,30 @@ static int fail_ssl_request_with_error2(char *cert, char *key, char *cacert, int gotf = 0, ret; struct ssl_server_args args = {0}; ne_sock_addr *addr = NULL; - const ne_inet_addr *list[1]; + const ne_inet_addr **list = NULL; if (realhost) { + size_t n; + const ne_inet_addr *ia; + addr = ne_addr_resolve(realhost, 0); ONV(ne_addr_result(addr), ("fake hostname lookup failed for %s", realhost)); + + NE_DEBUG(NE_DBG_SSL, "ssl: Using fake hostname '%s'\n", realhost); + + for (n = 0, ia = ne_addr_first(addr); ia; ia = ne_addr_next(addr)) + n++; + + NE_DEBUG(NE_DBG_SSL, "ssl: Address count '%lu'\n", n); + + list = ne_calloc(n * sizeof(*list)); + + for (n = 0, ia = ne_addr_first(addr); ia; ia = ne_addr_next(addr)) + list[n++] = ia; - list[0] = ne_addr_first(addr); - - ne_set_addrlist(sess, list, 1); + ne_set_addrlist(sess, list, n); } args.cert = cert; |