#!/bin/sh

[ -z "$1" -o -z "$2" -o -z "$3" ] && {
    echo -e "usage:\n\t$0 <filter_type> <old name> <new name>"
    echo -e "\t<filter_type>: ip/app/url "
    return 3;
}

local chain_id

if [ "$1" = "ip" ]; then
    chain_id=`json get ipf_name.$2`

    [ -z $chain_id ] && return 2

    json delete ipf_name.$2
    json set ipf_name $3=$chain_id

    changeSet=`uci filter ip_filter_set_rule profile $2`
    [ -n "$changeSet" ] && {
        for ruleitem in $changeSet; do
            uci set ip_filter_set_rule.$ruleitem.profile="$3" 
        done
    }

    changeSet=`uci filter ip_filter_set_rule next_group $2`
    [ -n "$changeSet" ] && {
        for ruleitem in $changeSet; do
            uci set ip_filter_set_rule.$ruleitem.next_group="$3" 
        done
    }

    uci commit ip_filter_set_rule

elif [ "$1" = "app" ]; then
    chain_id=`json get appf_name.$2`

    [ -z $chain_id ] && return 2

    json delete appf_name.$2
    json set appf_name $3=$chain_id

    uci commit app_filter

elif [ "$1" = "url" ]; then
    chain_id=`json get urlf_name.$2`

    [ -z $chain_id ] && return 2

    json delete urlf_name.$2
    json set urlf_name $3=$chain_id

    uci commit url_filter
else
    echo -e "Wrong filter Type"
    return 3;
fi

return 0

