#!/bin/sh
# Copyright (c) 2000-2018 Synology Inc. All rights reserved.
SYNOIPSTOOL="/var/packages/IntrusionPrevention/target/tool/synoipstool"
SENSORCONF="/usr/syno/etc/packages/IntrusionPrevention/sensor.conf"
SENSORCONFBKP="${SENSORCONF}.bkp"
SURICATAPID=$(pidof Suricata-Main)
BARNYARD2PID=$(pidof barnyard2)

/sbin/iptables-save -c |grep "IPS_INPUT" > /dev/null
if [ $? -eq 0 ] || [ ! -z ${SURICATAPID} ] || [ ! -z ${BARNYARD2PID} ] && [ -f "${SYNOIPSTOOL}" ]; then
	if [ -f ${SENSORCONF} ]; then
		/bin/cp ${SENSORCONF} ${SENSORCONFBKP}
	fi
	${SYNOIPSTOOL} --sensor -d
	if [ -f ${SENSORCONFBKP} ]; then
		/bin/mv ${SENSORCONFBKP} ${SENSORCONF}
	fi
fi

# Update notification default value if old config exists.
SYNO_MISC_CONF="/usr/syno/etc/packages/ThreatPrevention/misc.conf"
SYNO_CLASSIFY_CONF="/usr/syno/etc/packages/ThreatPrevention/suricata/classification.config"
SYNO_NOTIFY_FILTER_CONF="/usr/syno/etc/packages/ThreatPrevention/notification_filter.conf"

if [ -f "${SYNO_NOTIFY_FILTER_CONF}" ] && [ "yes" != "$(synogetkeyvalue ${SYNO_MISC_CONF} is_notification_updated)" ]; then
	while IFS='' read -r line; do
		echo "${line}" |
		{
			IFS=':,' read _ section _ severity;
			if [ "${severity}" -gt 1 ]; then
				section="${section#"${section%%[![:space:]]*}"}"
				sed -i "/^\[${section}\]$/,/^\[/ s/^enable_push=yes/enable_push=no/" ${SYNO_NOTIFY_FILTER_CONF}
				sed -i "/^\[${section}\]$/,/^\[/ s/^enable_mail=yes/enable_mail=no/" ${SYNO_NOTIFY_FILTER_CONF}
				sed -i "/^\[${section}\]$/,/^\[/ s/^enable_sms=yes/enable_sms=no/"   ${SYNO_NOTIFY_FILTER_CONF}
			fi
		}
	done < "$SYNO_CLASSIFY_CONF"

	# event others does not exist in SYNO_CLASSIFY_CONF, but it is low severity.
	sed -i "/^\[others\]$/,/^\[/ s/^enable_push=yes/enable_push=no/" ${SYNO_NOTIFY_FILTER_CONF}
	sed -i "/^\[others\]$/,/^\[/ s/^enable_mail=yes/enable_mail=no/" ${SYNO_NOTIFY_FILTER_CONF}
	sed -i "/^\[others\]$/,/^\[/ s/^enable_sms=yes/enable_sms=no/"   ${SYNO_NOTIFY_FILTER_CONF}
fi


exit 0
