Compare commits

..

2 Commits

Author SHA1 Message Date
Ing
bd964d17c8 fix something 2024-04-20 09:52:02 +08:00
Ing
0e8994b975 Fix md0 related operations 2024-04-20 03:44:21 +08:00
15 changed files with 3993 additions and 2530 deletions

View File

@ -371,3 +371,22 @@ function connectwlanif() {
wpa_supplicant -i ${1} -c "${CONF}" -B -P "/var/run/wpa_supplicant.pid.${1}" >/dev/null 2>&1 wpa_supplicant -i ${1} -c "${CONF}" -B -P "/var/run/wpa_supplicant.pid.${1}" >/dev/null 2>&1
return 0 return 0
} }
###############################################################################
# Find and mount the DSM root filesystem
# (based on pocopico's TCRP code)
function findDSMRoot() {
local DSMROOTS=""
local RAIDS="$(lsblk -pno KNAME,PARTN,FSTYPE,FSVER,LABEL | grep -w " 1" | grep -w "linux_raid_member")"
if echo "${RAIDS}" | grep -q "1.2"; then
# SynologyNAS:0, DiskStation:0, SynologyNVR:0, BeeStation:0
local LABELS="$(echo "${RAIDS}" | grep "1.2" | awk '{print $5}' | uniq)"
for I in ${LABELS}; do
[ -L "/dev/md/${I}" ] && DSMROOTS="${DSMROOTS} /dev/md/${I}"
done
elif echo "${RAIDS}" | grep -q "0.9"; then
DSMROOTS="$(echo "${RAIDS}" | grep "0.9" | awk '{print $1}')"
fi
echo ${DSMROOTS}
return 0
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -371,8 +371,6 @@ function productversMenu() {
############################################################################### ###############################################################################
# Parse Pat # Parse Pat
function ParsePat() { function ParsePat() {
rm -f "${LOG_FILE}"
if [ -n "${MODEL}" -a -n "${PRODUCTVER}" ]; then if [ -n "${MODEL}" -a -n "${PRODUCTVER}" ]; then
MSG="$(printf "$(TEXT "You have selected the %s and %s.\n'Parse Pat' will overwrite the previous selection.\nDo you want to continue?")" "${MODEL}" "${PRODUCTVER}")" MSG="$(printf "$(TEXT "You have selected the %s and %s.\n'Parse Pat' will overwrite the previous selection.\nDo you want to continue?")" "${MODEL}" "${PRODUCTVER}")"
DIALOG --title "$(TEXT "Parse Pat")" \ DIALOG --title "$(TEXT "Parse Pat")" \
@ -402,11 +400,12 @@ function ParsePat() {
fi fi
while true; do while true; do
rm -f "${LOG_FILE}"
echo "$(printf "$(TEXT "Parse %s ...")" "$(basename "${PAT_PATH}")")" echo "$(printf "$(TEXT "Parse %s ...")" "$(basename "${PAT_PATH}")")"
extractPatFiles "${PAT_PATH}" "${UNTAR_PAT_PATH}" extractPatFiles "${PAT_PATH}" "${UNTAR_PAT_PATH}"
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
rm -rf "${UNTAR_PAT_PATH}" rm -rf "${UNTAR_PAT_PATH}"
return 1 break
fi fi
if [ ! -f "${UNTAR_PAT_PATH}/GRUB_VER" -o ! -f "${UNTAR_PAT_PATH}/VERSION" ]; then if [ ! -f "${UNTAR_PAT_PATH}/GRUB_VER" -o ! -f "${UNTAR_PAT_PATH}/VERSION" ]; then
echo -e "$(TEXT "pat Invalid, try again!")" >"${LOG_FILE}" echo -e "$(TEXT "pat Invalid, try again!")" >"${LOG_FILE}"
@ -1728,14 +1727,15 @@ function formatDisks() {
function tryRecoveryDSM() { function tryRecoveryDSM() {
DIALOG --title "$(TEXT "Try recovery DSM")" \ DIALOG --title "$(TEXT "Try recovery DSM")" \
--infobox "$(TEXT "Trying to recovery a installed DSM system ...")" 0 0 --infobox "$(TEXT "Trying to recovery a installed DSM system ...")" 0 0
if [ -z "$(ls /dev/md/*:0 2>/dev/null)" ]; then # SynologyNAS:0, DiskStation:0, SynologyNVR:0, BeeStation:0 DSMROOTS="$(findDSMRoot)"
if [ -z "${DSMROOTS}" ]; then
DIALOG --title "$(TEXT "Advanced")" \ DIALOG --title "$(TEXT "Advanced")" \
--msgbox "$(TEXT "No DSM system partition(md0) found!\nPlease insert all disks before continuing.")" 0 0 --msgbox "$(TEXT "No DSM system partition(md0) found!\nPlease insert all disks before continuing.")" 0 0
return return
fi fi
mkdir -p "${TMP_PATH}/mdX" mkdir -p "${TMP_PATH}/mdX"
mount "$(ls /dev/md/*:0 2>/dev/null | head -n 1)" "${TMP_PATH}/mdX" mount "$(echo "${DSMROOTS}" | head -n 1 | cut -d' ' -f1)" "${TMP_PATH}/mdX"
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
DIALOG --title "$(TEXT "Advanced")" \ DIALOG --title "$(TEXT "Advanced")" \
--msgbox "$(TEXT "mount DSM system partition(md0) failed!\nPlease insert all disks before continuing.")" 0 0 --msgbox "$(TEXT "mount DSM system partition(md0) failed!\nPlease insert all disks before continuing.")" 0 0
@ -1904,22 +1904,24 @@ function allowDSMDowngrade() {
DIALOG --title "$(TEXT "Advanced")" \ DIALOG --title "$(TEXT "Advanced")" \
--yesno "${MSG}" 0 0 --yesno "${MSG}" 0 0
[ $? -ne 0 ] && return [ $? -ne 0 ] && return
if [ -z "$(ls /dev/md/*:0 2>/dev/null)" ]; then # SynologyNAS:0, DiskStation:0, SynologyNVR:0, BeeStation:0 DSMROOTS="$(findDSMRoot)"
if [ -z "${DSMROOTS}" ]; then
DIALOG --title "$(TEXT "Advanced")" \ DIALOG --title "$(TEXT "Advanced")" \
--msgbox "$(TEXT "No DSM system partition(md0) found!\nPlease insert all disks before continuing.")" 0 0 --msgbox "$(TEXT "No DSM system partition(md0) found!\nPlease insert all disks before continuing.")" 0 0
return return
fi fi
while true; do (
mkdir -p "${TMP_PATH}/mdX" mkdir -p "${TMP_PATH}/mdX"
mount "$(ls /dev/md/*:0 2>/dev/null | head -n 1)" "${TMP_PATH}/mdX" for I in ${DSMROOTS}; do
[ $? -ne 0 ] && break mount "${I}" "${TMP_PATH}/mdX"
[ -f "${TMP_PATH}/mdX/etc/VERSION" ] && rm -f "${TMP_PATH}/mdX/etc/VERSION" [ $? -ne 0 ] && continue
[ -f "${TMP_PATH}/mdX/etc.defaults/VERSION" ] && rm -f "${TMP_PATH}/mdX/etc.defaults/VERSION" [ -f "${TMP_PATH}/mdX/etc/VERSION" ] && rm -f "${TMP_PATH}/mdX/etc/VERSION"
sync [ -f "${TMP_PATH}/mdX/etc.defaults/VERSION" ] && rm -f "${TMP_PATH}/mdX/etc.defaults/VERSION"
umount "${TMP_PATH}/mdX" sync
umount "${TMP_PATH}/mdX"
done
rm -rf "${TMP_PATH}/mdX" rm -rf "${TMP_PATH}/mdX"
break ) 2>&1 | DIALOG --title "$(TEXT "Advanced")" \
done 2>&1 | DIALOG --title "$(TEXT "Advanced")" \
--progressbox "$(TEXT "Removing ...")" 20 100 --progressbox "$(TEXT "Removing ...")" 20 100
DIALOG --title "$(TEXT "Advanced")" \ DIALOG --title "$(TEXT "Advanced")" \
--msgbox "$(TEXT "Remove VERSION file for DSM system partition(md0) completed.")" 0 0 --msgbox "$(TEXT "Remove VERSION file for DSM system partition(md0) completed.")" 0 0
@ -1929,16 +1931,17 @@ function allowDSMDowngrade() {
############################################################################### ###############################################################################
# Reset DSM system password # Reset DSM system password
function resetDSMPassword() { function resetDSMPassword() {
if [ -z "$(ls /dev/md/*:0 2>/dev/null)" ]; then # SynologyNAS:0, DiskStation:0, SynologyNVR:0, BeeStation:0 DSMROOTS="$(findDSMRoot)"
if [ -z "${DSMROOTS}" ]; then
DIALOG --title "$(TEXT "Advanced")" \ DIALOG --title "$(TEXT "Advanced")" \
--msgbox "$(TEXT "No DSM system partition(md0) found!\nPlease insert all disks before continuing.")" 0 0 --msgbox "$(TEXT "No DSM system partition(md0) found!\nPlease insert all disks before continuing.")" 0 0
return return
fi fi
rm -f "${TMP_PATH}/menu" rm -f "${TMP_PATH}/menu"
while true; do mkdir -p "${TMP_PATH}/mdX"
mkdir -p "${TMP_PATH}/mdX" for I in ${DSMROOTS}; do
mount "$(ls /dev/md/*:0 2>/dev/null | head -n 1)" "${TMP_PATH}/mdX" mount ${I} "${TMP_PATH}/mdX"
[ $? -ne 0 ] && break [ $? -ne 0 ] && continue
if [ -f "${TMP_PATH}/mdX/etc/shadow" ]; then if [ -f "${TMP_PATH}/mdX/etc/shadow" ]; then
while read L; do while read L; do
U=$(echo "${L}" | awk -F ':' '{if ($2 != "*" && $2 != "!!") print $1;}') U=$(echo "${L}" | awk -F ':' '{if ($2 != "*" && $2 != "!!") print $1;}')
@ -1950,9 +1953,9 @@ function resetDSMPassword() {
done <<<$(cat "${TMP_PATH}/mdX/etc/shadow" 2>/dev/null) done <<<$(cat "${TMP_PATH}/mdX/etc/shadow" 2>/dev/null)
fi fi
umount "${TMP_PATH}/mdX" umount "${TMP_PATH}/mdX"
rm -rf "${TMP_PATH}/mdX" [ -f "${TMP_PATH}/menu" ] && break
break
done done
rm -rf "${TMP_PATH}/mdX"
if [ ! -f "${TMP_PATH}/menu" ]; then if [ ! -f "${TMP_PATH}/menu" ]; then
DIALOG --title "$(TEXT "Advanced")" \ DIALOG --title "$(TEXT "Advanced")" \
--msgbox "$(TEXT "All existing users have been disabled. Please try adding new user.")" 0 0 --msgbox "$(TEXT "All existing users have been disabled. Please try adding new user.")" 0 0
@ -1975,21 +1978,22 @@ function resetDSMPassword() {
--msgbox "$(TEXT "Invalid password")" 0 0 --msgbox "$(TEXT "Invalid password")" 0 0
done done
NEWPASSWD="$(python -c "from passlib.hash import sha512_crypt;pw=\"${VALUE}\";print(sha512_crypt.using(rounds=5000).hash(pw))")" NEWPASSWD="$(python -c "from passlib.hash import sha512_crypt;pw=\"${VALUE}\";print(sha512_crypt.using(rounds=5000).hash(pw))")"
while true; do (
mkdir -p "${TMP_PATH}/mdX" mkdir -p "${TMP_PATH}/mdX"
mount "$(ls /dev/md/*:0 2>/dev/null | head -n 1)" "${TMP_PATH}/mdX" for I in ${DSMROOTS}; do
[ $? -ne 0 ] && break mount "${I}" "${TMP_PATH}/mdX"
OLDPASSWD="$(cat "${TMP_PATH}/mdX/etc/shadow" 2>/dev/null | grep "^${USER}:" | awk -F ':' '{print $2}')" [ $? -ne 0 ] && continue
if [ -n "${NEWPASSWD}" -a -n "${OLDPASSWD}" ]; then OLDPASSWD="$(cat "${TMP_PATH}/mdX/etc/shadow" 2>/dev/null | grep "^${USER}:" | awk -F ':' '{print $2}')"
sed -i "s|${OLDPASSWD}|${NEWPASSWD}|g" "${TMP_PATH}/mdX/etc/shadow" if [ -n "${NEWPASSWD}" -a -n "${OLDPASSWD}" ]; then
sed -i "/^${USER}:/ s/\([^:]*\):\([^:]*\):\([^:]*\):\([^:]*\):\([^:]*\):\([^:]*\):\([^:]*\):\([^:]*\):\([^:]*\)/\1:\2:\3:\4:\5:\6:\7::\9/" "${TMP_PATH}/mdX/etc/shadow" sed -i "s|${OLDPASSWD}|${NEWPASSWD}|g" "${TMP_PATH}/mdX/etc/shadow"
fi sed -i "/^${USER}:/ s/\([^:]*\):\([^:]*\):\([^:]*\):\([^:]*\):\([^:]*\):\([^:]*\):\([^:]*\):\([^:]*\):\([^:]*\)/\1:\2:\3:\4:\5:\6:\7::\9/" "${TMP_PATH}/mdX/etc/shadow"
sed -i "s|status=on|status=off|g" "${TMP_PATH}/mdX/usr/syno/etc/packages/SecureSignIn/preference/${USER}/method.config" 2>/dev/null fi
sync sed -i "s|status=on|status=off|g" "${TMP_PATH}/mdX/usr/syno/etc/packages/SecureSignIn/preference/${USER}/method.config" 2>/dev/null
umount "${TMP_PATH}/mdX" sync
umount "${TMP_PATH}/mdX"
done
rm -rf "${TMP_PATH}/mdX" rm -rf "${TMP_PATH}/mdX"
break ) 2>&1 | DIALOG --title "$(TEXT "Advanced")" \
done 2>&1 | DIALOG --title "$(TEXT "Advanced")" \
--progressbox "$(TEXT "Resetting ...")" 20 100 --progressbox "$(TEXT "Resetting ...")" 20 100
DIALOG --title "$(TEXT "Advanced")" \ DIALOG --title "$(TEXT "Advanced")" \
--msgbox "$(TEXT "Password reset completed.")" 0 0 --msgbox "$(TEXT "Password reset completed.")" 0 0
@ -1999,7 +2003,8 @@ function resetDSMPassword() {
############################################################################### ###############################################################################
# Reset DSM system password # Reset DSM system password
function addNewDSMUser() { function addNewDSMUser() {
if [ -z "$(ls /dev/md/*:0 2>/dev/null)" ]; then # SynologyNAS:0, DiskStation:0, SynologyNVR:0, BeeStation:0 DSMROOTS="$(findDSMRoot)"
if [ -z "${DSMROOTS}" ]; then
DIALOG --title "$(TEXT "Advanced")" \ DIALOG --title "$(TEXT "Advanced")" \
--msgbox "$(TEXT "No DSM system partition(md0) found!\nPlease insert all disks before continuing.")" 0 0 --msgbox "$(TEXT "No DSM system partition(md0) found!\nPlease insert all disks before continuing.")" 0 0
return return
@ -2016,10 +2021,11 @@ function addNewDSMUser() {
ONBOOTUP="${ONBOOTUP}if synouser --enum local | grep -q ^${username}\$; then synouser --setpw ${username} ${password}; else synouser --add ${username} ${password} rr 0 user@rr.com 1; fi\n" ONBOOTUP="${ONBOOTUP}if synouser --enum local | grep -q ^${username}\$; then synouser --setpw ${username} ${password}; else synouser --add ${username} ${password} rr 0 user@rr.com 1; fi\n"
ONBOOTUP="${ONBOOTUP}synogroup --member administrators ${username}\n" ONBOOTUP="${ONBOOTUP}synogroup --member administrators ${username}\n"
ONBOOTUP="${ONBOOTUP}echo \"DELETE FROM task WHERE task_name LIKE ''RRONBOOTUPRR_ADDUSER'';\" | sqlite3 /usr/syno/etc/esynoscheduler/esynoscheduler.db\n" ONBOOTUP="${ONBOOTUP}echo \"DELETE FROM task WHERE task_name LIKE ''RRONBOOTUPRR_ADDUSER'';\" | sqlite3 /usr/syno/etc/esynoscheduler/esynoscheduler.db\n"
while true; do
mkdir -p "${TMP_PATH}/mdX" mkdir -p "${TMP_PATH}/mdX"
mount "$(ls /dev/md/*:0 2>/dev/null | head -n 1)" "${TMP_PATH}/mdX" for I in ${DSMROOTS}; do
[ $? -ne 0 ] && break mount "${I}" "${TMP_PATH}/mdX"
[ $? -ne 0 ] && continue
if [ -f "${TMP_PATH}/mdX/usr/syno/etc/esynoscheduler/esynoscheduler.db" ]; then if [ -f "${TMP_PATH}/mdX/usr/syno/etc/esynoscheduler/esynoscheduler.db" ]; then
sqlite3 ${TMP_PATH}/mdX/usr/syno/etc/esynoscheduler/esynoscheduler.db <<EOF sqlite3 ${TMP_PATH}/mdX/usr/syno/etc/esynoscheduler/esynoscheduler.db <<EOF
DELETE FROM task WHERE task_name LIKE 'RRONBOOTUPRR_ADDUSER'; DELETE FROM task WHERE task_name LIKE 'RRONBOOTUPRR_ADDUSER';
@ -2030,9 +2036,8 @@ EOF
echo "true" >${TMP_PATH}/isEnable echo "true" >${TMP_PATH}/isEnable
fi fi
umount "${TMP_PATH}/mdX" umount "${TMP_PATH}/mdX"
rm -rf "${TMP_PATH}/mdX"
break
done done
rm -rf "${TMP_PATH}/mdX"
) 2>&1 | DIALOG --title "$(TEXT "Advanced")" \ ) 2>&1 | DIALOG --title "$(TEXT "Advanced")" \
--progressbox "$(TEXT "Adding ...")" 20 100 --progressbox "$(TEXT "Adding ...")" 20 100
[ "$(cat ${TMP_PATH}/isEnable 2>/dev/null)" = "true" ] && MSG="$(TEXT "User added successfully.")" || MSG="$(TEXT "User add failed.")" [ "$(cat ${TMP_PATH}/isEnable 2>/dev/null)" = "true" ] && MSG="$(TEXT "User added successfully.")" || MSG="$(TEXT "User add failed.")"
@ -2044,7 +2049,8 @@ EOF
############################################################################### ###############################################################################
# Force enable Telnet&SSH of DSM system # Force enable Telnet&SSH of DSM system
function forceEnableDSMTelnetSSH() { function forceEnableDSMTelnetSSH() {
if [ -z "$(ls /dev/md/*:0 2>/dev/null)" ]; then # SynologyNAS:0, DiskStation:0, SynologyNVR:0, BeeStation:0 DSMROOTS="$(findDSMRoot)"
if [ -z "${DSMROOTS}" ]; then
DIALOG --title "$(TEXT "Advanced")" \ DIALOG --title "$(TEXT "Advanced")" \
--msgbox "$(TEXT "No DSM system partition(md0) found!\nPlease insert all disks before continuing.")" 0 0 --msgbox "$(TEXT "No DSM system partition(md0) found!\nPlease insert all disks before continuing.")" 0 0
return return
@ -2053,10 +2059,10 @@ function forceEnableDSMTelnetSSH() {
ONBOOTUP="" ONBOOTUP=""
ONBOOTUP="${ONBOOTUP}synowebapi --exec api=SYNO.Core.Terminal method=set version=3 enable_telnet=true enable_ssh=true ssh_port=22 forbid_console=false\n" ONBOOTUP="${ONBOOTUP}synowebapi --exec api=SYNO.Core.Terminal method=set version=3 enable_telnet=true enable_ssh=true ssh_port=22 forbid_console=false\n"
ONBOOTUP="${ONBOOTUP}echo \"DELETE FROM task WHERE task_name LIKE ''RRONBOOTUPRR_SSH'';\" | sqlite3 /usr/syno/etc/esynoscheduler/esynoscheduler.db\n" ONBOOTUP="${ONBOOTUP}echo \"DELETE FROM task WHERE task_name LIKE ''RRONBOOTUPRR_SSH'';\" | sqlite3 /usr/syno/etc/esynoscheduler/esynoscheduler.db\n"
while true; do mkdir -p "${TMP_PATH}/mdX"
mkdir -p "${TMP_PATH}/mdX" for I in ${DSMROOTS}; do
mount "$(ls /dev/md/*:0 2>/dev/null | head -n 1)" "${TMP_PATH}/mdX" mount "${I}" "${TMP_PATH}/mdX"
[ $? -ne 0 ] && break [ $? -ne 0 ] && continue
if [ -f "${TMP_PATH}/mdX/usr/syno/etc/esynoscheduler/esynoscheduler.db" ]; then if [ -f "${TMP_PATH}/mdX/usr/syno/etc/esynoscheduler/esynoscheduler.db" ]; then
sqlite3 ${TMP_PATH}/mdX/usr/syno/etc/esynoscheduler/esynoscheduler.db <<EOF sqlite3 ${TMP_PATH}/mdX/usr/syno/etc/esynoscheduler/esynoscheduler.db <<EOF
DELETE FROM task WHERE task_name LIKE 'RRONBOOTUPRR_SSH'; DELETE FROM task WHERE task_name LIKE 'RRONBOOTUPRR_SSH';
@ -2067,9 +2073,8 @@ EOF
echo "true" >${TMP_PATH}/isEnable echo "true" >${TMP_PATH}/isEnable
fi fi
umount "${TMP_PATH}/mdX" umount "${TMP_PATH}/mdX"
rm -rf "${TMP_PATH}/mdX"
break
done done
rm -rf "${TMP_PATH}/mdX"
) 2>&1 | DIALOG --title "$(TEXT "Advanced")" \ ) 2>&1 | DIALOG --title "$(TEXT "Advanced")" \
--progressbox "$(TEXT "Enabling ...")" 20 100 --progressbox "$(TEXT "Enabling ...")" 20 100
[ "$(cat ${TMP_PATH}/isEnable 2>/dev/null)" = "true" ] && MSG="$(TEXT "Enabled Telnet&SSH successfully.")" || MSG="$(TEXT "Enabled Telnet&SSH failed.")" [ "$(cat ${TMP_PATH}/isEnable 2>/dev/null)" = "true" ] && MSG="$(TEXT "Enabled Telnet&SSH successfully.")" || MSG="$(TEXT "Enabled Telnet&SSH failed.")"
@ -2087,21 +2092,23 @@ function removeBlockIPDB {
DIALOG --title "$(TEXT "Advanced")" \ DIALOG --title "$(TEXT "Advanced")" \
--yesno "${MSG}" 0 0 --yesno "${MSG}" 0 0
[ $? -ne 0 ] && return [ $? -ne 0 ] && return
if [ -z "$(ls /dev/md/*:0 2>/dev/null)" ]; then # SynologyNAS:0, DiskStation:0, SynologyNVR:0, BeeStation:0 DSMROOTS="$(findDSMRoot)"
if [ -z "${DSMROOTS}" ]; then
DIALOG --title "$(TEXT "Advanced")" \ DIALOG --title "$(TEXT "Advanced")" \
--msgbox "$(TEXT "No DSM system partition(md0) found!\nPlease insert all disks before continuing.")" 0 0 --msgbox "$(TEXT "No DSM system partition(md0) found!\nPlease insert all disks before continuing.")" 0 0
return return
fi fi
while true; do (
mkdir -p "${TMP_PATH}/mdX" mkdir -p "${TMP_PATH}/mdX"
mount "$(ls /dev/md/*:0 2>/dev/null | head -n 1)" "${TMP_PATH}/mdX" for I in ${DSMROOTS}; do
[ $? -ne 0 ] && break mount "${I}" "${TMP_PATH}/mdX"
[ -f "${TMP_PATH}/mdX/etc/synoautoblock.db" ] && rm -f "${TMP_PATH}/mdX/etc/synoautoblock.db" [ $? -ne 0 ] && continue
sync [ -f "${TMP_PATH}/mdX/etc/synoautoblock.db" ] && rm -f "${TMP_PATH}/mdX/etc/synoautoblock.db"
umount "${TMP_PATH}/mdX" sync
umount "${TMP_PATH}/mdX"
done
rm -rf "${TMP_PATH}/mdX" rm -rf "${TMP_PATH}/mdX"
break ) 2>&1 | DIALOG --title "$(TEXT "Advanced")" \
done 2>&1 | DIALOG --title "$(TEXT "Advanced")" \
--progressbox "$(TEXT "Removing ...")" 20 100 --progressbox "$(TEXT "Removing ...")" 20 100
MSG="$(TEXT "The blocked ip database has been deleted.")" MSG="$(TEXT "The blocked ip database has been deleted.")"
DIALOG --title "$(TEXT "Advanced")" \ DIALOG --title "$(TEXT "Advanced")" \
@ -2708,7 +2715,7 @@ function downloadExts() {
if [ ${RET} -ne 0 -o ${STATUS:-0} -ne 200 ]; then if [ ${RET} -ne 0 -o ${STATUS:-0} -ne 200 ]; then
rm -f "${TMP_PATH}/${4}-${TAG}.zip" rm -f "${TMP_PATH}/${4}-${TAG}.zip"
MSG="$(printf "$(TEXT "Error downloading new version.\nError: %d:%d\n(Please via https://curl.se/libcurl/c/libcurl-errors.html check error description.)")" "${RET}" "${STATUS}")" MSG="$(printf "$(TEXT "Error downloading new version.\nError: %d:%d\n(Please via https://curl.se/libcurl/c/libcurl-errors.html check error description.)")" "${RET}" "${STATUS}")"
echo -e "${MSG}" > "${LOG_FILE}" echo -e "${MSG}" >"${LOG_FILE}"
fi fi
return 0 return 0
} }