#!/bin/sh

. ../common/ajax_common


PG_CONF="/etc/PG.conf"


get_if_Linux()
{
    printf "["

    for bus in `lspci -D | grep Ethernet | cut -d" " -f1`
    do
        int=` ls -l /sys/class/net  | grep ${bus} | cut -d" " -f10`
        [ "${int}" = "" ] && continue
        
        bus=`echo ${bus} | cut -d":" -f2-`
        pci=`lspci | grep "^${bus} " | cut -d" " -f2-`

        printf "${dot}{"
        printf "\"int\":\"${int}\","
        printf "\"bus\":\"0000:${bus}\","
        printf "\"pci\":\"${pci}\""
        printf "}"

        [ "${dot}" = "" ] && dot=","
    done

    printf "]"
}


get_if_FreeBSD()
{
    printf "[]"
}


get_if_list()
{
    printf "{"
    printf "\"list\":"

    if [ "`uname`" = "Linux" ]; then
        get_if_Linux
    else
        get_if_FreeBSD
    fi

    printf ",\"admin_port\":\"${ADMIN_PORT}\""
    printf ",\"data_ports\":\"${DATA_PORTS}\""
    printf "}"
}


edit_pg_conf()
{
    if [ "${CGI_admin_port}" = "${ADMIN_PORT}" -a "${CGI_data_ports}" = "${DATA_PORTS}" ]; then
        retjson 2 "ύɹδı"
    fi

	grep -vE "^ADMIN_PORT=|^DATA_PORTS=" ${PG_CONF} > ${PG_CONF}.bak
	echo "ADMIN_PORT=\"${CGI_admin_port}\"" >> ${PG_CONF}.bak
	echo "DATA_PORTS=\"${CGI_data_ports}\"" >> ${PG_CONF}.bak

	mv ${PG_CONF}.bak ${PG_CONF}
	cp ${PG_CONF} ${RAMDISK}

    retjson 0 "༭ɹ"
}


restart_panaos()
{
    WEB_LOGGER "/etc/PG.confPanaos"

    mkdir -p ${DATAPATH}/config
    cp ${PGETC}/panabit.conf ${DATAPATH}/config/panabit.conf
    echo "import_config yes" >> ${EVENTFILE}
    retjson 0 "OK"
}


case "${CGI_action}" in
    "get_if_list")
        retjson 0 "OK" "`get_if_list`"
        ;;

    "edit_pg_conf")
        action_check
        edit_pg_conf
        ;;

    "restart_panaos")
        action_check
        restart_panaos
        ;;

    *)
        retjson 1 "UNKNOW_ACTION"
        ;;
esac
