#!/bin/sh /etc/rc.common

USE_PROCD=1

START=95
STOP=01

CONFIGURATION=netstinky

validate_ids_section()
{
    uci_load_validate netstinky netstinky "$1" "$2" \
            'interface:string:lan' \
            'port:uinteger:8089' \
            'updatehost:string' \
            'updateport:uinteger' \
            'sslnoverify:bool:false'
}

netstinky_instance()
{
    [ "$2" = 0 ] || {
        echo "validation failed"
        return 1
    }

    procd_open_instance
    procd_set_param command /usr/bin/nsids

    if [ -n "${interface}" ]; then
        local iface
        network_get_device iface "${interface}"
        procd_append_param command -i "${iface}"
    fi
    procd_append_param command -p "${port}"
    [ -n "${updatehost}" ] && procd_append_param command --update-host "${updatehost}"
    [ -n "${updateport}" ] && procd_append_param command --update-port "${updateport}"
    [ "${sslnoverify}" -eq 1 ] && procd_append_param command --ssl-no-verify

    procd_set_param stderr 1
    procd_set_param stdout 1

    procd_add_mdns "netstinky" "tcp" "$port"

    procd_close_instance
}

start_service()
{
    . /lib/functions/network.sh

    config_load "${CONFIGURATION}"
    config_foreach validate_ids_section netstinky netstinky_instance
}

service_triggers()
{
    procd_add_config_trigger "config.change" "netstinky" /etc/init.d/nsids reload

    config_load "${CONFIGURATION}"

    procd_add_validation validate_ids_section
}