#!/bin/sh
PRIVATE_LOCATION="/var/packages/ProxyServer/target"
# customized info for different package
UPGRAGE_FILE="/tmp/synoproxyserver.upgrade"
OLD_PACKAGE_VER=`get_key_value "${UPGRAGE_FILE}" "old_version"`

restore_conf()
{
        local PROXY_SERVER_CONF_DIR="${PRIVATE_LOCATION}/squid/etc"
        /bin/cp -f /tmp/ProxyServer/* ${PROXY_SERVER_CONF_DIR}/
        rm -rf /tmp/ProxyServer
}

check_version_older() # $1 base version $2 target version
{
	BASE_VER=$1
	TARGET_VER=$2

	# if no base ver, always reture false
	if [ -z "${BASE_VER}" ]; then
		return 0;
	fi

	# getting major, minor, build
	base_major=`echo ${BASE_VER} | sed 's/^\([0-9]*\)[.-]\([0-9]*\)[.-]\([0-9]*\)[.-]\([0-9]*\).*/\1/'`
	base_minor=`echo ${BASE_VER} | sed 's/^\([0-9]*\)[.-]\([0-9]*\)[.-]\([0-9]*\)[.-]\([0-9]*\).*/\2/'`
	base_suffix=`echo ${BASE_VER} | sed 's/^\([0-9]*\)[.-]\([0-9]*\)[.-]\([0-9]*\)[.-]\([0-9]*\).*/\3/'`
	base_build=`echo ${BASE_VER} | sed 's/^\([0-9]*\)[.-]\([0-9]*\)[.-]\([0-9]*\)[.-]\([0-9]*\).*/\4/'`
	target_major=`echo ${TARGET_VER} | sed 's/^\([0-9]*\)[.-]\([0-9]*\)[.-]\([0-9]*\)[.-]\([0-9]*\).*/\1/'`
	target_minor=`echo ${TARGET_VER} | sed 's/^\([0-9]*\)[.-]\([0-9]*\)[.-]\([0-9]*\)[.-]\([0-9]*\).*/\2/'`
	target_suffix=`echo ${TARGET_VER} | sed 's/^\([0-9]*\)[.-]\([0-9]*\)[.-]\([0-9]*\)[.-]\([0-9]*\).*/\3/'`
	target_build=`echo ${TARGET_VER} | sed 's/^\([0-9]*\)[.-]\([0-9]*\)[.-]\([0-9]*\)[.-]\([0-9]*\).*/\4/'`

	# compare major, version must equal or above limitation
	if [ $target_major -lt $base_major ]; then
		return 1;
	elif [ $target_major -gt $base_major ]; then
		return 0;
	fi
	# compare minor
	if [ $target_minor -lt $base_minor ]; then
		return 1;
	elif [ $target_minor -gt $base_minor ]; then
		return 0;
	fi
	# compare suffix
	if [ $target_suffix -lt $base_suffix ]; then
		return 1;
	elif [ $target_suffix -gt $base_suffix ]; then
		return 0;
	fi
	# compare build
	if [ $target_build -lt $base_build ]; then
		return 1;
	else
		return 0;
	fi
}

restore_conf

check_version_older $OLD_PACKAGE_VER "3.4.11-0110"
if [ 0 -eq $? ]; then
	echo "max_filedesc 4096" >> "${PRIVATE_LOCATION}/squid/etc/squid.conf"
fi

check_version_older $OLD_PACKAGE_VER "3.4.11-0170"
if [ 0 -eq $? ]; then
	echo "httpd_suppress_version_string on" >> "${PRIVATE_LOCATION}/squid/etc/squid.conf"
fi

check_version_older $OLD_PACKAGE_VER "3.5.24-0179"
if [ 0 -eq $? ]; then
	/usr/bin/sed -i '/^acl SSL_ports_syno port 443$/d' "${PRIVATE_LOCATION}/squid/etc/squid.conf"
	/usr/bin/sed -i '/^acl CONNECT_syno method CONNECT$/d' "${PRIVATE_LOCATION}/squid/etc/squid.conf"
	/usr/bin/sed -i '/^http_access deny CONNECT_syno !SSL_ports_syno$/d' "${PRIVATE_LOCATION}/squid/etc/squid.conf"
fi

# general routine
rm -f ${UPGRAGE_FILE}

exit 0
