Commit 3f332313 authored by Stefan Fritsch's avatar Stefan Fritsch
Browse files

Reload resolv.conf on graceful restarts

PR: 50619
Submitted by: Matt Miller <m miller f5 com>, Stefan Fritsch


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1066944 13f79535-47bb-0310-9956-ffa450edef68
parent 5772498e
Loading
Loading
Loading
Loading
+3 −0
Changes for CHANGES: 3 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -2,6 +2,9 @@

Changes with Apache 2.3.11

  *) core: Reload resolv.conf on graceful restarts. PR 50619.
     [Matt Miller <m miller f5 com>, Stefan Fritsch]

  *) mod_mime: Ignore leading dots when looking for mime extensions.
     PR 50434 [Stefan Fritsch]

+5 −1
Changes for configure.in: 5 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -400,6 +400,7 @@ sys/sem.h \
sys/sdt.h
)
AC_HEADER_SYS_WAIT
AC_HEADER_RESOLV

dnl ## Check for typedefs, structures, and compiler characteristics.

@@ -416,6 +417,7 @@ LIBS="$saved_LIBS"

dnl See Comment #Spoon

AC_SEARCH_LIBS(res_init, resolv, , [AC_SEARCH_LIBS(__res_init,resolv)])
AC_CHECK_FUNCS( \
getpwnam \
getgrnam \
@@ -424,7 +426,9 @@ bindprocessor \
prctl \
timegm \
getpgid \
fopen64
fopen64 \
res_init \
__res_init
)

dnl confirm that a void pointer is large enough to store a long integer
+21 −0
Changes for server/main.c: 21 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -44,6 +44,16 @@
#include <unistd.h>
#endif

#if HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif
#if HAVE_ARPA_NAMESER_H
#include <arpa/nameser.h>
#endif
#if HAVE_RESOLV_H
#include <resolv.h>
#endif

/* WARNING: Win32 binds http_main.c dynamically to the server. Please place
 *          extern functions and global data in another appropriate module.
 *
@@ -679,6 +689,17 @@ int main(int argc, const char * const argv[])
        apr_pool_clear(pconf);
        ap_clear_auth_internal();

/* glibc has __res_init that is #defined to res_init */
#if HAVE_RES_INIT || HAVE___RES_INIT
        /*
         * resolv.conf may have changed, so this will read/reread it.
         */
        if (res_init() == -1) {
            ap_log_error(APLOG_MARK, APLOG_WARNING, 0, NULL,
                         "Resolver initialization failed.");
        }
#endif

        for (mod = ap_prelinked_modules; *mod != NULL; mod++) {
            ap_register_hooks(*mod, pconf);
        }