fff-firewall: Add network to procd_add_reload_trigger

Submitted by Robert Langhammer on April 24, 2019, 7:44 a.m.

Details

Message ID 20190424074434.6419-1-rlanghammer@web.de
State Superseded
Headers show

Commit Message

Robert Langhammer April 24, 2019, 7:44 a.m.
fff-firewall depends on network.wan.ifname. By adding network, changes there will invoke a firewall reload called by "reload-config".
Scripts that play with "network" do not need pay attention to the firewall if "reload-config" is used.

Signed-off-by: Robert Langhammer <rlanghammer@web.de>
---
 src/packages/fff/fff-firewall/files/etc/init.d/fff-firewall | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--
2.20.1

Patch hide | download patch | download mbox

diff --git a/src/packages/fff/fff-firewall/files/etc/init.d/fff-firewall b/src/packages/fff/fff-firewall/files/etc/init.d/fff-firewall
index d460222..6ae62b6 100755
--- a/src/packages/fff/fff-firewall/files/etc/init.d/fff-firewall
+++ b/src/packages/fff/fff-firewall/files/etc/init.d/fff-firewall
@@ -11,7 +11,7 @@  FIREWALL_DIR=/usr/lib/firewall.d

 service_triggers()
 {
-    procd_add_reload_trigger "fff-firewall"
+    procd_add_reload_trigger "fff-firewall network"
 }

 start_service()

Comments

Adrian Schmutzler April 24, 2019, 3:58 p.m.
Hallo Robert,

vielen Dank für den Patch.

Ein paar Fragen unten.

> -----Original Message-----
> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf Of
> Robert Langhammer
> Sent: Mittwoch, 24. April 2019 09:45
> To: franken-dev@freifunk.net
> Subject: [PATCH] fff-firewall: Add network to procd_add_reload_trigger
> 
> fff-firewall depends on network.wan.ifname. By adding network, changes there
> will invoke a firewall reload called by "reload-config".
> Scripts that play with "network" do not need pay attention to the firewall if
> "reload-config" is used.
> 
> Signed-off-by: Robert Langhammer <rlanghammer@web.de>
> ---
>  src/packages/fff/fff-firewall/files/etc/init.d/fff-firewall | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/src/packages/fff/fff-firewall/files/etc/init.d/fff-firewall
> b/src/packages/fff/fff-firewall/files/etc/init.d/fff-firewall
> index d460222..6ae62b6 100755
> --- a/src/packages/fff/fff-firewall/files/etc/init.d/fff-firewall
> +++ b/src/packages/fff/fff-firewall/files/etc/init.d/fff-firewall
> @@ -11,7 +11,7 @@ FIREWALL_DIR=/usr/lib/firewall.d
> 
>  service_triggers()
>  {
> -    procd_add_reload_trigger "fff-firewall"

Ich habe mal in der Doku nachgelesen:
https://openwrt.org/docs/guide-developer/procd-init-scripts#procd_triggers_on_config_filenetwork_interface_changes

Wenn ich das richtig verstanden habe, müsste es ein uci file "fff-firewall" geben, damit das so funktioniert?! Das gibt es nämlich nicht.
Ist die Doku falsch, oder ist die Zeile in der FW im Moment nutzlos.

> +    procd_add_reload_trigger "fff-firewall network"

Ich habe in der Doku (gleicher Link, aber weiter unten im Text) noch was interessantes gefunden:
procd_add_interface_trigger "interface.*" <interface> /etc/init.d/<service> reload

Wenn ich das richtig verstehe, könnte man einfach folgendes machen und wäre spezifisch für Änderungen des WAN interfaces:

service_triggers()
{
procd_add_interface_trigger "interface.*" "wan" /etc/init.d/fff-firewall start
}

Damit hätten wir dann auch gleich das "start" dort stehen und müssen nicht mehr testen, ob reload in diesem Fall auch wirklich start triggert (da gäbe es laut der Doku noch eine Zusatzbedingung.)

Was meinst du?

Grüße

Adrian

PS: Entschuldige, dass ich dich erst den Patch schreiben lassen und dann nochmal ewig dran rumdiskutiere. Aber erst durch den Patch weiß ich, wonach ich suchen muss ... :-)

