diff --git a/heartbeat/apache b/heartbeat/apache
index 26b3223f8..d6135a5a1 100755
--- a/heartbeat/apache
+++ b/heartbeat/apache
@@ -1,552 +1,600 @@
 #!/bin/sh
 #
 #	High-Availability Apache/IBMhttp control script
 # 
 # apache (aka IBMhttpd)
 #
 # Description:	starts/stops apache web servers.
 #
 # Author:	Alan Robertson
 #		Sun Jiang Dong
 #
 # Support:	linux-ha@lists.linux-ha.org
 #
 # License:	GNU General Public License (GPL)
 #
 # Copyright:	(C) 2002-2005 International Business Machines
 #
 #
 # An example usage in /etc/ha.d/haresources: 
-#       node1  10.0.0.170 apache::/opt/IBMHTTPServer/conf/httpd.conf
-#       node1  10.0.0.170 IBMhttpd
+#	 node1 10.0.0.170 apache::/opt/IBMHTTPServer/conf/httpd.conf
+#	 node1 10.0.0.170 IBMhttpd
 #
 # Our parsing of the Apache config files is very rudimentary.
 # It'll work with lots of different configurations - but not every
 # possible configuration.
 #
 # Patches are being accepted ;-)
 #
 # OCF parameters:
 #  OCF_RESKEY_configfile
 #  OCF_RESKEY_httpd
 #  OCF_RESKEY_port
 #  OCF_RESKEY_statusurl
 #  OCF_RESKEY_options
 #  OCF_RESKEY_testregex
 #  OCF_RESKEY_client
 #  OCF_RESKEY_testurl
 #  OCF_RESKEY_testregex10
 #  OCF_RESKEY_testconffile
 #  OCF_RESKEY_testname
 #  OCF_RESKEY_envfiles
 
 
 : ${OCF_FUNCTIONS_DIR=${OCF_ROOT}/lib/heartbeat}
 . ${OCF_FUNCTIONS_DIR}/ocf-shellfuncs
 . ${OCF_FUNCTIONS_DIR}/apache-conf.sh
 . ${OCF_FUNCTIONS_DIR}/http-mon.sh
 HA_VARRUNDIR=${HA_VARRUN}
 
 #######################################################################
 #
 #	Configuration options - usually you don't need to change these
 #
 #######################################################################
 #
 IBMHTTPD=/opt/IBMHTTPServer/bin/httpd
 HTTPDLIST="/sbin/httpd2 /usr/sbin/httpd2 /usr/sbin/apache2 /sbin/httpd /usr/sbin/httpd /usr/sbin/apache $IBMHTTPD"
 MPM=/usr/share/apache2/find_mpm
-if
-  [ -x $MPM ]
-then
-  HTTPDLIST="$HTTPDLIST `$MPM 2>/dev/null`"
+if [ -x $MPM ]; then
+	HTTPDLIST="$HTTPDLIST `$MPM 2>/dev/null`"
 fi
 
 LOCALHOST="http://localhost"
 HTTPDOPTS="-DSTATUS"
 DEFAULT_IBMCONFIG=/opt/IBMHTTPServer/conf/httpd.conf
 DEFAULT_NORMCONFIG="/etc/apache2/httpd.conf"
 #
 # You can also set
 #	HTTPD
 #	PORT
 #	STATUSURL
 #	CONFIGFILE
 # in this section if what we're doing doesn't work for you...
 #
 #	End of Configuration options
 #######################################################################
 
 CMD=`basename $0`
 
 #	The config-file-pathname is the pathname to the configuration
