[PR #17607] test zapret.ps1: ipset восстанавливается там, где его не меняли #501

Open
opened 2026-09-21 11:18:14 +03:00 by mirror-bot · 0 comments

📋 Pull Request Information

Original PR: https://github.com/Flowseal/zapret-discord-youtube/pull/17607
Author: @klaymm
Created: 9/20/2026
Status: 🔄 Open

Base: main ← Head: fix/ipset-restore-guard


📝 Commits (2)

  • 0b62b49 test zapret.ps1: ipset восстанавливается там, где его не меняли
  • 3755fbe test zapret.ps1: поднимать флаг ipset до переключения

📊 Changes

1 file changed (+6 additions, -3 deletions)

View changed files

📝 utils/test zapret.ps1 (+6 -3)

📄 Description

Переключение ipset в any происходит только в DPI-режиме:

if (($originalIpsetStatus -ne "any") -and ($testType -eq 'dpi')) {

А восстановление в finally, catch и trap завязано на $originalIpsetStatus, про режим там ничего нет:

if ($originalIpsetStatus -ne "any") {
    Write-Host "[INFO] Restoring original ipset mode..." -ForegroundColor DarkGray
    Set-IpsetMode -mode "restore"
}

Поэтому после стандартного прогона пользователь видит [INFO] Restoring original ipset mode..., хотя ipset никто не трогал, и вхолостую вызывается Set-IpsetMode -mode "restore".

Добавил флаг $ipsetSwitched, который выставляется в месте реального переключения, и заменил на него условие во всех трёх обработчиках. Текст сообщений не менял.

Проверка:

testType=standard  ipset=none  -> тихо, восстановление не вызывается
testType=dpi       ipset=none  -> печатает [INFO] Restoring original ipset mode... и восстанавливает

При этом, предупреждение в начале скрипта не трогал - там прямо сказано, что переключение нужно для DPI-тестов.
Да и тем более в начале скрипта сделано правильно, что все предупреждения сразу выносятся.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/Flowseal/zapret-discord-youtube/pull/17607 **Author:** [@klaymm](https://github.com/klaymm) **Created:** 9/20/2026 **Status:** 🔄 Open **Base:** `main` ← **Head:** `fix/ipset-restore-guard` --- ### 📝 Commits (2) - [`0b62b49`](https://github.com/Flowseal/zapret-discord-youtube/commit/0b62b49bdac921117e71371c83c893824c9da1ed) test zapret.ps1: ipset восстанавливается там, где его не меняли - [`3755fbe`](https://github.com/Flowseal/zapret-discord-youtube/commit/3755fbefd7f2fd15951630418a23ddc3c6ab0e62) test zapret.ps1: поднимать флаг ipset до переключения ### 📊 Changes **1 file changed** (+6 additions, -3 deletions) <details> <summary>View changed files</summary> 📝 `utils/test zapret.ps1` (+6 -3) </details> ### 📄 Description # Переключение ipset в `any` происходит только в DPI-режиме: ```powershell if (($originalIpsetStatus -ne "any") -and ($testType -eq 'dpi')) { ``` А восстановление в `finally`, `catch` и `trap` завязано на `$originalIpsetStatus`, про режим там ничего нет: ```powershell if ($originalIpsetStatus -ne "any") { Write-Host "[INFO] Restoring original ipset mode..." -ForegroundColor DarkGray Set-IpsetMode -mode "restore" } ``` Поэтому после стандартного прогона пользователь видит `[INFO] Restoring original ipset mode...`, хотя ipset никто не трогал, и вхолостую вызывается `Set-IpsetMode -mode "restore"`. Добавил флаг `$ipsetSwitched`, который выставляется в месте реального переключения, и заменил на него условие во всех трёх обработчиках. Текст сообщений не менял. Проверка: ``` testType=standard ipset=none -> тихо, восстановление не вызывается testType=dpi ipset=none -> печатает [INFO] Restoring original ipset mode... и восстанавливает ``` При этом, предупреждение в начале скрипта не трогал - там прямо сказано, что переключение нужно для DPI-тестов. Да и тем более в начале скрипта сделано правильно, что все предупреждения сразу выносятся. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
mirror-bot added the pull-request label 2026-09-21 11:18:14 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Utilities/zapret-discord-youtube#501