#!/bin/sh
# DF-0705 (and DF-0704) reachability probe.
# Must run as root because IP_FW_X requires SOCK_RAW (SYSCAP_NONET_RAW).
# This probe CONFIRMS the buggy functions are unreachable on a default kernel
# because ip_fw3_ctl_sync_ptr is never set.
set -e
cd "$(dirname "$0")"

if ! kldstat -m 2>/dev/null | grep -q ipfw3_basic; then
    if [ "$(id -u)" = "0" ]; then
        echo "[*] loading ipfw3.ko + ipfw3_basic.ko (admin firewall setup)"
        kldload ipfw3.ko
        kldload ipfw3_basic.ko
    else
        echo "[!] ipfw3 not loaded; admin must 'kldload ipfw3.ko ipfw3_basic.ko'" >&2
        exit 2
    fi
fi

echo "[*] running as: $(id)"
./ipfw3_sync_probe
echo "RUN_EXIT=$?"
