diff --git a/server/log.c b/server/log.c index 1777a646156..f745cb47586 100644 --- a/server/log.c +++ b/server/log.c @@ -25,6 +25,9 @@ #include "apr_general.h" /* for signal stuff */ #include "apr_strings.h" #include "apr_errno.h" +#if (APU_MAJOR_VERSION == 1 && APU_MINOR_VERSION >= 7) +#include "apu_errno.h" +#endif #include "apr_thread_proc.h" #include "apr_lib.h" #include "apr_signal.h" @@ -720,7 +723,19 @@ static int log_apr_status(const ap_errorlog_info *info, const char *arg, len = apr_snprintf(buf, buflen, "(os 0x%08x)", status - APR_OS_START_SYSERR); } +#if (APU_MAJOR_VERSION == 1 && APU_MINOR_VERSION >= 7) + if (status < APR_UTIL_START_STATUS) { + apr_strerror(status, buf + len, buflen - len); + } + else if (status < (APR_UTIL_START_STATUS + APR_UTIL_ERRSPACE_SIZE)) { + apu_strerror(status, buf + len, buflen - len); + } + else { + apr_strerror(status, buf + len, buflen - len); + } +#else apr_strerror(status, buf + len, buflen - len); +#endif len += strlen(buf + len); return len; }