v1.9.3: Fix wifi_connect (escaping shell + URL) + log dédié

Bugs corrigés:
- launcher.php passait SSID/PASS au shell sans escapeshellarg(): un
  mot de passe avec $/&/;/espace cassait silencieusement la commande
  avant que nmcli ne soit appelé. Cause probable des retours clients
  "ça bloque au cliquer sur Se connecter".
- wifi.html n'encodait pas SSID/PASS dans l'URL: caractères &/+/=
  corrompaient la requête.

Observabilité:
- Nouveau fichier logs/wifi_connect.log avec timestamps stricts
- launcher.php log la requête entrante (IP, longueurs SSID/PASS)
- connexion.sh: fonction log_wc(), snapshots NM avant/après,
  capture stdout+stderr nmcli, code retour explicite, fallback SSID
  dérivé du serial si deviceName indisponible.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
PaulVua
2026-05-20 11:23:10 +02:00
parent 69fa928d56
commit 3109455ea0
5 changed files with 118 additions and 41 deletions

View File

@@ -1,5 +1,23 @@
{
"versions": [
{
"version": "1.9.3",
"date": "2026-05-20",
"changes": {
"features": [
"Nouveau log dédié logs/wifi_connect.log (timestamps stricts) tracant chaque étape d'une tentative de connexion WiFi depuis le mode hotspot: réception de la requête PHP, état NetworkManager avant/après, code de retour et sortie complète de nmcli, fallback hotspot si échec"
],
"improvements": [
"connexion.sh: réécrit avec fonction log_wc() horodatée, snapshots NM avant/après, capture stdout+stderr de nmcli, validation des arguments d'entrée, busy timeout SQLite, fallback SSID dérivé du serial RPi"
],
"fixes": [
"Correction critique du flow wifi_connect: launcher.php n'échappait pas les arguments SSID/PASS passés en shell (pas d'escapeshellarg). Les SSID avec espaces ou les mots de passe contenant $, &, ;, espaces, etc. étaient corrompus avant d'atteindre nmcli, faisant échouer silencieusement la connexion (retour client: 'ça bloque au moment de cliquer sur se connecter')",
"wifi.html: ajout de encodeURIComponent() sur SSID et PASS dans l'URL de wifi_connect (caractères &, +, =, # cassaient la requête côté serveur)"
],
"compatibility": []
},
"notes": "Corrige le bug le plus probable derrière les retours clients de connexion WiFi qui échoue sans message d'erreur. Le nouveau log wifi_connect.log permet désormais de diagnostiquer précisément un échec (à fournir lors de tout futur retour client). Log tronqué automatiquement chaque nuit comme les autres logs."
},
{
"version": "1.9.2",
"date": "2026-05-20",