diff --git a/omr-bypass/files/etc/init.d/omr-bypass-nft b/omr-bypass/files/etc/init.d/omr-bypass-nft index 63afb7b6e..13e2c5e32 100755 --- a/omr-bypass/files/etc/init.d/omr-bypass-nft +++ b/omr-bypass/files/etc/init.d/omr-bypass-nft @@ -164,10 +164,17 @@ _bypass_mac() { [ -z "$intf" ] && intf="all" [ -z "$mac" ] && return - uci -q batch <<-EOF - add_list firewall.omr_dst_bypass_$intf_mac.src_mac="$mac" - set firewall.omr_dst_bypass_$intf_mac.enabled='1' - EOF + if [ "$disableipv6" = "0" ]; then + protocol="4 6" + else + protocol="4" + fi + for ipv46 in $protocol; do + uci -q batch <<-EOF + add_list firewall.omr_dst_bypass_${intf}_mac_${ipv46}.src_mac="$mac" + set firewall.omr_dst_bypass_${intf}_mac_${ipv46}.enabled='1' + EOF + done } _bypass_lan_ip() { @@ -217,17 +224,27 @@ _bypass_dest_port() { [ -z "$dport" ] && return dport="$(echo $dport | sed 's/:/-/')" [ -z "$proto" ] && return + if [ "$disableipv6" = "0" ]; then + protocol="4 6" + else + protocol="4" + fi + if [ "$proto" = "tcp" ] || [ "$proto" = "tcp udp" ]; then - uci -q batch <<-EOF - add_list firewall.omr_dst_bypass_${intf}_dstport_tcp.dest_port="$dport" - set firewall.omr_dst_bypass_${intf}_dstport_tcp.enabled='1' - EOF + for ipv46 in $protocol; do + uci -q batch <<-EOF + add_list firewall.omr_dst_bypass_${intf}_dstport_tcp_${ipv46}.dest_port="$dport" + set firewall.omr_dst_bypass_${intf}_dstport_tcp_${ipv46}.enabled='1' + EOF + done fi if [ "$proto" = "udp" ] || [ "$proto" = "tcp udp" ]; then - uci -q batch <<-EOF - add_list firewall.omr_dst_bypass_${intf}_dstport_udp.dest_port="$dport" - set firewall.omr_dst_bypass_${intf}_dstport_udp.enabled='1' - EOF + for ipv46 in $protocol; do + uci -q batch <<-EOF + add_list firewall.omr_dst_bypass_${intf}_dstport_udp_${ipv46}.dest_port="$dport" + set firewall.omr_dst_bypass_${intf}_dstport_udp_${ipv46}.enabled='1' + EOF + done fi } @@ -249,17 +266,27 @@ _bypass_src_port() { [ -z "$sport" ] && return sport="$(echo $sport | sed 's/:/-/')" [ -z "$proto" ] && return + if [ "$disableipv6" = "0" ]; then + protocol="4 6" + else + protocol="4" + fi + if [ "$proto" = "tcp" ] || [ "$proto" = "tcp udp" ]; then - uci -q batch <<-EOF - add_list firewall.omr_dst_bypass_${intf}_srcport_tcp.src_port="$sport" - set firewall.omr_dst_bypass_${intf}_srcport_tcp.enabled='1' - EOF + for ipv46 in $protocol; do + uci -q batch <<-EOF + add_list firewall.omr_dst_bypass_${intf}_srcport_tcp_${ipv46}.src_port="$sport" + set firewall.omr_dst_bypass_${intf}_srcport_tcp_${ipv46}.enabled='1' + EOF + done fi if [ "$proto" = "udp" ] || [ "$proto" = "tcp udp" ]; then - uci -q batch <<-EOF - add_list firewall.omr_dst_bypass_${intf}_srcport_udp.src_port="$sport" - set firewall.omr_dst_bypass_${intf}_srcport_udp.enabled='1' - EOF + for ipv46 in $protocol; do + uci -q batch <<-EOF + add_list firewall.omr_dst_bypass_${intf}_srcport_udp_${ipv46}.src_port="$sport" + set firewall.omr_dst_bypass_${intf}_srcport_udp_${ipv46}.enabled='1' + EOF + done fi }