feat(editor): F4.5d the firewall in the device sheet
Measured first: SheetRun drives FILIUS' firewall dialog down to its table editor (Swing's own end of an edit). Java's table writes a cell into the rule before it checks it, so that the firewall holds "abc", a mask of 255.0.255.0 or port 0 while the table shows the old value, and reads a port that is no number as all ports. Here nothing the check refuses reaches the rule. - doc: the three switches, the default action, rules (new as Java's, cells by Java's checks: masks of ones then zeros, the directly connected marker as a source only, an empty port for all ports; protocol, action, moved up or down, removed) - editor: the firewall as a page of the router's and home router's sheet, with Java's explanations; the general tab named so (Java: "network interfaces") Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1185,3 +1185,29 @@ Gemessen (03.10.2026):
|
||||
* Portweiterleitung: Der Dialog speichert jede Zeile roh, auch Port „0“,
|
||||
„abc“, „05353“; die Firmware leitet nur gültige weiter
|
||||
(`validateData`: `musterProtocol`, `musterPort`, `musterIpAdresse`).
|
||||
|
||||
### Firewall (F4.5d)
|
||||
|
||||
`SheetRun` bedient auch `JFirewallDialog` eines Vermittlungsrechners
|
||||
(`firewall`): eine neue Regel, Zellen der Regeltabelle über Swings eigenes
|
||||
Bearbeitungsende (`stopCellEditing` → `editingStopped` → `closeEditor`),
|
||||
Verschieben und Löschen mit den Nummern, die Javas Knöpfe übergeben.
|
||||
|
||||
Gemessen (03.10.2026):
|
||||
|
||||
* Neue Firewall: aus, Standardaktion verwerfen, ICMP nicht filtern, nur
|
||||
SYN verwerfen an. Neue Regel: alle Felder leer, TCP, alle Ports (−1),
|
||||
verwerfen.
|
||||
* `closeEditor` schreibt die Zelle in das Regelobjekt der Firewall, bevor
|
||||
`validateExistingAttributes` prüft; besteht die Regel nicht, wird nur die
|
||||
Tabelle nicht aufgefrischt. Die Firewall hält dann „abc“ als Quelle,
|
||||
„255.0.255.0“ oder „0.0.0.0“ als Maske, „999.999.999.999“ als Ziel, Port 0
|
||||
oder 65536.
|
||||
* Masken: `isValidSubnetmask` (Einsen, dann Nullen, mindestens eine Eins).
|
||||
Quelle und Ziel: `musterIpAdresse` ohne `ipCheck` („.0.0.1“ und
|
||||
„010.0.0.0“ bleiben, wie getippt); die Marke „999.999.999.999“ gilt nur als
|
||||
Quelle. Leerzeichen gelten als leer.
|
||||
* Port: `Integer.valueOf`, was keine Zahl ist („abc“, „“), wird zu „alle
|
||||
Ports“; „080“ wird 80.
|
||||
* rauf/runter: Die erste Regel geht nicht höher, die letzte nicht tiefer
|
||||
(`moveUp`/`moveDown` antworten `false`).
|
||||
|
||||
Reference in New Issue
Block a user