>  }
> 
>  start_service()
> --
> 2.20.1
Robert Langhammer April 24, 2019, 5:48 p.m.
hallo Adrian,

irgendwie funktioniert das ganze nicht so wie ich mir das vorgestellt
habe. Es waere aber schon schoen, wenn es so gehen wuerde. Ich muss da
noch einiges taesten.

Im Moment scheint es so, dass wir das initscript weiter umbauen muessen. 

Dauert also noch etwas.

So geht es jedenfalls nicht. Das kommt davon, wenn man ungetestete
Patches schickt. Auch wenn sie so simpel sind :-)

Robert


Am 24.04.19 um 17:58 schrieb Adrian Schmutzler:
> Hallo Robert,
>
> vielen Dank für den Patch.
>
> Ein paar Fragen unten.
>
>> -----Original Message-----
>> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf Of
>> Robert Langhammer
>> Sent: Mittwoch, 24. April 2019 09:45
>> To: franken-dev@freifunk.net
>> Subject: [PATCH] fff-firewall: Add network to procd_add_reload_trigger
>>
>> fff-firewall depends on network.wan.ifname. By adding network, changes there
>> will invoke a firewall reload called by "reload-config".
>> Scripts that play with "network" do not need pay attention to the firewall if
>> "reload-config" is used.
>>
>> Signed-off-by: Robert Langhammer <rlanghammer@web.de>
>> ---
>>  src/packages/fff/fff-firewall/files/etc/init.d/fff-firewall | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/src/packages/fff/fff-firewall/files/etc/init.d/fff-firewall
>> b/src/packages/fff/fff-firewall/files/etc/init.d/fff-firewall
>> index d460222..6ae62b6 100755
>> --- a/src/packages/fff/fff-firewall/files/etc/init.d/fff-firewall
>> +++ b/src/packages/fff/fff-firewall/files/etc/init.d/fff-firewall
>> @@ -11,7 +11,7 @@ FIREWALL_DIR=/usr/lib/firewall.d
>>
>>  service_triggers()
>>  {
>> -    procd_add_reload_trigger "fff-firewall"
> Ich habe mal in der Doku nachgelesen:
> https://openwrt.org/docs/guide-developer/procd-init-scripts#procd_triggers_on_config_filenetwork_interface_changes
>
> Wenn ich das richtig verstanden habe, müsste es ein uci file "fff-firewall" geben, damit das so funktioniert?! Das gibt es nämlich nicht.
> Ist die Doku falsch, oder ist die Zeile in der FW im Moment nutzlos.
>
>> +    procd_add_reload_trigger "fff-firewall network"
> Ich habe in der Doku (gleicher Link, aber weiter unten im Text) noch was interessantes gefunden:
> procd_add_interface_trigger "interface.*" <interface> /etc/init.d/<service> reload
>
> Wenn ich das richtig verstehe, könnte man einfach folgendes machen und wäre spezifisch für Änderungen des WAN interfaces:
>
> service_triggers()
> {
> procd_add_interface_trigger "interface.*" "wan" /etc/init.d/fff-firewall start
> }
>
> Damit hätten wir dann auch gleich das "start" dort stehen und müssen nicht mehr testen, ob reload in diesem Fall auch wirklich start triggert (da gäbe es laut der Doku noch eine Zusatzbedingung.)
>
> Was meinst du?
>
> Grüße
>
> Adrian
>
> PS: Entschuldige, dass ich dich erst den Patch schreiben lassen und dann nochmal ewig dran rumdiskutiere. Aber erst durch den Patch weiß ich, wonach ich suchen muss ... :-)
>
>>  }
>>
>>  start_service()
>> --
>> 2.20.1