feat(fls): DHCP, static NAT and modem settings as Java loads them
readSystemSoftware adds the DHCP client switch and server settings of every IP stack, a home router's static NAT table (port forwarding) and a modem's mode, port and address. All 23 corpus files match Java. Static DHCP assignments follow setStaticAssignedAddresses: each entry is split at Java whitespace (the same 25 characters as Character.isWhitespace, measured over the BMP), and an entry without MAC and IP ends the list, as Java throws there. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -25,8 +25,9 @@ virtuellen Bildschirm statt „headless".
|
||||
kleingeschriebene für gewürfelt.)
|
||||
* Bisher ausgelesen: Geräte (Klasse, Name, Beschriftung, Position,
|
||||
Schnittstellen, bei Rechner/Notebook `useIPAsName`/`useMACAsName`), unter
|
||||
`system` SSID, Lernzeit des Switches, RIP, manuelle Routen und die Firewall
|
||||
von Router und Heimrouter; Kabel (Enden als Gerät/Schnittstelle),
|
||||
`system` SSID, Lernzeit des Switches, RIP, manuelle Routen, die Firewall
|
||||
von Router und Heimrouter, DHCP-Client und -Server, die statische
|
||||
NAT-Tabelle des Heimrouters und die Verbindung eines Modems; Kabel (Enden als Gerät/Schnittstelle),
|
||||
Doku-Elemente.
|
||||
Systemsoftware, Dateisysteme und Anwendungen folgen schrittweise.
|
||||
|
||||
|
||||
@@ -15,11 +15,13 @@ import filius.hardware.knoten.InternetKnoten;
|
||||
import filius.hardware.knoten.Knoten;
|
||||
import filius.hardware.knoten.LokalerKnoten;
|
||||
import filius.rahmenprogramm.SzenarioVerwaltung;
|
||||
import filius.software.dhcp.DHCPServer;
|
||||
import filius.software.firewall.Firewall;
|
||||
import filius.software.firewall.FirewallRule;
|
||||
import filius.software.system.Betriebssystem;
|
||||
import filius.software.system.GatewayFirmware;
|
||||
import filius.software.system.InternetKnotenBetriebssystem;
|
||||
import filius.software.system.ModemFirmware;
|
||||
import filius.software.system.SwitchFirmware;
|
||||
import filius.software.system.SystemSoftware;
|
||||
import filius.software.system.VermittlungsrechnerBetriebssystem;
|
||||
@@ -235,6 +237,33 @@ public class FlsOracle {
|
||||
}
|
||||
}
|
||||
json.put("manualRoutes", routes);
|
||||
json.put("dhcpClient", system.isDHCPKonfiguration());
|
||||
DHCPServer server = system.getDHCPServer();
|
||||
if (server != null) {
|
||||
Map<String, Object> dhcp = new LinkedHashMap<>();
|
||||
dhcp.put("aktiv", server.isAktiv());
|
||||
dhcp.put("untergrenze", server.getUntergrenze());
|
||||
dhcp.put("obergrenze", server.getObergrenze());
|
||||
dhcp.put("gatewayip", server.getGatewayip());
|
||||
dhcp.put("dnsserverip", server.getDnsserverip());
|
||||
dhcp.put("ownSettings", server.isOwnSettings());
|
||||
dhcp.put("staticAssignedAddresses", server.getStaticAssignedAddresses());
|
||||
json.put("dhcpServer", dhcp);
|
||||
}
|
||||
}
|
||||
if (software instanceof GatewayFirmware firmware) {
|
||||
List<Object> rows = new ArrayList<>();
|
||||
if (firmware.getStaticNAT() != null) {
|
||||
for (String[] row : firmware.getStaticNAT()) rows.add(row == null ? null : Arrays.asList(row));
|
||||
}
|
||||
json.put("staticNAT", rows);
|
||||
}
|
||||
if (software instanceof ModemFirmware firmware) {
|
||||
Map<String, Object> modem = new LinkedHashMap<>();
|
||||
modem.put("mode", firmware.getMode());
|
||||
modem.put("port", firmware.getPort());
|
||||
modem.put("ipAdresse", firmware.getIpAdresse());
|
||||
json.put("modem", modem);
|
||||
}
|
||||
Firewall firewall = software instanceof VermittlungsrechnerBetriebssystem system ? system.holeFirewall()
|
||||
: software instanceof GatewayFirmware firmware ? firmware.holeFirewall() : null;
|
||||
|
||||
Reference in New Issue
Block a user