feat: Passwortanforderungen für AP und verbesserte Fehlerbehandlung bei WiFi-Verbindungen; Versionsnummer auf 1.0.73 erhöht

This commit is contained in:
2026-05-17 17:14:51 +02:00
parent f96c656385
commit e3e1c11a8a
3 changed files with 18 additions and 7 deletions

View File

@@ -53,7 +53,7 @@ DEFAULT_CONFIG = {
'verify_checksum': False, 'delete_source': False,
# WiFi
'wifi_ssid': '', 'wifi_password': '',
'ap_ssid': 'PiCopy', 'ap_password': 'PiCopy,',
'ap_ssid': 'PiCopy', 'ap_password': 'PiCopy123',
# WireGuard
'wireguard_auto': False,
}
@@ -70,6 +70,9 @@ def load_cfg():
except Exception: pass
except Exception as e:
log.warning(f'config.json nicht lesbar: {e}')
# Migration: altes 7-Zeichen-Standardpasswort auf gültiges WPA2-Passwort anheben
if cfg.get('ap_password') == 'PiCopy,':
cfg['ap_password'] = 'PiCopy123'
return cfg

View File

@@ -57,6 +57,9 @@ def is_ap_active():
def start_ap(ssid, password):
if len(password) < 8:
log.error(f'AP-Passwort zu kurz ({len(password)} Zeichen, min. 8 für WPA2)')
return False
log.info(f'Starte AP: {ssid}')
nm('con', 'delete', NM_AP_CON)
time.sleep(1)
@@ -80,13 +83,18 @@ def stop_ap():
def connect_client_wifi(ssid, password):
log.info(f'Verbinde mit WiFi: {ssid}')
# Bestehende PiCopy-WiFi Verbindung löschen
nm('con', 'delete', NM_CLIENT_CON)
time.sleep(1)
r = nm('dev', 'wifi', 'connect', ssid,
'password', password,
'name', NM_CLIENT_CON,
'ifname', 'wlan0')
try:
# --wait 15: nmcli gibt nach 15 s auf; subprocess-Timeout als Sicherheitsnetz
r = subprocess.run(
['nmcli', '--wait', '15', 'dev', 'wifi', 'connect', ssid,
'password', password, 'name', NM_CLIENT_CON, 'ifname', 'wlan0'],
capture_output=True, text=True, timeout=25,
)
except subprocess.TimeoutExpired:
log.warning(f'WiFi-Verbindung Timeout (SSID: {ssid})')
return False
ok = r.returncode == 0
if ok:
log.info(f'Verbunden mit {ssid}')