-#	file for this web server.  Various appropriate defaults are
-#	assumed if no config file is specified.  If this command is
+#	file for this web server. Various appropriate defaults are
+#	assumed if no config file is specified. If this command is
 #	invoked as *IBM*, then the default config file name is
 #	$DEFAULT_IBMCONFIG, otherwise the default config file
 #	will be $DEFAULT_NORMCONFIG.
 usage() {
-  cat <<-!
+cat <<-!
 usage: $0 action
 
 action:
 	start	start the web server
 
 	stop	stop the web server
 
 	status	return the status of web server, run or down
 
-	monitor  return TRUE if the web server appears to be working.
-                For this to be supported you must configure mod_status
-		 and give it a server-status URL.  You have to have 
+	monitor	return TRUE if the web server appears to be working.
+		For this to be supported you must configure mod_status
+		and give it a server-status URL. You have to have 
 		installed either curl or wget for this to work.
 
 	meta-data	show meta data message
 
 	validate-all	validate the instance parameters
 	!
 }
 
 #
 # return TRUE if a process with given PID is running
 #
 ProcessRunning() {
-    ApachePID=$1
-    # Use /proc if it looks like it's here...
-    if
-      [ -d /proc -a -d /proc/1 ]
-    then
-       [ -d /proc/$ApachePID ]
-    else
-      #  This assumes we're running as root...
-      kill -s 0 "$ApachePID" >/dev/null 2>&1
-    fi
+	ApachePID=$1
+	# Use /proc if it looks like it's here...
+	if [ -d /proc -a -d /proc/1 ]; then
+		[ -d /proc/$ApachePID ]
+	else
+		# This assumes we're running as root...
+		kill -s 0 "$ApachePID" >/dev/null 2>&1
+	fi
 }
 
 silent_status() {
-  if
-    [ -f $PidFile  ] 
-  then
-    ProcessRunning `cat $PidFile`
-  else
-    : No pid file
-    false
-  fi
+	if [ -f $PidFile ]; then
+		ProcessRunning `cat $PidFile`
+	else
+		: No pid file
+		false
+	fi
 }
 
 # May be useful to add other distros in future
 validate_default_config() {
-  if [ -e /etc/SuSE-release ]; then
-    validate_default_suse_config
-  else
-    return 0
-  fi
+	if [ -e /etc/SuSE-release ]; then
+		validate_default_suse_config
+	else
+		return 0
+	fi
 }
 
 # When using the default /etc/apache2/httpd.conf on SUSE, the file
 # /etc/apache2/sysconfig.d/include.conf is required to be present,
 # but this is only generated if you run the apache init script
 # (with contents derived from /etc/sysconfig/apache2).  So, here,
 # if we're using the default system config file and it requires
 # that include, we run "/etc/init.d/apache2 configtest" to ensure
 # the relevant config is generated and valid.  We're also taking
 # this opportunity to enable mod_status if it's not present.
 validate_default_suse_config() {
-  if [ "$CONFIGFILE" = "$DEFAULT_NORMCONFIG" ] && \
-     grep -Eq '^Include[[:space:]]+/etc/apache2/sysconfig.d/include.conf' "$CONFIGFILE"
-  then
-    [ -x "/usr/sbin/a2enmod" ] && ocf_run -q /usr/sbin/a2enmod status
-    ocf_run -q /etc/init.d/apache2 configtest
-    return
-  else
-    return 0
-  fi
+	if [ "$CONFIGFILE" = "$DEFAULT_NORMCONFIG" ] && \
+		grep -Eq '^Include[[:space:]]+/etc/apache2/sysconfig.d/include.conf' "$CONFIGFILE"
+	then
+		[ -x "/usr/sbin/a2enmod" ] && ocf_run -q /usr/sbin/a2enmod status
+		ocf_run -q /etc/init.d/apache2 configtest
+		return
+	else
+		return 0
+	fi
 }
 
 apache_start() {
-  if
-    silent_status
-  then
-    ocf_log info "$CMD already running (pid $ApachePID)"
-    return $OCF_SUCCESS
-  fi
-  validate_default_config || return $OCF_ERR_CONFIGURED
-  # https://bugs.launchpad.net/ubuntu/+source/apache2/+bug/603211
-  [ -d /var/run/apache2 ] || mkdir /var/run/apache2
-  if [ -z $PIDFILE_DIRECTIVE ];
-  then
-     ocf_run $HTTPD $HTTPDOPTS $OPTIONS -f $CONFIGFILE
-  else
-     ocf_run $HTTPD $HTTPDOPTS $OPTIONS -f $CONFIGFILE -c "PidFile $PidFile"
-  fi
-  tries=0
-  while :  # wait until the user set timeout
-  do
-    apache_monitor
-	ec=$?
-	if [ $ec -eq $OCF_NOT_RUNNING ]
+	if
+		silent_status
 	then
-		tries=`expr $tries + 1`
-		ocf_log info "waiting for apache $CONFIGFILE to come up"
-		sleep 1
+		ocf_log info "$CMD already running (pid $ApachePID)"
+		return $OCF_SUCCESS
+	fi
+
+	validate_default_config || return $OCF_ERR_CONFIGURED
+	# https://bugs.launchpad.net/ubuntu/+source/apache2/+bug/603211
+	[ -d /var/run/apache2 ] || mkdir /var/run/apache2
+
+	if [ -z $PIDFILE_DIRECTIVE ]; then
+		ocf_run $HTTPD $HTTPDOPTS $OPTIONS -f $CONFIGFILE
 	else
-		break
+		ocf_run $HTTPD $HTTPDOPTS $OPTIONS -f $CONFIGFILE -c "PidFile $PidFile"
 	fi
-  done
+
+	tries=0
+	while : # wait until the user set timeout
+	do
+		apache_monitor
+		ec=$?
+		if [ $ec -eq $OCF_NOT_RUNNING ]
+		then
+			tries=`expr $tries + 1`
+			ocf_log info "waiting for apache $CONFIGFILE to come up"
+			sleep 1
+		else
+			break
+		fi
+	done
+
 	if [ $ec -ne 0 ] && silent_status; then
 		apache_stop
 	fi
 	return $ec
 }
 
