Das Booten passiert einmalig beim
Load,
start ist dafür nicht nötig - sondern hinderlich, da hier nur die (nicht vorhandenen) Maskeninhalte verarbeitet werden.
Zu dem Zeitpunkt ist die iptables Infrastruktur noch nicht / nicht vollständig geladen (Timer, Warten auf USB Stick etc.) und das Skript würde Default Einstellungen setzen, da es einen "noch nicht installiert" Zustand vorfindet.
stop und
start werden von Freetz jedes mal aufgerufen, wenn man über die Freetz Masken-Änderungen speichert (Freetz macht immer ein
restart). Wäre schädlich für's Booten.
Ich erkläre mal die Bootlogik:
Da das Programm ja sowohl im Freetz, als auch dynamisch Freetz über USB Stick, als auch Stand-Alone funktionieren kann, und entweder von der debug.cfg oder vom Freetz Service hochgezogen wird, und die iptables Regeln und Settings entweder im Flash der Box oder extern abgelegt werden können - ist der Bootprozess etwas tricky.
Normalerweise braucht man einen Festen Punkt, der "Bescheid" weiss, wie das Ganze laufen soll - das war bisher die debug.cfg.
Das booten läuft so ab:
- debug.cfg kann die Einstellungen in die RAM-Disk kopieren und die Initialisierung starten.
- rc.nhipt load wird von rc.mod / run level 40 aufgerufen und prüft, ob die Settings bereits in der RAM Disk sind (durch vorherigen boot mit debug.cfg). Sind sie es nicht, wird /tmp/flash/nhiptboot.cfg aufgerufen (die an Stelle der debug.cfg die Initialisierung übernimmt)
- debug.cfg und nhiptboot.cfg sind inhaltlich identisch aufgebaut
- sie warten bei Bedarf auf USB Stick
- kopieren von bekannter Stelle (flash / USB) die Settings nhipt.par in die RAM Disk
- kopieren Start Script nhipt.cfg in die RAM Disk
- starten Firewall Start Script nhipt.cfg und schicken es in den Hintergrund.
- nhipt.cfg:
- dsld (wenn eingestellt) stoppen
- Verzögeriungstimer (wenn eingestellt) abwarten
- dsld (wenn eingestellt) starten
- Web-Server für UI starten,
- Interner Log Service (wenn eingestellt) starten,
- Firewall Rules laden
Szenario 1: Standalone CGI - bootet immer von
debug.cfg, Regeln im flash / stick
Szenario 2 : dynamisches freetz - bootet entweder von der
debug.cfg oder verspätet über
freetz rc.custom beim Integrieren der cgi in freetz (install script für freetz Integration trägt sich in die rc.custom automatisch ein für reboot Fähigkeit)
Szenario 3: Manuelle Integration in Freetz - Bootet über
Patch der rc.mod entweder von
debug.cfg oder über
freetz service start
Szenario 4: Trunk Patch - Integration in die
Runlevel von Freetz,
debug.cfg auf Wunsch siehe oben.