HEX
Server: Apache/2.4.63 (Unix)
System: Linux Synopilou92 4.4.302+ #72806 SMP Mon Jul 21 23:16:00 CST 2025 x86_64
User: pilou92 (1026)
PHP: 8.0.30
Disabled: NONE
Upload Files
File: //var/packages/QuickConnect/scripts/start-stop-status
#!/bin/sh
# Copyright (c) 2000-2022 Synology Inc. All rights reserved.

PKG_PATH="/var/packages/QuickConnect"
PKG_TARGET_PATH="${PKG_PATH}/target"

DSM_MAJOR_VERSION=`get_key_value /etc.defaults/VERSION majorversion`
DSM_MINOR_VERSION=`get_key_value /etc.defaults/VERSION minorversion`

SHARED_OBJECT_FILE_DIR="/usr/syno/lib"
SHARED_OBJECT_FILE_NAME_PREFIX="libsynorelayd.so"
SHARED_OBJECT_FILE_NAME=${SHARED_OBJECT_FILE_NAME_PREFIX}
SHARED_OBJECT_FILE=${SHARED_OBJECT_FILE_NAME}.${DSM_MAJOR_VERSION}.${DSM_MINOR_VERSION}
PKG_SHARED_OBJECT_FILE=${PKG_TARGET_PATH}${SHARED_OBJECT_FILE_DIR}/${SHARED_OBJECT_FILE_NAME}.${DSM_MAJOR_VERSION}
SYNOSYSTEMCTL=/usr/syno/bin/synosystemctl

RELAYD_BIN_PATH="/usr/syno/sbin/synorelayd"
WEBRTCPROXY_BIN_PATH="/usr/syno/sbin/webrtcproxy"
WEBRTC_JS_PKG_DIR="${PKG_TARGET_PATH}/synowebrtc"
WEBRTC_CACHE_PKG_DIR="${WEBRTC_JS_PKG_DIR}/WebrtcCacher"
WEBROOT_DIR="/usr/syno/synoman"
WEBRTC_JSLIB_PATH="${WEBROOT_DIR}/scripts/synowebrtc"

DSM_USR_LIB_DIR="/usr/lib"

record_pkg_stop_event()
{
	# Prepare parameters
	CONFIG_FILE="/usr/syno/etc/synorelayd/synorelayd.conf"
	if [[ ! -f $CONFIG_FILE ]]; then
		echo "Configuration file not found: $CONFIG_FILE"
		return
	fi
	SERVER_ID=$(jq -r '.serverID' "$CONFIG_FILE")
	HOST=$(jq -r '.server_control.host' "$CONFIG_FILE")
	KEY=$(synocloudserviceauth -a get)
	if [[ -z "$SERVER_ID" || -z "$HOST" || -z "$KEY" ]]; then
		echo "Invalid configuration: host, serverID, or key is missing"
		return
	fi
	# Send the POST request using curl
	RESPONSE=$(curl -s -X POST "https://"$HOST"/Serv.php" \
		-H "Content-Type: application/json" \
		--connect-timeout 5 -m 10 \
		-d '{"version": 1,"command": "log_disconnect_event","serverID": "'$SERVER_ID'", "reason": "Package stop", "key": "'$KEY'"}')
}

start()
{
	pushd ${DSM_USR_LIB_DIR}
	ln -sf ${SHARED_OBJECT_FILE_NAME}.${DSM_MAJOR_VERSION} ${SHARED_OBJECT_FILE_NAME}
	ln -sf ${PKG_SHARED_OBJECT_FILE} ${SHARED_OBJECT_FILE_NAME}.${DSM_MAJOR_VERSION}
	popd

	ln -sf ${PKG_TARGET_PATH}${RELAYD_BIN_PATH} ${RELAYD_BIN_PATH}

	if [[ -L ${WEBRTC_JSLIB_PATH} || -d ${WEBRTC_JSLIB_PATH} ]]; then
		rm -rf ${WEBRTC_JSLIB_PATH}
	fi
	ln -sf ${WEBRTC_JS_PKG_DIR} ${WEBRTC_JSLIB_PATH}
	ln -sf ${PKG_TARGET_PATH}${WEBRTCPROXY_BIN_PATH} ${WEBRTCPROXY_BIN_PATH}
	ln -sf ${WEBRTC_CACHE_PKG_DIR}/cacheSW.min.js ${WEBROOT_DIR}/cacheSW.min.js
	ln -sf ${WEBRTC_CACHE_PKG_DIR}/cacheLauncher.html ${WEBROOT_DIR}/cacheLauncher.html

	synosystemctl enable pkg-synorelayd.service
	if [ `${RELAYD_BIN_PATH} -q status` == 'on' ]; then
		${RELAYD_BIN_PATH} -q on
	fi
	if [ `${RELAYD_BIN_PATH} -c status` == 'on' ]; then
		synosystemctl start pkg-synosupauthd
		synosystemctl start pkg-synorelayd.service
	fi

}

stop()
{
	synosystemctl stop pkg-synorelayd.service
	synosystemctl disable pkg-synorelayd.service

	rm -f ${WEBRTC_JSLIB_PATH}
	rm -f ${WEBRTCPROXY_BIN_PATH}
	rm -f ${WEBROOT_DIR}/cacheSW.min.js
	rm -f ${WEBROOT_DIR}/cacheLauncher.html
}

case $1 in
	start)
		start
		exit 0
	;;
	stop)
		record_pkg_stop_event
		stop
		exit 0
	;;
	status)
		if [ -e ${APP_PATH} ]; then
			exit 0
		else
			exit 1
		fi
	;;
esac