#!/bin/sh

set -eu

DHCP6SBIN=/usr/sbin/dhcp6s
DHCP6SPIDBASE=/var/run/dhcp6s

case "${VERBOSE:-0}" in
    1) DEBUG=-d ;;
    2) DEBUG=-D ;;
    *) DEBUG= ;;
esac

check_status()
{
    pidfile=$1

    [ -r "$pidfile" ] || return 1
    read -r pid < "$pidfile" || return 1
    kill -0 "$pid" 2>/dev/null
}

for interface in ${INTERFACES:-}; do
    pidfile="${DHCP6SPIDBASE}.${interface}.pid"

    set -- -k /dev/null -P "$pidfile"
    [ -z "$DEBUG" ] || set -- "$DEBUG" "$@"

    "$DHCP6SBIN" "$@" "$interface"

    sleep 2
    if ! check_status "$pidfile"; then
        # Leaving cleanup of the started instances to the unit's
        # cgroup kill on deactivation.
        exit 1
    fi
done
