Add several important startup services
This commit is contained in:
Executable
+86
@@ -0,0 +1,86 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
# PROVIDE: route_policy
|
||||
# REQUIRE: wireguard
|
||||
# KEYWORD: shutdown
|
||||
#
|
||||
|
||||
. ${RC_ROUTER_HARNESS}/etc/rc.subr
|
||||
|
||||
name="route_policy"
|
||||
desc="Policy Based Routing Installer"
|
||||
|
||||
start_cmd='route_policy_start'
|
||||
stop_cmd='route_policy_stop'
|
||||
rcvar='route_policy_enable'
|
||||
|
||||
load_rc_config 'route_policy'
|
||||
|
||||
if [ -z "${route_policy_file}" ]
|
||||
then
|
||||
echo "Must have a route policy target file"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
do_all_routes()
|
||||
{
|
||||
while [ -n "$1" ]
|
||||
do
|
||||
install_route_policy $1
|
||||
shift 1
|
||||
done
|
||||
}
|
||||
|
||||
do_all_routes_v4()
|
||||
{
|
||||
while [ -n "$1" ]
|
||||
do
|
||||
install_route_policy_v4 $1
|
||||
shift 1
|
||||
done
|
||||
}
|
||||
|
||||
route_policy_start()
|
||||
{
|
||||
clear_all_policies
|
||||
echo "# This file is generated." >> ${route_policy_file}
|
||||
echo "# Do not edit." >> ${route_policy_file}
|
||||
echo "" >> ${route_policy_file}
|
||||
|
||||
# TODO: Record the policies one-per-line via a helper loop subroutine?
|
||||
echo "# (Generated with \`${route_policies}\`, at `date`.)" >> ${route_policy_file}
|
||||
echo "# (Generated with \`${route_policies_v4}\`, at `date`.)" >> ${route_policy_file}
|
||||
echo "" >> ${route_policy_file}
|
||||
echo "" >> ${route_policy_file}
|
||||
|
||||
do_all_routes ${route_policies}
|
||||
do_all_routes_v4 ${route_policies_v4}
|
||||
|
||||
echo "" >> ${route_policy_file}
|
||||
echo -n "# v" >> ${route_policy_file}
|
||||
echo "im: ft=pf" >> ${route_policy_file}
|
||||
|
||||
#pfctl -a "route-policies" -f ${route_policy_file}
|
||||
#pfctl -f ${pf_rules}
|
||||
|
||||
# UGLY hack/workaround because of a kernel panic bug from
|
||||
# rtable rules in files included in `pf` anchors in FreeBSD 15
|
||||
/etc/rc.d/pf reload
|
||||
}
|
||||
|
||||
route_policy_stop()
|
||||
{
|
||||
clear_all_policies
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
################ Epilogue
|
||||
|
||||
run_rc_command "$1"
|
||||
|
||||
# vim: ft=bash
|
||||
Reference in New Issue
Block a user