mirror of
https://github.com/apache/httpd.git
synced 2026-01-26 19:01:35 +03:00
Get IPv6 vhosts working (again ?).
There were a couple of bogus IPv4-specific comparisons which prevented the data structures from being built correctly in ap_fini_vhost_config(). One of these (INADDR_ANY) can be easily rewritten to work with IPv6. The other (DEFAULT_VHOST_ADDR) isn't necessary for IPv6. Note that this is because we don't support the various flavors of _default_ that Apache-1.3+KAME-patch supports. PR: 8118 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@92054 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
2
CHANGES
2
CHANGES
@@ -1,5 +1,7 @@
|
||||
Changes with Apache 2.0.29-dev
|
||||
|
||||
*) Fix a problem with IPv6 vhosts. PR #8118 [Jeff Trawick]
|
||||
|
||||
*) Optimization for the BNDM string-search function in
|
||||
mod_include. [Brian Pane]
|
||||
|
||||
|
||||
@@ -615,9 +615,11 @@ AP_DECLARE(void) ap_fini_vhost_config(apr_pool_t *p, server_rec *main_s)
|
||||
has_default_vhost_addr = 0;
|
||||
for (sar = s->addrs; sar; sar = sar->next) {
|
||||
ipaddr_chain *ic;
|
||||
char inaddr_any[16] = {0}; /* big enough to handle IPv4 or IPv6 */
|
||||
|
||||
if (sar->host_addr->sa.sin.sin_addr.s_addr == DEFAULT_VHOST_ADDR
|
||||
|| sar->host_addr->sa.sin.sin_addr.s_addr == INADDR_ANY) {
|
||||
if ((sar->host_addr->family == AF_INET &&
|
||||
sar->host_addr->sa.sin.sin_addr.s_addr == DEFAULT_VHOST_ADDR)
|
||||
|| !memcmp(sar->host_addr->ipaddr_ptr, inaddr_any, sar->host_addr->ipaddr_len)) {
|
||||
ic = find_default_server(sar->host_port);
|
||||
if (!ic || !add_name_vhost_config(p, main_s, s, sar, ic)) {
|
||||
if (ic && ic->sar->host_port != 0) {
|
||||
|
||||
Reference in New Issue
Block a user