+signal_children()
+{
+	for sig in SIGTERM SIGHUP SIGKILL ; do
+		if pgrep -f $HTTPD.*$CONFIGFILE >/dev/null ; then
+			pkill -$sig -f $HTTPD.*$CONFIGFILE >/dev/null
+			ocf_log info "apache children were signalled ($sig)"
+			sleep 1
+		else
+			break
+		fi
+	done
+}
+
+graceful_stop()
+{
+	local tries=10
+	local pid=$1
+
+	# Try graceful stop for half timeout period if timeout period is present
+	if [ -n "$OCF_RESKEY_CRM_meta_timeout" ]; then
+		tries=$((($OCF_RESKEY_CRM_meta_timeout/1000) / 2))
+	fi
+
+	ocf_log info "Attempting graceful stop of apache PID $pid"
+	kill -WINCH $pid >/dev/null
+	while
+		ProcessRunning $pid &&
+		[ $tries -gt 0 ]
+	do
+		sleep 1
+		tries=`expr $tries - 1`
+	done
+
+	if [ $tries -eq 0 ]; then
+		# graceful stop didn't work, process still up.
+		return 1
+	fi
+
+	return 0
+}
+
+kill_stop()
+{
+	local tries=0
+	local pid=$1
+
+	ocf_log info "Killing apache PID $pid"
+	while
+		ProcessRunning $pid &&
+		[ $tries -lt 10 ]
+	do
+		if [ $tries -ne 0 ]; then
+			# don't sleep on the first try
+			sleep 1
+		fi
+		kill $pid >/dev/null 
+		tries=`expr $tries + 1`
+	done
+}
+
 apache_stop() {
-  if
-    silent_status
-  then
-    if
-      kill $ApachePID
-    then
-      tries=0
-      while
-        ProcessRunning $ApachePID &&
-        [ $tries -lt 10 ]
-      do
-        sleep 1
-        kill $ApachePID >/dev/null 
-        ocf_log info "Killing apache PID $ApachePID"
-        tries=`expr $tries + 1`
-      done
-    else
-      ocf_log warn "Killing apache PID $ApachePID FAILED."
-    fi
-    if
-      ProcessRunning $ApachePID
-    then
-      ocf_log info "$CMD still running ($ApachePID)."
-      false
-    else
-      ocf_log info "$CMD stopped."
-    fi
-  else
-    ocf_log info "$CMD is not running."
-  fi
-
-  for sig in SIGTERM SIGHUP SIGKILL ; do
-    if pgrep -f $HTTPD.*$CONFIGFILE >/dev/null ; then
-      pkill -$sig  -f $HTTPD.*$CONFIGFILE >/dev/null
-      ocf_log info "apache children were signalled ($sig)"
-      sleep 1
-    else
-      break
-    fi
-  done
+	local ret=$OCF_SUCCESS
+
+	if ! silent_status; then
+		ocf_log info "$CMD is not running."
+		signal_children
+		return $ret
+	fi
+	
+	graceful_stop $ApachePID
+	if [ $? -ne 0 ]; then
+		kill_stop $ApachePID
+
+		if ProcessRunning $ApachePID; then
+			ocf_log info "$CMD still running ($ApachePID). Killing pid failed."
+			ret=$OCF_ERR_GENERIC
+		fi
+	fi
+
+	if [ $ret -eq 0 ]; then
+		ocf_log info "$CMD stopped."
+	fi
+
+	signal_children
+	return $ret
 }
 
 apache_monitor_10() {
-  if [ "$TESTCONFFILE" ]; then
-    readtestconf < $TESTCONFFILE
-  else
-	test_url="$TESTURL"
-	test_regex="$TESTREGEX10"
-  fi
-  whattorun=`gethttpclient`
-  fixtesturl
-  is_testconf_sane ||
-    return $OCF_ERR_CONFIGURED
-  if $whattorun "$test_url" | grep -Ei "$test_regex" > /dev/null
-  then
-  	return $OCF_SUCCESS
-  else
-  	return $OCF_ERR_GENERIC
-  fi
+	if [ "$TESTCONFFILE" ]; then
+		readtestconf < $TESTCONFFILE
+	else
+		test_url="$TESTURL"
+		test_regex="$TESTREGEX10"
+	fi
+
+	whattorun=`gethttpclient`
+	fixtesturl
+	is_testconf_sane ||
+		return $OCF_ERR_CONFIGURED
+
+	if $whattorun "$test_url" | grep -Ei "$test_regex" > /dev/null
+	then
+		return $OCF_SUCCESS
+	else
+		if ! ocf_is_probe; then
+			ocf_log err "Failed to access httpd status page."
+		fi
+		return $OCF_ERR_GENERIC
+	fi
 }
 apache_monitor_basic() {
-  if ${ourhttpclient}_func "$STATUSURL" | grep -Ei "$TESTREGEX" > /dev/null
-  then
-  	return $OCF_SUCCESS
-  else
-  	return $OCF_ERR_GENERIC
-  fi
+	if ${ourhttpclient}_func "$STATUSURL" | grep -Ei "$TESTREGEX" > /dev/null
+	then
+		return $OCF_SUCCESS
+	else
+		if ! ocf_is_probe; then
+			ocf_log err "Failed to access httpd status page."
+		fi
+		return $OCF_ERR_GENERIC
+	fi
 }
 apache_monitor() {
-  silent_status
-  if [ $? -ne 0 ]; then
-    ocf_log info "$CMD not running"
-    return $OCF_NOT_RUNNING
-  fi
-  ourhttpclient=`findhttpclient`  # we'll need one
-  if [ -z "$ourhttpclient" ]; then
-    ocf_log err "could not find a http client; make sure that either wget or curl is available"
-    return $OCF_ERR_INSTALLED
-  fi
-  case `ocf_check_level 10` in
-  0) apache_monitor_basic;;
-  10) apache_monitor_10;;
-  esac
+	silent_status
+	if [ $? -ne 0 ]; then
+		ocf_log info "$CMD not running"
+		return $OCF_NOT_RUNNING
+	fi
+
+	ourhttpclient=`findhttpclient`  # we'll need one
+	if [ -z "$ourhttpclient" ]; then
+		ocf_log err "could not find a http client; make sure that either wget or curl is available"
+		return $OCF_ERR_INSTALLED
+	fi
+
+	case `ocf_check_level 10` in
+		0) apache_monitor_basic;;
+		10) apache_monitor_10;;
+	esac
 }
 
 apache_meta_data(){
 	cat <<END
 <?xml version="1.0"?>
 <!DOCTYPE resource-agent SYSTEM "ra-api-1.dtd">
 <resource-agent name="apache">
 <version>1.0</version>
 
 <longdesc lang="en">
 This is the resource agent for the Apache Web server.
 This resource agent operates both version 1.x and version 2.x Apache
 servers.
 
 The start operation ends with a loop in which monitor is
 repeatedly called to make sure that the server started and that
 it is operational. Hence, if the monitor operation does not
 succeed within the start operation timeout, the apache resource
 will end with an error status.
 
 The monitor operation by default loads the server status page
 which depends on the mod_status module and the corresponding
 configuration file (usually /etc/apache2/mod_status.conf).
 Make sure that the server status page works and that the access
 is allowed *only* from localhost (address 127.0.0.1).
 See the statusurl and testregex attributes for more details.
 
 See also http://httpd.apache.org/
 </longdesc>
 <shortdesc lang="en">Manages an Apache Web server instance</shortdesc>
 
 <parameters>
 <parameter name="configfile" required="0" unique="1">
 <longdesc lang="en">
 The full pathname of the Apache configuration file.
 This file is parsed to provide defaults for various other
 resource agent parameters.
 </longdesc>
 <shortdesc lang="en">configuration file path</shortdesc>
 <content type="string" default="/etc/apache2/httpd.conf" />
 </parameter>
 
 <parameter name="httpd">
 <longdesc lang="en">
 The full pathname of the httpd binary (optional).
 </longdesc>
 <shortdesc lang="en">httpd binary path</shortdesc>
 <content type="string" default="/usr/sbin/httpd" />
 </parameter>
 
 <parameter name="port" >
 <longdesc lang="en">
 A port number that we can probe for status information
 using the statusurl.
 This will default to the port number found in the
 configuration file, or 80, if none can be found
 in the configuration file.
 
 </longdesc>
 <shortdesc lang="en">httpd port</shortdesc>
 <content type="integer" />
 </parameter>
 
 <parameter name="statusurl">
 <longdesc lang="en">
 The URL to monitor (the apache server status page by default).
 If left unspecified, it will be inferred from
 the apache configuration file.
 
 If you set this, make sure that it succeeds *only* from the
 localhost (127.0.0.1). Otherwise, it may happen that the cluster
 complains about the resource being active on multiple nodes.
 </longdesc>
 <shortdesc lang="en">url name</shortdesc>
 <content type="string" />
 </parameter>
 
 <parameter name="testregex">
 <longdesc lang="en">
 Regular expression to match in the output of statusurl.
 Case insensitive.
 </longdesc>
 <shortdesc lang="en">monitor regular expression</shortdesc>
 <content type="string" default="exists, but impossible to show in a human readable format (try grep testregex)"/>
 </parameter>
 
 <parameter name="client">
 <longdesc lang="en">
 Client to use to query to Apache. If not specified, the RA will
 try to find one on the system. Currently, wget and curl are
 supported. For example, you can set this parameter to "curl" if
 you prefer that to wget.
 </longdesc>
 <shortdesc lang="en">http client</shortdesc>
 <content type="string" default=""/>
 </parameter>
 
 <parameter name="testurl">
 <longdesc lang="en">
 URL to test. If it does not start with "http", then it's
 considered to be relative to the Listen address.
 </longdesc>
 <shortdesc lang="en">test url</shortdesc>
 <content type="string" />
 </parameter>
 
 <parameter name="testregex10">
 <longdesc lang="en">
 Regular expression to match in the output of testurl.
 Case insensitive.
 </longdesc>
 <shortdesc lang="en">extended monitor regular expression</shortdesc>
 <content type="string" />
 </parameter>
 
 <parameter name="testconffile">
 <longdesc lang="en">
 A file which contains test configuration. Could be useful if
 you have to check more than one web application or in case sensitive
 info should be passed as arguments (passwords). Furthermore,
 using a config file is the only way to specify certain
 parameters.
 
 Please see README.webapps for examples and file description.
 </longdesc>
 <shortdesc lang="en">test configuration file</shortdesc>
 <content type="string" />
 </parameter>
 
 <parameter name="testname">
 <longdesc lang="en">
 Name of the test within the test configuration file.
 </longdesc>
 <shortdesc lang="en">test name</shortdesc>
 <content type="string" />
 </parameter>
 
 <parameter name="options">
 <longdesc lang="en">
 Extra options to apply when starting apache. See man httpd(8).
 </longdesc>
 <shortdesc lang="en">command line options</shortdesc>
 <content type="string" />
 </parameter>
 
 <parameter name="envfiles">
 <longdesc lang="en">
 Files (one or more) which contain extra environment variables.
 If you want to prevent script from reading the default file, set
 this parameter to empty string.
 </longdesc>
 <shortdesc lang="en">environment settings files</shortdesc>
 <content type="string" default="/etc/apache2/envvars"/>
 </parameter>
 
 <parameter name="use_ipv6">
 <longdesc lang="en">
 We will try to detect if the URL (for monitor) is IPv6, but if
 that doesn't work set this to true to enforce IPv6.
 </longdesc>
 <shortdesc lang="en">use ipv6 with http clients</shortdesc>
 <content type="boolean" default="false"/>
 </parameter>
 
 </parameters>
 
 <actions>
 <action name="start"   timeout="40s" />
 <action name="stop"    timeout="60s" />
 <action name="status"  timeout="30s" />
 <action name="monitor" depth="0"  timeout="20s" interval="10" />
 <action name="meta-data"  timeout="5" />
 <action name="validate-all"  timeout="5" />
 </actions>
 </resource-agent>
 END
 	return $OCF_SUCCESS
 }
 
 apache_validate_all() {
-  if CheckPort $PORT; then
+	if CheckPort $PORT; then
 # We are sure to succeed here, since we forced $PORT to be valid in GetParams()
-	: OK
-  else
-	ocf_log err "Port number $PORT is invalid!"
-	return $OCF_ERR_INSTALLED
-  fi
-
-  case $STATUSURL in
-      http://*) ;;
-      *) 
-      ocf_log err "Invalid STATUSURL $STATUSURL"
-      return $OCF_ERR_CONFIGURED ;;
-  esac
-
-  if [ ! -x $HTTPD ]; then
-	ocf_log err "HTTPD $HTTPD not found or is not an executable!"
-	return $OCF_ERR_INSTALLED
-  fi
-  if [ ! -f $CONFIGFILE ]; then
+		: OK
+	else
+		ocf_log err "Port number $PORT is invalid!"
+		return $OCF_ERR_INSTALLED
+	fi
+
+	case $STATUSURL in
+		http://*) ;;
+		*) 
+			ocf_log err "Invalid STATUSURL $STATUSURL"
+			return $OCF_ERR_CONFIGURED ;;
+	esac
+
+	if [ ! -x $HTTPD ]; then
+		ocf_log err "HTTPD $HTTPD not found or is not an executable!"
+		return $OCF_ERR_INSTALLED
+	fi
+
+	if [ ! -f $CONFIGFILE ]; then
 # We are sure to succeed here, since we have parsed $CONFIGFILE before getting here
