1#!/bin/bash -x 2 3die() { 4 echo "E: $@" 5 exit 1 6} 7 8cmds="iptables ip6tables" 9[[ $XT_MULTI == *xtables-nft-multi ]] && cmds+=" arptables ebtables" 10 11declare -A invnames 12invnames["existing"]="c2" 13invnames["spaced"]="foo bar" 14invnames["dashed"]="-foo" 15invnames["negated"]="!foo" 16# XXX: ebtables-nft accepts 255 chars 17#invnames["overlong"]="thisisquitealongnameforachain" 18invnames["standard target"]="ACCEPT" 19invnames["extension target"]="DNAT" 20 21for cmd in $cmds; do 22 $XT_MULTI $cmd -N c1 || die "$cmd: can't add chain c1" 23 $XT_MULTI $cmd -N c2 || die "$cmd: can't add chain c2" 24 for key in "${!invnames[@]}"; do 25 val="${invnames[$key]}" 26 if [[ $key == "extension target" ]]; then 27 if [[ $cmd == "arptables" ]]; then 28 val="mangle" 29 elif [[ $cmd == "ebtables" ]]; then 30 val="dnat" 31 fi 32 fi 33 $XT_MULTI $cmd -N "$val" && \ 34 die "$cmd: added chain with $key name" 35 $XT_MULTI $cmd -E c1 "$val" && \ 36 die "$cmd: renamed to $key name" 37 done 38done 39 40exit 0 41