### Sample netcfg hook script for logging/debugging connections
### To install, make this executable and put it in /usr/lib/network/hooks


. /etc/rc.conf
. /etc/rc.d/functions


# if NETCFG_DEBUG is set, debugging messages go to stderr instead of syslog

# What facility to send log messages to? if set to "", nothing will be sent to syslog
NETCFG_LOG="${NETCFG_LOG-local0}"



function report_log {
    if [[ -n "$NETCFG_LOG" ]]; then
        local caller level="$1"
        shift
        case "$0" in
            net-auto|netcfg-auto-*) caller=net-auto;;
            net-profiles) caller=net-profiles;;
            net-rename) caller=net-rename;;
            *) caller=netcfg;;
        esac
        logger -p "${NETCFG_LOG}.$level" -t "$caller" -- "$*"
    fi
}


function report_err {
    report_log err "$*"
    printhl "$*"
}

function report_warn {
    report_log warning "$*"
    # printhl "$*"
    checkyesno "$NETCFG_DEBUG" && echo "DEBUG: $*" >&2
}



function report_notify {
    report_log notice "$*"
    # print "$*" >&2
    checkyesno "$NETCFG_DEBUG" && echo "DEBUG: $*" >&2
}

function report_debug {
    if checkyesno "$NETCFG_DEBUG"; then
        echo "DEBUG: $*" >&2
    else
        report_log debug "$*"
    fi
}



function report_try {
    report_log notice "trying $*..."
    stat_busy "$*"
    REPORT_TRYING=1
}

function report_fail {
    if [[ -n "$*" ]]; then
        report_log err "$*"
        if [[ -n "$REPORT_TRYING" ]]; then
            stat_append "- $*"
            REPORT_TRYING=
            stat_fail
        else
            printhl "$*"
        fi
    elif [[ -n "$REPORT_TRYING" ]]; then
        REPORT_TRYING=
        stat_fail
    fi
}

function report_success {
    if [[ -n "$*" ]]; then
        stat_append "- $*"
        REPORT_TRYING=
    fi
    report_log notice "${*:-succeeded}"
    stat_done
}

# vim: ft=sh ts=4 et sw=4:
