X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=plc.d%2Ffunctions;h=58508a3f30e82e4c7dd41111a23f1f64cf8cd983;hb=039b8b04f1e3e9f584abf83797ae3f1a8c421e23;hp=ec6c6ef373d3ed1518d794a53cca55abd3da3ecc;hpb=27ae61d51ba27a22a2e9048b90fe158dd3fac592;p=myplc.git
diff --git a/plc.d/functions b/plc.d/functions
index ec6c6ef..58508a3 100644
--- a/plc.d/functions
+++ b/plc.d/functions
@@ -14,20 +14,17 @@ export PATH=/sbin:/bin:/usr/bin:/usr/sbin
ERRORS=0
# Count the exit status of the last command
-check ()
-{
+function check () {
ERRORS=$(($ERRORS+$?))
}
# Print status header
-dialog ()
-{
+function dialog () {
echo -n "PLC: $*: " >&3
}
# Print result
-result ()
-{
+function result () {
if [ $ERRORS -eq 0 ] ; then
success "$*" >&3
else
@@ -37,8 +34,7 @@ result ()
}
# Start up a program with a plc_ prefix
-plc_daemon ()
-{
+function plc_daemon () {
base=${1##*/}
# See if it's already running. Look *only* at the pid file.
@@ -73,22 +69,19 @@ plc_daemon ()
}
# Print IP address of hostname if resolvable
-gethostbyname ()
-{
+function gethostbyname () {
python -c 'import socket; import sys; print socket.gethostbyname(sys.argv[1])' $1 2>/dev/null
}
# Forcefully make a symlink
-symlink ()
-{
+function symlink () {
mkdir -p $(dirname $2)
rm -f $2
ln -s $1 $2
}
# Argument(s) or stdin to lowercase stdout
-lower ()
-{
+function lower () {
if [ ${#*} -ge 1 ] ; then
tr A-Z a-z <<<$*
else
@@ -97,8 +90,7 @@ lower ()
}
# Argument(s) or stdin to uppercase stdout
-upper ()
-{
+function upper () {
if [ ${#*} -ge 1 ] ; then
tr a-z A-Z <<<$*
else
@@ -107,8 +99,7 @@ upper ()
}
# Regenerate configuration files
-reload ()
-{
+function plc_reload () {
force=$1
# Regenerate the main configuration file from default values
@@ -147,6 +138,46 @@ reload ()
fi
}
+#################### feb 2013 for f18
+# Authorization directives change in apache 2.4
+# http://httpd.apache.org/docs/2.4/upgrading.html#access
+#### up to 2.2, this would be e.g.
+# apachectl -V
+# Server version: Apache/2.2.22 (Unix)
+#
+# Options +ExecCGI
+# Order allow,deny
+# Allow from all
+#
+#### starting with 2.4 it becomes
+# apachectl -V
+# Server version: Apache/2.4.3 (Fedora)
+#
+# Options +ExecCGI
+# Require all granted
+#
+
+function apache_newauth () {
+ apache_version=$(apachectl -V 2> /dev/null | grep 'Server version' | cut -d ' ' -f3 | sed -e 's,^.*/,,')
+ apache_major=$(echo $apache_version | cut -d. -f1)
+ apache_minor=$(echo $apache_version | cut -d. -f2)
+ test "$apache_minor" -ge 4
+}
+function apache_allow () {
+ if apache_newauth; then
+ echo -e "Require all granted"
+ else
+ echo -e "Order allow,deny\n Allow from all"
+ fi
+}
+function apache_forbid () {
+ if apache_newauth; then
+ echo -e "Require all denied"
+ else
+ echo -e "Order deny,allow\n Deny from all"
+ fi
+}
+
# Make copies of stdout and stderr. The plc initscript redirects
# stdout and stderr to a logfile if -v is not specified.
[ ! -e /proc/self/fd/3 ] && exec 3>&1