1*5f4c09ddSEd Maste#!/bin/sh 2*5f4c09ddSEd Maste# 3*5f4c09ddSEd Maste# $NetBSD: blacklistd,v 1.2 2016/10/17 22:47:16 christos Exp $ 4*5f4c09ddSEd Maste# 5*5f4c09ddSEd Maste 6*5f4c09ddSEd Maste# PROVIDE: blacklistd 7*5f4c09ddSEd Maste# REQUIRE: npf 8*5f4c09ddSEd Maste# BEFORE: SERVERS 9*5f4c09ddSEd Maste 10*5f4c09ddSEd Maste$_rc_subr_loaded . /etc/rc.subr 11*5f4c09ddSEd Maste 12*5f4c09ddSEd Mastename="blacklistd" 13*5f4c09ddSEd Mastercvar=$name 14*5f4c09ddSEd Mastecommand="/sbin/${name}" 15*5f4c09ddSEd Mastepidfile="/var/run/${name}.pid" 16*5f4c09ddSEd Masterequired_files="/etc/${name}.conf" 17*5f4c09ddSEd Mastestart_precmd="${name}_precmd" 18*5f4c09ddSEd Masteextra_commands="reload" 19*5f4c09ddSEd Maste 20*5f4c09ddSEd Maste_sockfile="/var/run/${name}.sockets" 21*5f4c09ddSEd Maste_sockname="blacklistd.sock" 22*5f4c09ddSEd Maste 23*5f4c09ddSEd Masteblacklistd_precmd() 24*5f4c09ddSEd Maste{ 25*5f4c09ddSEd Maste # Create default list of blacklistd sockets to watch 26*5f4c09ddSEd Maste # 27*5f4c09ddSEd Maste ( umask 022 ; > $_sockfile ) 28*5f4c09ddSEd Maste 29*5f4c09ddSEd Maste # Find /etc/rc.d scripts with "chrootdir" rcorder(8) keyword, 30*5f4c09ddSEd Maste # and if $${app}_chrootdir is a directory, add appropriate 31*5f4c09ddSEd Maste # blacklistd socket to list of sockets to watch. 32*5f4c09ddSEd Maste # 33*5f4c09ddSEd Maste for _lr in $(rcorder -k chrootdir /etc/rc.d/*); do 34*5f4c09ddSEd Maste ( 35*5f4c09ddSEd Maste _l=${_lr##*/} 36*5f4c09ddSEd Maste load_rc_config ${_l} 37*5f4c09ddSEd Maste eval _ldir=\$${_l}_chrootdir 38*5f4c09ddSEd Maste if checkyesno $_l && [ -n "$_ldir" ]; then 39*5f4c09ddSEd Maste echo "${_ldir}/var/run/${_sockname}" >> $_sockfile 40*5f4c09ddSEd Maste fi 41*5f4c09ddSEd Maste ) 42*5f4c09ddSEd Maste done 43*5f4c09ddSEd Maste 44*5f4c09ddSEd Maste # If other sockets have been provided, change run_rc_command()'s 45*5f4c09ddSEd Maste # internal copy of $blacklistd_flags to force use of specific 46*5f4c09ddSEd Maste # blacklistd sockets. 47*5f4c09ddSEd Maste # 48*5f4c09ddSEd Maste if [ -s $_sockfile ]; then 49*5f4c09ddSEd Maste echo "/var/run/${_sockname}" >> $_sockfile 50*5f4c09ddSEd Maste rc_flags="-P $_sockfile $rc_flags" 51*5f4c09ddSEd Maste fi 52*5f4c09ddSEd Maste 53*5f4c09ddSEd Maste return 0 54*5f4c09ddSEd Maste} 55*5f4c09ddSEd Maste 56*5f4c09ddSEd Masteload_rc_config $name 57*5f4c09ddSEd Masterun_rc_command "$1" 58