forked from kay/RouterOS
Neuer "Einrichten"-Tab führt durch Internet-Anschluss (DHCP/statisch/ PPPoE) und Heimnetzwerk+DHCP-Server, zeigt vor dem Anwenden eine Klartext-Übersicht (optional mit den exakten RouterOS-Befehlen) und erstellt automatisch eine Sicherung, bevor Änderungen geschrieben werden. Änderungen laufen über beide Transporte: CLI-Zeile für SSH, JSON-POST für REST — beide aus einem gemeinsamen RouterOSCommand gebaut. RouterOS-CLI-Syntax ist Standard und langjährig stabil, aber nicht gegen ein echtes Gerät verifiziert; deshalb die Detailanzeige im Übersichtsschritt vor dem Anwenden. ConnectionService ist jetzt der einzige App-weite Zustand (ersetzt SessionStore) und wird explizit an alle drei Tabs durchgereicht. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HReLXMbmPvtQ23p1iWiJNW
16 lines
413 B
Swift
16 lines
413 B
Swift
import Foundation
|
|
|
|
enum RouterOSTransportKind: Equatable {
|
|
case rest
|
|
case ssh
|
|
}
|
|
|
|
protocol RouterOSTransport: AnyObject {
|
|
var kind: RouterOSTransportKind { get }
|
|
func connect() async throws
|
|
func fetchDeviceInfo() async throws -> RouterDeviceInfo
|
|
func fetchInterfaces() async throws -> [NetworkInterface]
|
|
func apply(_ command: RouterOSCommand) async throws
|
|
func disconnect() async
|
|
}
|