Hi Eric, here's the 66-inresolve output of the modified service that I tested:
fdmove -c 2 1
/usr/bin/bash -c "
exec 2>&1
66-yeller -cdp local-iptables -1 /dev/console stops...
if ! type -p iptables &>/dev/null; then
66-yeller -fcdp local-iptables -1 /dev/console unable to find iptables program
fi
while read -r table; do
tables+=("/usr/share/iptables/empty-$table.rules")
done <"/proc/net/ip_tables_names"
if (( ${# tables[*]} )); then
cat "${tables[@ ]}" | iptables-restore
fi
"
And guess what, it works :)
So, I guess the reasoning why this works is like 66-yeller simply prints all non-option args so we don't need to pass it just one message argument (by \"-escaping) and the other quoted strings are not concerned with word splitting, right?