perl-framework generates Listen directives in the order of: 'Listen 0.0.0.0:8529'
For me, this causes errors like: (48)Address already in use: make_sock: could not bind to address 0.0.0.0:8531 no listening sockets available, shutting down Unable to open logs
On Mac OS X 10.3.8 (7.8.0 via uname -r), getaddrinfo() without AI_PASSIVE can return duplicate IP addresses. This leads to the error condition that causes the failure. And, based on my reading of the docs, I'm not sure that's patently incorrect behavior on Darwin's part: that's 0.0.0.0 for both the localhost and the network card.
The issue with this is that wildcard IP addresses aren't really supposed to be explicit in Listen statements. httpd has a bunch of logic for inferring the right IP wildcards - trying to out-guess can lead to real badness. Specifically, this mucks with APR's ability to set AI_PASSIVE - which is required for use with address that we will later call bind() on - i.e. our listeners. So, Listen with an IP address should only be used for real addresses.
Manually changing httpd-test's Listen statements to just 'Listen <port>' allow me to run the tests correctly.
I don't have a clue how to change that in the Perl code though...
Thanks. -- justin