chore(release): v0.7.17
Corrige la cause racine des invites d'authentification persistantes : le service wgsecure-helper ne démarrait jamais réellement. Lancé par le SCM (sans commande sur la ligne d'appel), HandleCommandLine() se contentait d'afficher son aide et de sortir, sans entrer dans le dispatcher — SvcDoRun n'était donc jamais exécuté, aucun journal n'était créé, le pipe n'existait jamais, et l'app retombait toujours sur l'élévation UAC. Bascule sur PrepareToHostSingle() + StartServiceCtrlDispatcher() quand argv est vide. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -6,6 +6,14 @@ Ce projet suit le [Versionnage Sémantique](https://semver.org/lang/fr/).
|
||||
|
||||
---
|
||||
|
||||
## [0.7.17] — 2026-09-05
|
||||
|
||||
### Corrigé
|
||||
- **Le service `wgsecure-helper` ne démarrait jamais réellement** — cause racine des invites d'authentification qui persistaient malgré les v0.7.12 à v0.7.16. Lancé par le gestionnaire de services, l'exécutable ne reçoit aucune commande sur sa ligne d'appel : `win32serviceutil.HandleCommandLine()` se contentait alors d'afficher son aide et de sortir, sans jamais entrer dans le dispatcher de service. `SvcDoRun()` n'était donc jamais exécuté (d'où l'absence totale de fichier journal), le pipe n'existait jamais, et l'application retombait systématiquement sur l'élévation UAC. Le point d'entrée bascule désormais sur `servicemanager.PrepareToHostSingle()` + `StartServiceCtrlDispatcher()` quand le service est démarré par le SCM, et ne conserve `HandleCommandLine()` que pour les invocations manuelles (`install`, `start`, `debug`…).
|
||||
- Un échec de création du journal fichier est désormais signalé dans le journal d'événements Windows (source « WGSecureHelper ») au lieu de rester totalement silencieux.
|
||||
|
||||
---
|
||||
|
||||
## [0.7.16] — 2026-09-04
|
||||
|
||||
### Corrigé
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
## ──────────────────────────────────────────────
|
||||
|
||||
APP := wgsecure
|
||||
VERSION := 0.7.16
|
||||
VERSION := 0.7.17
|
||||
VENV := .venv
|
||||
PYTHON := $(VENV)/bin/python3
|
||||
PIP := $(VENV)/bin/pip
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# 🛡️ WGSecure (WGS)
|
||||
|
||||
🚀 v0.7.16 · 🐍 · 🪟🐧 · 🔐 MFA TOTP · 🛡️ WireGuard
|
||||
🚀 v0.7.17 · 🐍 · 🪟🐧 · 🔐 MFA TOTP · 🛡️ WireGuard
|
||||
|
||||
**WGSecure** est une interface graphique multiplateforme (Windows & Linux) pour gérer une connexion WireGuard avec une surcouche MFA (authentification à deux facteurs TOTP).
|
||||
|
||||
@@ -210,4 +210,4 @@ WGSecure/
|
||||
## 👤 Auteur
|
||||
|
||||
Développé par **Johnny** — [JT-Tools](https://github.com/JT-Tools)
|
||||
Version :  — Septembre 2026
|
||||
Version :  — Septembre 2026
|
||||
|
||||
+1
-1
@@ -1,3 +1,3 @@
|
||||
__version__ = "0.7.16"
|
||||
__version__ = "0.7.17"
|
||||
APP_NAME = "WGSecure"
|
||||
APP_SHORT = "WGS"
|
||||
|
||||
@@ -23,6 +23,7 @@ import logging
|
||||
import os
|
||||
import re
|
||||
import subprocess
|
||||
import sys
|
||||
from logging.handlers import RotatingFileHandler
|
||||
|
||||
import pywintypes
|
||||
@@ -271,7 +272,18 @@ class WGSecureHelperService(win32serviceutil.ServiceFramework):
|
||||
servicemanager.PYS_SERVICE_STARTED,
|
||||
(self._svc_name_, ""),
|
||||
)
|
||||
# La création du journal fichier est elle-même faillible (dossier
|
||||
# non inscriptible…) : sans ce garde-fou, un échec ici laisserait
|
||||
# zéro trace nulle part. Le journal d'événements Windows sert donc
|
||||
# de canal de dernier recours (Observateur d'événements →
|
||||
# Applications, source « WGSecureHelper »).
|
||||
try:
|
||||
logger = _get_logger()
|
||||
except Exception as e:
|
||||
servicemanager.LogErrorMsg(
|
||||
f"WGSecureHelper : journal fichier impossible ({e})")
|
||||
raise
|
||||
|
||||
logger.info("Service démarré")
|
||||
try:
|
||||
self._serve_forever(logger)
|
||||
@@ -281,6 +293,8 @@ class WGSecureHelperService(win32serviceutil.ServiceFramework):
|
||||
# exploitable ici plutôt qu'un service qui disparaît en
|
||||
# silence sans rien dans le log.
|
||||
logger.exception("Arrêt inattendu de la boucle principale")
|
||||
servicemanager.LogErrorMsg(
|
||||
"WGSecureHelper : arrêt inattendu, cf. helper.log")
|
||||
finally:
|
||||
logger.info("Service arrêté")
|
||||
|
||||
@@ -327,4 +341,17 @@ class WGSecureHelperService(win32serviceutil.ServiceFramework):
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
if len(sys.argv) == 1:
|
||||
# Lancé par le gestionnaire de services (SCM), qui n'ajoute aucune
|
||||
# commande à la ligne d'appel : il faut entrer explicitement dans le
|
||||
# dispatcher. `HandleCommandLine()` seul, dans ce cas, se contente
|
||||
# d'afficher son aide et de sortir — le service démarrait donc puis
|
||||
# s'arrêtait aussitôt, sans jamais exécuter SvcDoRun (d'où l'absence
|
||||
# totale de fichier journal et un pipe qui n'existait jamais, l'app
|
||||
# retombant alors systématiquement sur l'élévation UAC).
|
||||
servicemanager.Initialize()
|
||||
servicemanager.PrepareToHostSingle(WGSecureHelperService)
|
||||
servicemanager.StartServiceCtrlDispatcher()
|
||||
else:
|
||||
# Invocation manuelle : install / remove / start / stop / debug…
|
||||
win32serviceutil.HandleCommandLine(WGSecureHelperService)
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@
|
||||
; ──────────────────────────────────────────────
|
||||
|
||||
#define MyAppName "WGSecure"
|
||||
#define MyAppVersion "0.7.16"
|
||||
#define MyAppVersion "0.7.17"
|
||||
#define MyAppPublisher "WGSecure"
|
||||
#define MyAppExeName "wgsecure.exe"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user