httpd/httpd-2.1.10-apctl.patch
jorton e91269ef40 - fix path to instdso.sh in special.mk (#217677)
- fix detection of links in "apachectl fullstatus"
2006-12-07 11:29:37 +00:00

108 lines
2.7 KiB
Diff

- fail gracefully if links is not installed on target system
- source sysconfig/httpd for custom env. vars etc.
- make httpd -t work even in SELinux
- refuse to restart into a bad config
- pass $OPTIONS to all $HTTPD invocation
Upstream-HEAD: vendor
Upstream-2.0: vendor
Upstream-Status: Vendor-specific changes for better initscript integration
--- httpd-2.1.10/support/apachectl.in.apctl
+++ httpd-2.1.10/support/apachectl.in
@@ -43,19 +43,25 @@
# the path to your httpd binary, including options if necessary
HTTPD='@exp_sbindir@/@progname@'
#
-# pick up any necessary environment variables
-if test -f @exp_sbindir@/envvars; then
- . @exp_sbindir@/envvars
-fi
#
# a command that outputs a formatted text version of the HTML at the
# url given on the command line. Designed for lynx, however other
# programs may work.
-LYNX="@LYNX_PATH@ -dump"
+if [ -x "@LYNX_PATH@" ]; then
+ LYNX="@LYNX_PATH@ -dump"
+else
+ LYNX=none
+fi
#
# the URL to your server's mod_status status page. If you do not
# have one, then status and fullstatus will not work.
STATUSURL="http://localhost:@PORT@/server-status"
+
+# Source /etc/sysconfig/httpd for $HTTPD setting, etc.
+if [ -r /etc/sysconfig/httpd ]; then
+ . /etc/sysconfig/httpd
+fi
+
#
# Set this variable to a command that increases the maximum
# number of file descriptors allowed per child process. This is
@@ -75,29 +81,51 @@
ARGV="-h"
fi
+function checklynx() {
+if [ "$LYNX" = "none" ]; then
+ echo "The 'links' package is required for this functionality."
+ exit 8
+fi
+}
+
+function testconfig() {
+# httpd is denied terminal access in SELinux, so run in the
+# current context to get stdout from $HTTPD -t.
+if test -x /usr/sbin/selinuxenabled && /usr/sbin/selinuxenabled; then
+ runcon -- `id -Z` $HTTPD $OPTIONS -t
+else
+ $HTTPD $OPTIONS -t
+fi
+ERROR=$?
+}
+
case $ARGV in
-start|stop|restart|graceful|graceful-stop)
- $HTTPD -k $ARGV
- ERROR=$?
+restart|graceful)
+ if $HTTPD $OPTIONS -t >&/dev/null; then
+ $HTTPD $OPTIONS -k $ARGV
+ ERROR=$?
+ else
+ echo "apachectl: Configuration syntax error, will not run \"$ARGV\":"
+ testconfig
+ fi
;;
-startssl|sslstart|start-SSL)
- echo The startssl option is no longer supported.
- echo Please edit httpd.conf to include the SSL configuration settings
- echo and then use "apachectl start".
- ERROR=2
+start|stop|graceful-stop)
+ $HTTPD $OPTIONS -k $ARGV
+ ERROR=$?
;;
configtest)
- $HTTPD -t
- ERROR=$?
+ testconfig
;;
status)
+ checklynx
$LYNX $STATUSURL | awk ' /process$/ { print; exit } { print } '
;;
fullstatus)
+ checklynx
$LYNX $STATUSURL
;;
*)
- $HTTPD $ARGV
+ $HTTPD $OPTIONS $ARGV
ERROR=$?
esac