diff options
author | Benedikt Boehm <hollow@gentoo.org> | 2007-08-28 07:52:49 +0000 |
---|---|---|
committer | Benedikt Boehm <hollow@gentoo.org> | 2007-08-28 07:52:49 +0000 |
commit | 4627eea196fa0d25a001f43fc0d5aa534840daa2 (patch) | |
tree | 5b3a164a62157a15b1651c5be44981fcd43887ec /2.0/init/apache2.initd | |
parent | fix WebDAVFS for OS X 10.4.x (diff) | |
download | apache-4627eea196fa0d25a001f43fc0d5aa534840daa2.tar.gz apache-4627eea196fa0d25a001f43fc0d5aa534840daa2.tar.bz2 apache-4627eea196fa0d25a001f43fc0d5aa534840daa2.zip |
revert backported configs; add CVE patches
Diffstat (limited to '2.0/init/apache2.initd')
-rwxr-xr-x | 2.0/init/apache2.initd | 97 |
1 files changed, 44 insertions, 53 deletions
diff --git a/2.0/init/apache2.initd b/2.0/init/apache2.initd index 3c0f15e..92aaf81 100755 --- a/2.0/init/apache2.initd +++ b/2.0/init/apache2.initd @@ -2,7 +2,37 @@ # Copyright 1999-2005 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -opts="configtest fullstatus graceful gracefulstop reload" +opts="${opts} reload configtest" + +# TODO +# Remove all the enviroment crap, as it's not needed after baselayout 1.12.0. +# There are still people using older versions, baselayout 1.12.0 was first +# stable with 2006.1, so we need to wait some time before doing that. +clear_env_except() { + + local save_env=$1 + shift; + + curr_env=$(env | sed 's/=.*//') + + for env_var in ${curr_env}; do + local save=0 + for save_var in ${save_env}; do + if [[ "${env_var}" == "${save_var}" ]]; then + save=1 + fi + done + + if [[ "${save}" == "0" ]]; then + unset_vars="${unset_vars} -u ${env_var}" + fi + done + + env ${unset_vars} $@ +} + + + depend() { need net @@ -25,19 +55,24 @@ checkconfig() { fi CONFIGFILE="${CONFIGFILE:-/etc/apache2/httpd.conf}" - [ "${CONFIGFILE#/}" = "${CONFIGFILE}" ] && CONFIGFILE="${SERVERROOT}/${CONFIGFILE}" + [ ${CONFIGFILE:0:1} != "/" ] && CONFIGFILE="${SERVERROOT}/${CONFIGFILE}" if [ ! -r "${CONFIGFILE}" ]; then eerror "Unable to read configuration file: ${CONFIGFILE}" return 1 fi + APACHE2_OPTS="${APACHE2_OPTS} -d ${SERVERROOT}" APACHE2_OPTS="${APACHE2_OPTS} -f ${CONFIGFILE}" [ -n "${STARTUPERRORLOG}" ] && APACHE2_OPTS="${APACHE2_OPTS} -E ${STARTUPERRORLOG}" - APACHE2="/usr/sbin/apache2" + # set a sane default for KEEPENV + KEEPENV=${KEEPENV:-PATH} - ${APACHE2} ${APACHE2_OPTS} -t 1>/dev/null 2>&1 + APACHE2="/usr/sbin/apache2" + + # TODO kill the environment crap... see note above + clear_env_except "${KEEPENV}" ${APACHE2} ${APACHE2_OPTS} -t 1>/dev/null 2>&1 ret=$? if [ $ret -ne 0 ]; then eerror "Apache2 has detected a syntax error in your configuration files:" @@ -52,65 +87,21 @@ start() { ebegin "Starting apache2" [ -f /var/log/apache2/ssl_scache ] && rm /var/log/apache2/ssl_scache - start-stop-daemon --start --exec ${APACHE2} -- ${APACHE2_OPTS} -k start + # TODO kill the environment crap... see note above + clear_env_except "${KEEPENV}" /sbin/start-stop-daemon --start --exec ${APACHE2} --pidfile /var/run/apache2.pid -- ${APACHE2_OPTS} -k start eend $? } stop() { checkconfig || return 1 ebegin "Stopping apache2" - start-stop-daemon --stop --retry -TERM/5/-KILL/5 --exec ${APACHE2} --pidfile /var/run/apache2.pid + /sbin/start-stop-daemon --stop --retry -TERM/5/-TERM/5/-KILL/5 --exec ${APACHE2} --pidfile /var/run/apache2.pid eend $? } reload() { - RELOAD_TYPE="${RELOAD_TYPE:-graceful}" - - checkconfig || return 1 - if [ "${RELOAD_TYPE}" = "restart" ]; then - ebegin "Restarting apache2" - start-stop-daemon --stop --oknodo --signal HUP --exec ${APACHE2} --pidfile /var/run/apache2.pid - eend $? - elif [ "${RELOAD_TYPE}" = "graceful" ]; then - ebegin "Gracefully restarting apache2" - start-stop-daemon --stop --oknodo --signal USR1 --exec ${APACHE2} --pidfile /var/run/apache2.pid - eend $? - else - eerror "${RELOAD_TYPE} is not a valid RELOAD_TYPE. Please edit /etc/conf.d/apache2" - fi -} - -graceful() { - checkconfig || return 1 - ebegin "Gracefully restarting apache2" - start-stop-daemon --stop --signal USR1 --exec ${APACHE2} --pidfile /var/run/apache2.pid - eend $? -} - -gracefulstop() { checkconfig || return 1 - - # zap! - if service_started "${myservice}"; then - mark_service_stopped "${myservice}" - fi - - ebegin "Gracefully stopping apache2" - # 28 is SIGWINCH - start-stop-daemon --stop --signal 28 --exec ${APACHE2} --pidfile /var/run/apache2.pid + ebegin "Doing a graceful restart of apache2" + /sbin/start-stop-daemon --stop --signal USR1 --exec ${APACHE2} --pidfile /var/run/apache2.pid eend $? } - -status() { - LYNX="${LYNX:-lynx -dump}" - STATUSURL="${STATUSURL:-http://localhost/server-status}" - - ${LYNX} ${STATUSURL} | awk ' /process$/ { print; exit } { print } ' -} - -fullstatus() { - LYNX="${LYNX:-lynx -dump}" - STATUSURL="${STATUSURL:-http://localhost/server-status}" - - ${LYNX} ${STATUSURL} -} |