-	ocf_log err "Configuration file $CONFIGFILE not found!"
-	return $OCF_ERR_INSTALLED
-  fi
+		ocf_log err "Configuration file $CONFIGFILE not found!"
+		return $OCF_ERR_INSTALLED
+	fi
 
-  return $OCF_SUCCESS
+	return $OCF_SUCCESS
 }
 
 find_httpd_prog() {
-    case $0 in
-      *IBM*)	HTTPD=$IBMHTTPD
-		  DefaultConfig=$DEFAULT_IBMCONFIG;;
-      *)	
-	  HTTPD=
-	  for h in $HTTPDLIST
-	  do
-	    if
-	      [ -f $h -a -x $h ]
-	    then
-	      HTTPD=$h
-	      break
-	    fi
-	  done
-  # Let the user know that the $HTTPD used is not the one (s)he specified via $OCF_RESKEY_httpd
-	  if
-	    [ "X$OCF_RESKEY_httpd" != X -a "X$HTTPD" != X ]
-	  then
-	    ocf_log info "Using $HTTPD as HTTPD"
-	  fi
-	  DefaultConfig=$DEFAULT_NORMCONFIG;;
-    esac
+	case $0 in
+		*IBM*)
+			HTTPD=$IBMHTTPD
+			DefaultConfig=$DEFAULT_IBMCONFIG;;
+		*)	
+			HTTPD=
+			for h in $HTTPDLIST
+			do
+				if [ -f $h -a -x $h ]; then
+					HTTPD=$h
+					break
+				fi
+			done
+
+			# Let the user know that the $HTTPD used is not the one (s)he specified via $OCF_RESKEY_httpd
+			if [ "X$OCF_RESKEY_httpd" != X -a "X$HTTPD" != X ]; then
+				ocf_log info "Using $HTTPD as HTTPD"
+			fi
+			DefaultConfig=$DEFAULT_NORMCONFIG
+			;;
+	esac
 }
 
 apache_getconfig() {
-  # these variables are global
-  HTTPD="$OCF_RESKEY_httpd"
-  PORT="$OCF_RESKEY_port"
-  STATUSURL="$OCF_RESKEY_statusurl"
-  CONFIGFILE="$OCF_RESKEY_configfile"
-  OPTIONS="$OCF_RESKEY_options"
-  CLIENT=${OCF_RESKEY_client}
-  TESTREGEX=${OCF_RESKEY_testregex:-'</ *html *>'}
-  TESTURL="$OCF_RESKEY_testurl"
-  TESTREGEX10=${OCF_RESKEY_testregex10}
-  TESTCONFFILE="$OCF_RESKEY_testconffile"
-  TESTNAME="$OCF_RESKEY_testname"
-  : ${OCF_RESKEY_envfiles="/etc/apache2/envvars"}
-  source_envfiles $OCF_RESKEY_envfiles
-
-  if
-    [ "X$HTTPD" = X -o ! -f "$HTTPD" -o ! -x "$HTTPD" ]
-  then
-    find_httpd_prog
-  fi
-  CONFIGFILE=${CONFIGFILE:-$DefaultConfig}
-  httpd_basename=`basename $HTTPD`
-  case $httpd_basename in
-    *-*)	httpd_basename=`echo "$httpd_basename" | sed -e 's%\-.*%%'`;;
-  esac
-  GetParams $CONFIGFILE
+	# these variables are global
+	HTTPD="$OCF_RESKEY_httpd"
+	PORT="$OCF_RESKEY_port"
+	STATUSURL="$OCF_RESKEY_statusurl"
+	CONFIGFILE="$OCF_RESKEY_configfile"
+	OPTIONS="$OCF_RESKEY_options"
+	CLIENT=${OCF_RESKEY_client}
+	TESTREGEX=${OCF_RESKEY_testregex:-'</ *html *>'}
+	TESTURL="$OCF_RESKEY_testurl"
+	TESTREGEX10=${OCF_RESKEY_testregex10}
+	TESTCONFFILE="$OCF_RESKEY_testconffile"
+	TESTNAME="$OCF_RESKEY_testname"
+	: ${OCF_RESKEY_envfiles="/etc/apache2/envvars"}
+	source_envfiles $OCF_RESKEY_envfiles
+
+	if [ "X$HTTPD" = X -o ! -f "$HTTPD" -o ! -x "$HTTPD" ]; then
+		find_httpd_prog
+	fi
+
+	CONFIGFILE=${CONFIGFILE:-$DefaultConfig}
+	httpd_basename=`basename $HTTPD`
+	case $httpd_basename in
+		*-*)	httpd_basename=`echo "$httpd_basename" | sed -e 's%\-.*%%'`;;
+	esac
+	GetParams $CONFIGFILE
 }
 
 OCF_REQUIRED_PARAMS=""
 OCF_REQUIRED_BINARIES=""
 ocf_rarun $*
