with a small number of vhosts configured, it takes ages for the server to start. the bottleneck is alloc_listener() -> apr_sockaddr_info_get() -> getaddrinfo() call with the default "0.0.0.0" address. this patch avoids the lengthy lookup time and the server fires up right away. could this be done for any hostname that is an ip address (looks_like_ip(hostname)) ? any other suggestions welcome, the current server startup time is unbearable, especially behind a slow dialup line.
--- srclib/apr/network_io/unix/sa_common.c 2001/07/23 16:05:00 1.36 +++ srclib/apr/network_io/unix/sa_common.c 2001/07/23 21:36:43 @@ -341,7 +341,12 @@ char num[8]; memset(&hints, 0, sizeof(hints)); - hints.ai_flags = AI_CANONNAME; + if (strcmp(hostname, "0.0.0.0") == 0) { + hints.ai_flags = AI_NUMERICHOST; + } + else { + hints.ai_flags = AI_CANONNAME; + } hints.ai_family = family; hints.ai_socktype = SOCK_STREAM; hints.ai_protocol = 0;