feat: Passwortanforderungen für AP und verbesserte Fehlerbehandlung bei WiFi-Verbindungen; Versionsnummer auf 1.0.73 erhöht
This commit is contained in:
@@ -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}')
|
||||
|
||||
Reference in New Issue
Block a user