-
-# vim:sw=2:ts=8:
diff --git a/heartbeat/apache-conf.sh b/heartbeat/apache-conf.sh
index cf679cc46..dc3426fa1 100644
--- a/heartbeat/apache-conf.sh
+++ b/heartbeat/apache-conf.sh
@@ -1,193 +1,194 @@
 #
 # Common apache code
 # (sourced by apache)
 #
 # Author:	Alan Robertson
 #		Sun Jiang Dong
 #
 # Support:	linux-ha@lists.linux-ha.org
 #
 # License:	GNU General Public License (GPL)
 #
 # Copyright:	(C) 2002-2005 International Business Machines
 #
 
 source_envfiles() {
 	for f; do
 		[ -f "$f" -a -r "$f" ] &&
 			. "$f"
 	done
 }
 
 apachecat() {
 	awk '
 	function procline() {
 		split($0,a);
 		if( a[1]~/^[Ii]nclude$/ ) {
 			procinclude(a[2]);
 		} else {
 			if( a[1]=="ServerRoot" ) {
 				rootdir=a[2];
 				gsub("\"","",rootdir);
 			}
 			print;
 		}
 	}
 	function printfile(infile, a) {
 		while( (getline<infile) > 0 ) {
 			procline();
 		}
 		close(infile);
 	}
 	function allfiles(dir, cmd,f) {
 		cmd="find -L "dir" -type f";
 		while( ( cmd | getline f ) > 0 ) {
 			printfile(f);
 		}
 		close(cmd);
 	}
 	function listfiles(pattern, cmd,f) {
 		cmd="ls "pattern" 2>/dev/null";
 		while( ( cmd | getline f ) > 0 ) {
 			printfile(f);
 		}
 		close(cmd);
 	}
 	function procinclude(spec) {
 		if( rootdir!="" && spec!~/^\// ) {
 			spec=rootdir"/"spec;
 		}
 		if( isdir(spec) ) {
 			allfiles(spec); # read all files in a directory (and subdirs)
 		} else {
 			listfiles(spec); # there could be jokers
 		}
 	}
 	function isdir(s) {
 		return !system("test -d \""s"\"");
 	}
 	{ procline(); }
 	' $1 |
 	sed 's/#.*//;s/[[:blank:]]*$//;s/^[[:blank:]]*//' |
 	grep -v '^$'
 }
 
 #
 # set parameters (as shell vars) from our apache config file
 #
 get_apache_params() {
-  configfile=$1
-  shift 1
-  vars=`echo $@ | sed 's/ /,/g'`
+	configfile=$1
+	shift 1
+	vars=`echo $@ | sed 's/ /,/g'`
 
-  eval `
-  apachecat $configfile | awk -v vars="$vars" '
-  BEGIN{
-    split(vars,v,",");
-    for( i in v )
-  	  vl[i]=tolower(v[i]);
-  }
-  {
-	  for( i in v )
-	  	if( tolower($1)==vl[i] ) {
+	eval `
+	apachecat $configfile | awk -v vars="$vars" '
+	BEGIN{
+		split(vars,v,",");
+		for( i in v )
+			vl[i]=tolower(v[i]);
+	}
+	{
+		for( i in v )
+			if( tolower($1)==vl[i] ) {
 			print v[i]"="$2
 			delete vl[i]
 			break
 		}
-  }
-  '`
+	}
+	'`
 }
 
 #
