#!/bin/bash
################################################################################
## Script    : iptables-clear
## Name      : iptables clear
## Version   : 0.01
## Copyright : 2020  Nomura Kei
## License   : BSD-2-Clause
## Usage:
## |使用法) ipset-clear [options]
## |
## |  iptables の情報をクリアします。
## |
## |[オプション]
## |  -h,--help         使用方法を表示します。
## |  -v,--version      バージョンを表示します。
## |
SCRIPT_DIR=$(cd $(dirname ${BASH_SOURCE:-$0}); pwd)
SCRIPT_FILE=${SCRIPT_DIR}/$(basename ${BASH_SOURCE:-$0})
. ${SCRIPT_DIR}/bash-utils.sh



################################################################################
##
## 関数定義
##

# ------------------------------------------------------------------------------
#  iptables の情報をクリアします。
# ------------------------------------------------------------------------------
function clear_iptables()
{
	for chain in INPUT FORWARD OUTPUT; do
		/sbin/iptables -P $chain ACCEPT
	done
	for param in F Z X; do /sbin/iptables -$param; done
	for table in $(cat /proc/net/ip_tables_names); do
		/sbin/iptables -t $table -F # テーブル初期化
		/sbin/iptables -t $table -Z # パケットカウンタクリア
		/sbin/iptables -t $table -X # チェーン削除
	done
}



################################################################################
#
# メイン処理
#
OPT_ARG=0
for OPT in "$@"; do
	if [ ${OPT_ARG} -eq 1 ]; then
		OPT_ARG=0
	else
		case "${OPT}" in
			'-h'|'--help')		usage;							exit 1	;;
			'-v'|'--version')	version;						exit 1	;;
			-*)					usage;							exit 1	;;
			*)
				if [[ ! -z "$1" ]] && [[ ! "$1" =~ ^-+ ]]; then
					usage
					exit 1
				fi
				;;
		esac
		shift
	fi
done

clear_iptables
/sbin/iptables -L

