#!/bin/sh

alterator_api_version=1
. alterator-sh-functions
. alterator-net-functions
po_domain="alterator-net-iptables"

on_message()
{
  case "$in_action" in

    read)
      write_bool_param status "$(iptables_helper bl status)"
      write_string_param commit_mode "$(iptables_helper show -c)"
      write_string_param ip "${ip:-$(iptables_helper bl list | head -n1)}"
    ;;

    list)
      iptables_helper bl list | write_enum
    ;;

    add)
      [ -n "$in_new_ip" ] || return
      set_locale
      local ans="$(iptables_helper bl add \
                    "$in_new_ip"  2>&1)"
      [ -z "$ans" ] || write_error "${ans#iptables_helper*:}"
      ip="$in_new_ip"
    ;;

    del)
      [ -n "$in_ip" ] || return
      set_locale
      local ans="$(iptables_helper bl del "$in_ip"  2>&1)"
      [ -z "$ans" ] || write_error "${ans#iptables_helper*:}"
      ip=
    ;;

    switch)
      set_locale
      local status
      if [ "$in_status" = "#t" ]; then
        local ans="$(iptables_helper bl on  2>&1)"
        [ -z "$ans" ] || write_error "${ans#iptables_helper*:}"
      else
        local ans="$(iptables_helper bl off  2>&1)"
        [ -z "$ans" ] || write_error "${ans#iptables_helper*:}"
      fi
    ;;

  esac
}

message_loop
