From owner-freebsd-apache@FreeBSD.ORG Sat Aug 11 21:23:12 2012 Return-Path: Delivered-To: apache@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 1BC1E1065675; Sat, 11 Aug 2012 21:23:12 +0000 (UTC) (envelope-from curtis@occnc.com) Received: from gateway.ipv6.occnc.com (gateway.ipv6.occnc.com [IPv6:2001:470:1f07:1545::1:132]) by mx1.freebsd.org (Postfix) with ESMTP id CB5488FC08; Sat, 11 Aug 2012 21:23:11 +0000 (UTC) Received: from newharbor.ipv6.occnc.com (newharbor.ipv6.occnc.com [IPv6:2001:470:1f07:1545::1:320]) (authenticated bits=0) by gateway.ipv6.occnc.com (8.14.5/8.14.5) with ESMTP id q7BLMn3g037694; Sat, 11 Aug 2012 17:22:49 -0400 (EDT) (envelope-from curtis@occnc.com) Message-Id: <201208112122.q7BLMn3g037694@gateway.ipv6.occnc.com> To: freebsd-www@freebsd.org From: Curtis Villamizar Date: Sat, 11 Aug 2012 17:22:48 -0400 Cc: Clement Laforet , apache@freebsd.org, curtis@occnc.com Subject: patch to apache for IPv6 only httpd X-BeenThere: freebsd-apache@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: curtis@occnc.com List-Id: Support of apache-related ports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Aug 2012 21:23:12 -0000 FYI- This very simple patch prevents an assert when httpd is run on a server that has no IPv4 address. An example is a BSD jail running with only an IPv6 address on the interface (no loopback so no 127.0.0.1 address to bind to). Copy the patch below into the files directory as /usr/ports/www/apache22/files/patch-server__config.c The port maintainer is on the Cc. No bug has been reported. BTW- I noticed this a long time ago. I don't remember if I reported it or forgot to. Appologies if this is a duplicate. It is not in the httpd-2.2.22.tar.bz2 tarball, in the distinfo dated 23 July 2012. Curtis --- ./server/config.c.orig 2010-10-07 09:56:54.000000000 -0700 +++ ./server/config.c 2011-09-26 21:20:35.000000000 -0700 @@ -1979,6 +1979,9 @@ /* NOT virtual host; don't match any real network interface */ rv = apr_sockaddr_info_get(&s->addrs->host_addr, NULL, APR_INET, 0, 0, p); + if (rv != APR_SUCCESS) + rv = apr_sockaddr_info_get(&s->addrs->host_addr, + NULL, APR_UNSPEC, 0, 0, p); ap_assert(rv == APR_SUCCESS); /* otherwise: bug or no storage */ s->addrs->host_port = 0; /* matches any port */