#!/bin/sh
### BEGIN INIT INFO
# Provides:          univention-directory-policy
# Required-Start:    $network $remote_fs
# Required-Stop:     $network $remote_fs
# Should-Start:      slapd
# Should-Stop:       slapd
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Univention Directory Policy
### END INIT INFO
# SPDX-FileCopyrightText: 2004-2026 Univention GmbH
# SPDX-License-Identifier: AGPL-3.0-only

. /lib/lsb/init-functions
NAME='univention-directory-policy'
DESC=$(get_lsb_header_val "$0" Short-Description)

d_start () {
	local ldap_server_port ldap_server_addition ldap_server_name host IFS="${IFS:- 	},"
	eval "$(univention-config-registry shell ldap/server/port ldap/server/addition ldap/server/name)"

	set -- $ldap_server_name $ldap_server_addition
	[ $# -eq 0 ] && return 0
	for host in "$@"
	do
		netcat -q0 -w4 "$host" ${ldap_server_port:-7389} </dev/null >/dev/null 2>&1 ||
			continue
		run-parts /usr/lib/univention-directory-policy >>/var/log/univention/ldap-policy.log 2>&1
		return $?
	done
	return 1
}

case "$1" in
	start|restart|force-reload)
		log_action_begin_msg "Applying $DESC"
		d_start
		log_action_end_msg $?
		;;
	stop|status)
		;;
	*)
		echo "Usage: $0 {start|stop|restart|force-reload|status}"
		exit 1
		;;
esac

exit 0
