|
|
|
@ -65,6 +65,40 @@ igmp_add_network() { |
|
|
|
|
procd_add_interface_trigger "interface.*" $network /etc/init.d/igmpproxy restart |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
igmp_add_firewall_routing() { |
|
|
|
|
config_get network $1 network |
|
|
|
|
config_get direction $1 direction |
|
|
|
|
|
|
|
|
|
[[ "$direction" = "downstream" ]] || return 0 |
|
|
|
|
|
|
|
|
|
json_add_object "" |
|
|
|
|
json_add_string type rule |
|
|
|
|
json_add_string src "$upstream" |
|
|
|
|
json_add_string dest "$network" |
|
|
|
|
json_add_string family ipv4 |
|
|
|
|
json_add_string proto udp |
|
|
|
|
json_add_string dest_ip "224.0.0.0/4" |
|
|
|
|
json_add_string target ACCEPT |
|
|
|
|
json_close_object |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
igmp_add_firewall_network() { |
|
|
|
|
config_get network $1 network |
|
|
|
|
config_get direction $1 direction |
|
|
|
|
|
|
|
|
|
json_add_object "" |
|
|
|
|
json_add_string type rule |
|
|
|
|
json_add_string src "$network" |
|
|
|
|
json_add_string proto igmp |
|
|
|
|
json_add_string target ACCEPT |
|
|
|
|
json_close_object |
|
|
|
|
|
|
|
|
|
[[ "$direction" = "upstream" ]] && { |
|
|
|
|
upstream="$network" |
|
|
|
|
config_foreach igmp_add_firewall_routing phyint |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
service_triggers() { |
|
|
|
|
procd_add_reload_trigger "igmpproxy" |
|
|
|
|
} |
|
|
|
@ -83,5 +117,18 @@ start_service() { |
|
|
|
|
procd_open_trigger |
|
|
|
|
config_foreach igmp_add_network phyint |
|
|
|
|
procd_close_trigger |
|
|
|
|
|
|
|
|
|
procd_open_data |
|
|
|
|
|
|
|
|
|
json_add_array firewall |
|
|
|
|
config_foreach igmp_add_firewall_network phyint |
|
|
|
|
json_close_array |
|
|
|
|
|
|
|
|
|
procd_close_data |
|
|
|
|
|
|
|
|
|
procd_close_instance |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
service_started() { |
|
|
|
|
procd_set_config_changed firewall |
|
|
|
|
} |
|
|
|
|