feat(fls): write the installed applications of a .fls, loaded by Java as the original
topologyWriter.ts puts each installed application of a PC or notebook under its key and gives it the system software, as installApp does, with its settings: a server's switch and port, a client's target, DNS recursion, virtual hosts, the peer count, the personal firewall. The applications follow the files, as in Java's own files: the web server, the peer-to-peer application and the e-mail server make their directories only where the files lack them, and the DNS server reads /dns/hosts when it is installed. E-mail accounts, messages and address books are the next step. The Java oracle now reports a personal firewall's rules in full, not their number (the corpus has none; its result is byte-equal). Checked by Java against Java: every corpus file, read and written again, loads with the same applications as the original. The synthetic topology adds every FILIUS application with settings away from its defaults, a personal firewall with a rule, an own index.html (Java makes no second) and a missing /peer2peer directory, which Java makes at the end. 12 mutation probes, among them files and applications in reverse order, each loaded by Java, were all caught. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -91,7 +91,15 @@ function javaApplications(applications: FlsApplication[]): unknown[] {
|
||||
dropICMP: application.firewall.dropICMP,
|
||||
filterSYNSegmentsOnly: application.firewall.filterSYNSegmentsOnly,
|
||||
filterUdp: application.firewall.filterUdp,
|
||||
rules: application.firewall.rules.length,
|
||||
rules: application.firewall.rules.map((rule) => [
|
||||
rule.srcIP,
|
||||
rule.srcMask,
|
||||
rule.destIP,
|
||||
rule.destMask,
|
||||
rule.port,
|
||||
rule.protocol,
|
||||
rule.action,
|
||||
]),
|
||||
}),
|
||||
...(application.mailDomain === undefined
|
||||
? {}
|
||||
|
||||
Reference in New Issue
Block a user