-#	Return the location(s) that are handled by the given handler
+# Return the location(s) that are handled by the given handler
 #
 FindLocationForHandler() {
-  PerlScript='while (<>) {
-	/<Location "?([^ >"]+)/i && ($loc=$1);
-	'"/SetHandler +$2"'/i && print "$loc\n"; 
-  }'
-  apachecat $1 | perl -e "$PerlScript"
+	PerlScript='while (<>) {
+		/<Location "?([^ >"]+)/i && ($loc=$1);
+		'"/SetHandler +$2"'/i && print "$loc\n"; 
+	}'
+	apachecat $1 | perl -e "$PerlScript"
 }
 
 #
-#	Check if the port is valid
+# Check if the port is valid
 #
 CheckPort() {
-  ocf_is_decimal "$1" && [ $1 -gt 0 ]
+	ocf_is_decimal "$1" && [ $1 -gt 0 ]
 }
 
 buildlocalurl() {
-  [ "x$Listen" != "x" ] &&
+	[ "x$Listen" != "x" ] &&
 	echo "http://${Listen}" ||
 	echo "${LOCALHOST}:${PORT}"
 }
 # the test url may need a local prefix (as specified in the
 # apache Listen directive)
 fixtesturl() {
 	echo $test_url | grep -qs "^http" && return
 	test_url="`buildlocalurl`$test_url"
 }
 #
