[PR #17182] service.bat: checking the result of sc create (error 1060 with a long path) #485

Open
opened 2026-08-31 13:24:37 +03:00 by mirror-bot · 0 comments

📋 Pull Request Information

Original PR: https://github.com/Flowseal/zapret-discord-youtube/pull/17182
Author: @levinsseri
Created: 8/31/2026
Status: 🔄 Open

Base: main ← Head: main


📝 Commits (2)

📊 Changes

2 files changed (+9 additions, -2 deletions)

View changed files

📝 service.bat (+7 -0)
📝 utils/test zapret.ps1 (+2 -2)

📄 Description

Fixes #17048

Fixes #16816


Fixes #17048:

Проблема:

Run Tests показывал UNSUP (мол, TLS не поддерживается), хотя сайты работали из-за того, что любой curl exit code 35 (ошибка SSL-соединения, например CRYPT_E_REVOCATION_OFFLINE) и голое слово schannel/SSL считались "нет поддержки TLS".

Что убрал:

# ДО (строка 203, DPI-тест):
} elseif (($exit -eq 35) -or ($text -match "...|schannel|SSL")) {
# ПОСЛЕ:
} elseif ($text -match "...not supported...|unsupported feature") {

# ДО (строка 701, HTTP-тест):
$unsupported = (($LASTEXITCODE -eq 35) -or ($stderr -match "...|schannel"))
# ПОСЛЕ:
$unsupported = ($stderr -match "...not supported...|unsupported feature")

Оставлены только настоящие сигналы "не поддерживается" (not supported, unsupported protocol, Unrecognized option и т.д.). Теперь ошибка соединения корректно считается FAIL/ERROR, а не UNSUP.

Fixes #16816:
При неудачном sc create (слишком длинный путь установки/аргументов) скрипт теперь выводит понятное сообщение об ошибке и прерывает установку, вместо того чтобы продолжать и показывать запутывающие ошибки 1060.

Проблема

При установке службы из папки с длинным путём команда sc create молча завершалась неудачей (служба не создавалась, ImagePath в реестре обрезался, sc qc zapret возвращал 1734). Скрипт не проверял результат и продолжал выполнять sc description, sc start, reg add, из-за чего пользователь видел:

[SC] OpenService FAILED 1060: The specified service does not exist as an installed service.

Причина выглядела как "проблема со службой", хотя на деле была в чрезмерной длине командной строки.

Техническое описание изменения:

После команды sc create добавлена проверка if !errorlevel! neq 0. При неудаче выводятся сообщения через существующие хелперы :PrintRed/:PrintYellow с подсказкой перенести сборку в короткий путь (C:\zapret), после чего выполняется goto menu. Успешный путь не затронут.


🔄 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/17182 **Author:** [@levinsseri](https://github.com/levinsseri) **Created:** 8/31/2026 **Status:** 🔄 Open **Base:** `main` ← **Head:** `main` --- ### 📝 Commits (2) - [`bfb7923`](https://github.com/Flowseal/zapret-discord-youtube/commit/bfb7923ac9f2600b9cda4e853ed0731317c4dab6) Fixes #16816 - [`1e6706d`](https://github.com/Flowseal/zapret-discord-youtube/commit/1e6706dd3c3161b75d5140dfa1c4bb8a34e19992) Fixes #17048 ### 📊 Changes **2 files changed** (+9 additions, -2 deletions) <details> <summary>View changed files</summary> 📝 `service.bat` (+7 -0) 📝 `utils/test zapret.ps1` (+2 -2) </details> ### 📄 Description ### Fixes #17048 ### Fixes #16816 --- Fixes #17048: ### Проблема: Run Tests показывал UNSUP (мол, TLS не поддерживается), хотя сайты работали из-за того, что любой curl exit code 35 (ошибка SSL-соединения, например CRYPT_E_REVOCATION_OFFLINE) и голое слово schannel/SSL считались "нет поддержки TLS". ### Что убрал: ```PowerShell # ДО (строка 203, DPI-тест): } elseif (($exit -eq 35) -or ($text -match "...|schannel|SSL")) { # ПОСЛЕ: } elseif ($text -match "...not supported...|unsupported feature") { # ДО (строка 701, HTTP-тест): $unsupported = (($LASTEXITCODE -eq 35) -or ($stderr -match "...|schannel")) # ПОСЛЕ: $unsupported = ($stderr -match "...not supported...|unsupported feature") ``` Оставлены только настоящие сигналы "не поддерживается" (not supported, unsupported protocol, Unrecognized option и т.д.). Теперь ошибка соединения корректно считается FAIL/ERROR, а не UNSUP. Fixes #16816: При неудачном sc create (слишком длинный путь установки/аргументов) скрипт теперь выводит понятное сообщение об ошибке и прерывает установку, вместо того чтобы продолжать и показывать запутывающие ошибки 1060. ### Проблема При установке службы из папки с длинным путём команда sc create молча завершалась неудачей (служба не создавалась, ImagePath в реестре обрезался, sc qc zapret возвращал 1734). Скрипт не проверял результат и продолжал выполнять sc description, sc start, reg add, из-за чего пользователь видел: ```text [SC] OpenService FAILED 1060: The specified service does not exist as an installed service. ``` Причина выглядела как "проблема со службой", хотя на деле была в чрезмерной длине командной строки. ### Техническое описание изменения: После команды sc create добавлена проверка if !errorlevel! neq 0. При неудаче выводятся сообщения через существующие хелперы :PrintRed/:PrintYellow с подсказкой перенести сборку в короткий путь (C:\zapret), после чего выполняется goto menu. Успешный путь не затронут. --- <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-08-31 13:24:37 +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#485