Commit Graph
16 Commits
Author SHA1 Message Date
tuxgyver 97bf27be16 chore(release): v0.4.6 2026-09-01 13:36:02 +02:00
tuxgyver f6c3622e1d fix: handshake bloqué par la passerelle dans les IPs autorisées
Quand la passerelle qui mène au serveur appartient à une plage des « IPs
autorisées », wg-quick pose sa route vers le tunnel avec une métrique de 0.
Elle bat la route de lien de la carte réseau : la passerelle n'est plus
joignable que par le tunnel, alors que le tunnel a besoin d'elle pour sortir.
Le tunnel montait, l'interface existait, et plus aucun paquet de handshake ne
quittait la machine.

Le diagnostic détecte désormais ce cas via _next_hop() (ip route get sous
Linux, Find-NetRoute sous Windows) et le classe en échec, au lieu du simple
avertissement sur l'imprimante et le NAS qui n'en disait pas la gravité.

Corrige aussi le rapport de test de connexion : un QLabel que la mise en page
comprimait à quelques lignes tronquées, remplacé par une zone de texte
défilante ; la fenêtre d'administration, figée à 700x600, devient
redimensionnable.
2026-09-01 13:35:56 +02:00
tuxgyverandClaude Opus 5 9d785c00cc chore(release): v0.4.5
fix: la clé pré-partagée n'était écrite dans aucune config client

L'assistant de génération produisait une PresharedKey affichée à l'écran mais
stockée nulle part, et l'import d'un .conf ignorait la ligne. Face à un serveur
qui en attend une, le tunnel montait et l'interface existait — sans qu'aucun
handshake n'aboutisse jamais. La PSK devient un champ à part entière.

fix: options de ligne de commande wireguard.exe incorrectes sous Windows

/installtunnel et /uninstalltunnel n'existent pas ; les vrais verbes sont
/installtunnelservice et /uninstalltunnelservice. S'y ajoutaient l'absence de
résolution du chemin d'installation (WireGuard n'est pas dans le PATH),
l'absence totale d'élévation UAC alors que ces commandes l'exigent, et une
détection d'installation qui sondait une application graphique avec --help.

feat: diagnostic de bout en bout de la chaîne de connexion

Le bouton de test s'arrêtait à la joignabilité UDP et concluait « serveur
joignable » sur un tunnel qui n'échangeait rien. Il déroule désormais quatorze
étapes, de la configuration locale jusqu'au DNS dans le tunnel, et désigne
l'étape qui bloque.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-31 15:41:43 +02:00
tuxgyver 09724f4e4f chore(release): v0.4.3 2026-08-31 14:22:24 +02:00
tuxgyverandClaude Opus 5 32b44ec323 fix: fenêtres console Windows apparaissant en boucle
Sous Windows, tout processus console lancé depuis une application GUI ouvre
une fenêtre cmd. WGSecure interroge `ping` et `wireguard` à chaque cycle de
rafraîchissement du statut, ce qui faisait clignoter des fenêtres DOS en
permanence pendant toute la durée d'exécution.

Tous les appels externes passent par run_command() : le drapeau
CREATE_NO_WINDOW y est désormais posé sous Windows, doublé d'un startupinfo
SW_HIDE pour les lanceurs qui l'ignorent. Sans effet sous Linux.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-31 14:19:58 +02:00
tuxgyver 60e85b1c20 chore(release): v0.4.2 2026-08-31 13:58:52 +02:00
tuxgyver 84868526fc maj 2026-08-31 13:48:41 +02:00
tuxgyver c2ac02ee7b chore(release): v0.4.1 2026-08-31 11:16:04 +02:00
tuxgyver 1b74719204 fix: DNS coupée après arrêt du tunnel, gel UI, dialogues sudo à répétition
- wg-quick down échoue silencieusement si l'interface a déjà disparu
  (crash, kill, veille) et ne retire donc jamais l'entrée DNS posée par
  wg-quick up : la résolution reste pointée sur un résolveur mort.
  Ajout d'un nettoyage DNS inconditionnel (app/core/dns.py) déclenché à
  la connexion, la déconnexion, la fermeture et au démarrage suivant.
- is_connected() se basait sur `wg show`, qui rend un code 0 même en cas
  d'échec de permission pour un utilisateur non-root : l'app se croyait
  déconnectée en permanence et ne démontait donc jamais le tunnel à la
  fermeture. Détection réécrite via sysfs (sans privilèges).
- Connexion/déconnexion et ping tournaient sur le thread Qt : gel de
  l'UI pendant les élévations de privilèges. Déportés dans des
  QThread (app/ui/worker.py).
- Restauration réseau garantie sur toutes les sorties (croix, tray,
  SIGINT/SIGTERM, atexit, exception) via app/core/shutdown.py.
- run_privileged() : la détection "sudo veut un mot de passe" ratait en
  session non-anglophone et sur les comptes ALL=(ALL) ALL ; réécrite
  pour se fier au message d'erreur réel plutôt qu'à `sudo -l`.
- Écriture de la config WireGuard dans /etc/wireguard (root:root 0700)
  passe maintenant par install -D via la chaîne de privilèges complète
  au lieu d'un tee non autorisé par les sudoers.
- Ajout d'un diagnostic des droits (make check-privileges, bouton
  Admin) et mise à jour de setup-sudoers pour couvrir toutes les
  commandes désormais utilisées.
2026-08-31 11:16:04 +02:00
tuxgyver d03a75057e Windows 2026-07-21 10:21:13 +02:00
tuxgyver ea2e6d772b update 2026-06-29 10:19:16 +02:00
Johnny 2f9ca6b553 Fix bugs 2026-06-03 09:55:39 +02:00
Johnny b3f0a2eecc Update 2026-06-02 07:34:09 +02:00
Johnny d927afbb87 Update 2026-06-01 23:24:38 +02:00
Johnny d23d0c15be Update 2026-06-01 23:22:18 +02:00
Johnny 0d2646a9ad Initial release 2026-06-01 22:31:22 +02:00