-#	Get all the parameters we need from the Apache config file
+# Get all the parameters we need from the Apache config file
 #
 GetParams() {
-  ConfigFile=$1
-  if [ ! -f $ConfigFile ]; then
-  	return $OCF_ERR_INSTALLED
-  fi
-  get_apache_params $ConfigFile ServerRoot PidFile Port Listen
-  case $PidFile in
-    /*)	;;
-    [[:alnum:]]*)	PidFile=$ServerRoot/$PidFile;;
-    *)
-        # If the PidFile is not set in the config, set
-        # a default location.
-        PidFile=$HA_VARRUNDIR/${httpd_basename}.pid
-        # Force the daemon to use this location by using
-        # the -c option, which adds the PidFile directive
-        # as if it was in the configuration file to begin with.
-        PIDFILE_DIRECTIVE="true"
-        ;;
-  esac
+	ConfigFile=$1
+	if [ ! -f $ConfigFile ]; then
+		return $OCF_ERR_INSTALLED
+	fi
+	get_apache_params $ConfigFile ServerRoot PidFile Port Listen
+	case $PidFile in
+		/*) ;;
+		[[:alnum:]]*) PidFile=$ServerRoot/$PidFile;;
+		*)
+			# If the PidFile is not set in the config, set
+			# a default location.
+			PidFile=$HA_VARRUNDIR/${httpd_basename}.pid
+			# Force the daemon to use this location by using
+			# the -c option, which adds the PidFile directive
+			# as if it was in the configuration file to begin with.
+			PIDFILE_DIRECTIVE="true"
+			;;
+	esac
 
-  for p in "$PORT" "$Port" 80; do
-    if CheckPort "$p"; then
-      PORT="$p"
-      break
-    fi
-  done
+	for p in "$PORT" "$Port" 80; do
+		if CheckPort "$p"; then
+			PORT="$p"
+			break
+		fi
+	done
  
-  echo $Listen | grep ':' >/dev/null ||  # Listen could be just port spec
-	  Listen="localhost:$Listen"
+	echo $Listen | grep ':' >/dev/null || # Listen could be just port spec
+		Listen="localhost:$Listen"
+
+	#
+	# It's difficult to figure out whether the server supports
+	# the status operation.
+	# (we start our server with -DSTATUS - just in case :-))
+	#
+	# Typically (but not necessarily) the status URL is /server-status
+	#
+	# For us to think status will work, we have to have the following things:
+	#
+	# - The server-status handler has to be mapped to some URL somewhere
+	#
+	# We assume that:
+	#
+	# - the "main" web server at $PORT will also support it if we can find it
+	#   somewhere in the file
+	# - it will be supported at the same URL as the one we find in the file
+	#
+	# If this doesn't work for you, then set the statusurl attribute.
+	#
+	if
+		 [ "X$STATUSURL" = "X" ]
+	then
+		StatusURL=`FindLocationForHandler $1 server-status | tail -1`
+		STATUSURL="`buildlocalurl`$StatusURL"
+	fi
 
-  #
-  # It's difficult to figure out whether the server supports
-  # the status operation.
-  # (we start our server with -DSTATUS - just in case :-))
-  #
-  # Typically (but not necessarily) the status URL is /server-status
-  #
-  # For us to think status will work, we have to have the following things:
-  #
-  # - The server-status handler has to be mapped to some URL somewhere
-  #
-  # We assume that:
-  #
-  # - the "main" web server at $PORT will also support it if we can find it
-  #	somewhere in the file
-  # - it will be supported at the same URL as the one we find in the file
-  #
-  # If this doesn't work for you, then set the statusurl attribute.
-  #
-  if
-     [ "X$STATUSURL" = "X" ]
-  then
-      StatusURL=`FindLocationForHandler $1 server-status | tail -1`
-      STATUSURL="`buildlocalurl`$StatusURL"
-  fi
-  if ! test "$PidFile"; then
-  	return $OCF_ERR_INSTALLED
-  else
-  	return $OCF_SUCCESS
-  fi
+	if ! test "$PidFile"; then
+		return $OCF_ERR_INSTALLED
+	else
+		return $OCF_SUCCESS
+	fi
 }