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:
2026-10-03 12:27:10 +00:00
co-authored by Claude Opus 5.5
parent c8edb87210
commit 4e062bb347
15 changed files with 1399 additions and 12 deletions
+24
View File
@@ -42,6 +42,29 @@
"dhcp.static": "Static Address Assignment",
"dhcp.subnetMask": "Netmask",
"dhcp.upperBound": "Upper bound of address",
"firewall.accept": "accept",
"firewall.action": "Action",
"firewall.active": "Activate firewall",
"firewall.activeHint": "Firewall rules will only be applied if the firewall is activated. In the case of a not activated firewall no packet filtering will take place.",
"firewall.add": "add new rule",
"firewall.defaultPolicy": "Default action, if no rule matches",
"firewall.delete": "delete rule",
"firewall.destinationIPAddress": "Dest. IP",
"firewall.destinationSubnetMask": "Netmask",
"firewall.down": "move down",
"firewall.drop": "drop",
"firewall.dropIcmp": "Filter ICMP packets",
"firewall.dropIcmpHint": "All ICMP packets, e.g., ping requests, will be dropped.",
"firewall.filterSyn": "only drop SYN packets",
"firewall.filterSynHint": "New connection requests to blocked ports will be dropped.\nBack channels for allowed connection requests will be accepted.",
"firewall.intro": "The following rules are evaluated from top to bottom. For the first matching rule the given action will be used.\nAll fields (except protocol and action) are optional. Empty fields will not be considered for packet filtering.\nIf an IP address is used, then the subnet mask has to be filled in as well! A subnet mask different to 255.255.255.255 can be used to address whole subnet ranges.\nUsing the default policy switch the approach can be toggled from blacklisting to whitelisting and vice versa.",
"firewall.number": "ID",
"firewall.port": "Port",
"firewall.protocol": "Protocol",
"firewall.rules": "Firewall Rules",
"firewall.sourceIPAddress": "Source IP",
"firewall.sourceSubnetMask": "Netmask",
"firewall.up": "move up",
"forwarding.lanIPAddress": "LAN Address",
"forwarding.lanPortValue": "LAN Port",
"forwarding.protocolValue": "Protocol",
@@ -71,6 +94,7 @@
"sheet.dhcpServer": "DHCP server setup",
"sheet.dnsServer": "Domain Name Server",
"sheet.empty": "(empty)",
"sheet.firewall": "Firewall settings",
"sheet.forwardingTable": "Forwarding table",
"sheet.general": "General",
"sheet.invalidValue": "This value is invalid.",