#!/bin/sh

# sw-cp-server custom fix installer.
# Place it in microupdate as
# MU<version>-gateway.sh

prog="`basename $0`"
tmp_d="/usr/local/psa/var"
mu="`echo $prog | awk -F '-' '{print $1}'`"
mu_flag="$tmp_d/${mu}-gateway_installed.flag"
cfgfile="/etc/sw-cp-server/config"

[ -f $cfgfile ] || exit 0
[ -f $mu_flag ] && exit 0

echo -n "Trying to increase cp-server buffers size... "

cp -f $cfgfile ${cfgfile}.orig

awk '
    function change(a, sec) {
        if (a <= 16 && sec == 0) { return 32 }
        if (a <= 32 && sec == 1) { return 64 }
        return a
    }
    /fastcgi_buffers|fastcgi_buffer_size/ {
	if (match($2, /[0-9]+/) && match($3, /[0-9]+k/)) {
           v1 = substr($2, 1, (RSTART + RLENGTH - 1))
           v2 = substr($3, 1, (RSTART + RLENGTH - 2))
	   print "    "$1" "change(v1, 0)" "change(v2, 0)"k;"
	} else if (match($2, /[0-9]+k/)) {
           v = substr($2, 1, (RSTART + RLENGTH - 2))
	   print "    "$1" "change(v, 1)"k;"
	} else {
	   print
	}
	next
    } 
    { print }
' < $cfgfile.orig > ${cfgfile}

/etc/init.d/sw-cp-server restart >/dev/null 2>&1

touch $mu_flag

echo "done"
exit 0
