HEX
Server: Apache/2.2.34 (Unix) mod_fastcgi/mod_fastcgi-SNAP-0910052141
System: Linux Kou-Etsu-Dou 4.4.59+ #25556 SMP PREEMPT Thu Mar 4 18:03:46 CST 2021 x86_64
User: hosam (1026)
PHP: 7.2.29
Disabled: NONE
Upload Files
File: //var/packages/DNSServer/scripts/postinst
#!/bin/sh

DSM_VERSION_NUMBER=$SYNOPKG_DSM_VERSION_BUILD
BinDir="/var/packages/DNSServer/target/bin"
PRIVATE_LOCATION="/var/packages/DNSServer/target"
DNS_SCRIPT_LOCATION="/var/packages/DNSServer/scripts"
SZD_DNS_SYNOPKG_CONF="/var/packages/DNSServer/etc/synopkg_conf"
SZD_TMP_LOCATION="${SYNOPKG_TEMP_UPGRADE_FOLDER}/synodns"
SZF_TMP_DNS_LOG="/tmp/dnslog"

SZD_DNS_NAMED="${PRIVATE_LOCATION}/named"
SZD_DNS_CONF="${PRIVATE_LOCATION}/etc"
SZF_DNS_RNDC_KEY="${SZD_DNS_NAMED}/rndc.key"
SZD_DNS_NAMED_BK="${SZD_TMP_LOCATION}/named"
SZD_DNS_CONF_BK="${SZD_TMP_LOCATION}/etc"
SZD_PKG_APP_PATH="${PRIVATE_LOCATION}/app"

# conf to upgrade
# 1.
SZF_DNS_DEFAULT_CONF="${SZD_DNS_NAMED}/etc/conf/named.options.default.conf"
SZF_DNS_DEFAULT_CONF_OLD="${SZD_DNS_NAMED_BK}/etc/conf/named.options.default.conf"
# 2.
SZF_DNS_OPT_CONF="${SZD_DNS_NAMED}/etc/conf/named.options.conf"
SZF_DNS_OPT_CONF_OLD="${SZD_DNS_NAMED_BK}/etc/conf/named.options.conf"
# 3.
SZF_DNS_NAMED_CONF="${SZD_DNS_NAMED}/etc/named.conf"
SZF_DNS_NAMED_CONF_OLD="${SZD_DNS_NAMED_BK}/etc/named.conf"

NET_HOOK_DIR="/usr/local/libexec/net"

is_old_dns_version_lt() {
	local -r COMPARE_VERSION="$1"
	local -r OLD_INFO_VERSION="${SYNOPKG_OLD_PKGVER}"

	if [ -z $OLD_INFO_VERSION ];then
		# new install has no $SYNOPKG_OLD_PKGVER
		return 1
	fi

	local -r info_major=$(echo "${OLD_INFO_VERSION}" | cut -d'.' -f1)
	local -r info_minor=$(echo "${OLD_INFO_VERSION}" | cut -d'.' -f2)
	local -r info_patch=$(echo "${OLD_INFO_VERSION}" | cut -d'.' -f3 | cut -d '-' -f1)
	local -r info_number=$(echo "${OLD_INFO_VERSION}" | cut -d'.' -f3 | cut -d '-' -f2)
	local -r info_version=(${info_major} ${info_minor} ${info_patch} ${info_number})

	local -r target_major=$(echo "${COMPARE_VERSION}" | cut -d'.' -f1)
	local -r target_minor=$(echo "${COMPARE_VERSION}" | cut -d'.' -f2)
	local -r target_patch=$(echo "${COMPARE_VERSION}" | cut -d'.' -f3 | cut -d '-' -f1)
	local -r target_number=$(echo "${COMPARE_VERSION}" | cut -d'.' -f3 | cut -d '-' -f2)
	local target_version=(${target_major} ${target_minor} ${target_patch} ${target_number})

	local length=${#info_version[@]}
	local i;
	for ((i=0; i<"${length}"; i++));
	do
		if [ "${info_version[i]}" -lt "${target_version[i]}" ]; then
			# OLD_INFO_VERSION -lt COMPARE_VERSION
			return 0
		fi
	done

	# OLD_INFO_VERSION -ge COMPARE_VERSION
	return 1
}


setNewConf()
{
	# overwrite SZF_DNS_DEFAULT_CONF_OLD
	if [ -f $SZF_DNS_SYSTEM_CONF_OLD ]; then
		cp -f $SZF_DNS_DEFAULT_CONF $SZF_DNS_DEFAULT_CONF_OLD
	fi

	# overwrite SZF_DNS_OPT_CONF_OLD
	if [ -f $SZF_DNS_OPT_CONF_OLD ]; then
		cp -f $SZF_DNS_OPT_CONF $SZF_DNS_OPT_CONF_OLD
	fi

	# overwrite SZF_DNS_NAMED_CONF
	if [ -f $SZF_DNS_NAMED_CONF_OLD ]; then
		cp -f $SZF_DNS_NAMED_CONF $SZF_DNS_NAMED_CONF_OLD
	fi
}

restoreConf()
{
	if [ -d $SZD_DNS_NAMED_BK ]; then
		cp -af $SZD_DNS_NAMED_BK/* $SZD_DNS_NAMED
		rm -rf $SZD_DNS_NAMED_BK
	fi

	if [ -d $SZD_DNS_CONF_BK ]; then
		cp -af $SZD_DNS_CONF_BK/* $SZD_DNS_CONF
		rm -rf $SZD_DNS_CONF_BK
	fi

	if [ -d $SZD_TMP_LOCATION ]; then
		rm -rf $SZD_TMP_LOCATION
	fi
}

generateConf()
{
	if is_old_dns_version_lt "2.2.1-5002"; then
		${SZD_PKG_APP_PATH}/synodnstool --log-conf-regen
	fi
}

createKey()
{
	if [ ! -f ${SZF_DNS_RNDC_KEY} ]; then
		${BinDir}/rndc-confgen -a -b 512 -r /dev/urandom -s 127.0.0.1 -c /var/packages/DNSServer/target/named/rndc.key -u root
	fi
	chown DNSServer:DNSServer ${SZF_DNS_RNDC_KEY}
	chmod 770 ${SZF_DNS_RNDC_KEY}
}

fix_wrong_modify_time_lib()
{
	if is_old_dns_version_lt "2.2.1-5008"; then
		${SZD_PKG_APP_PATH}/synodnstool --fix-lib-modify-time
	fi
}

register_volume()
{
	mkdir -p ${SZD_DNS_SYNOPKG_CONF}
	echo "[\"${SYNOPKG_PKGDEST_VOL}\"]" > ${SZD_DNS_SYNOPKG_CONF}/reg_volume
}

mark_fix_view_include_partial_dlz () {
	if is_old_dns_version_lt "2.2.3-5028"; then
		touch "${PRIVATE_LOCATION}/need_fix_view_partial_include_dlz"
	fi
}

setNewConf
restoreConf
generateConf

createKey

#DNS#541
fix_wrong_modify_time_lib
register_volume
mark_fix_view_include_partial_dlz

exit 0