Much of the core bits are initially ported.

This should be mostly independent of my configs, now.
This commit is contained in:
2026-05-09 03:26:53 -04:00
parent 6b02d9d58e
commit 4d30691ee6
16 changed files with 1278 additions and 2 deletions
+131
View File
@@ -0,0 +1,131 @@
#!/bin/sh
#
# $FreeBSD$
#
# PROVIDE: generate_rtadvd_conf
# REQUIRE: dhcp6c
# BEFORE: rtadvd
# KEYWORD: shutdown
#
. ${RC_ROUTER_HARNESS}/etc/rc.subr
name='generate_rtadvd_conf'
start_cmd='generate_rtadvd_conf_start'
stop_cmd='generate_rtadvd_conf_stop'
rcvar='generate_rtadvd_conf_enable'
load_rc_config 'generate_rtadvd_conf'
[ -z "$generate_rtadvd_conf_enable" ] && generate_rtadvd_conf_enable='NO'
_prepare_var()
{
var=$1
opt=$2
eval _value=\${${var}}
eval _${opt}=""
if [ -n "${_value}" ]
then
_text="${opt}=\\\"${_value}\\\""
eval _${opt}=\"${_text}\"
fi
}
_prepare_num()
{
var=$1
opt=$2
eval _value=\${${var}}
eval _${opt}\=""
if [ -n "${_value}" ]
then
_text="${opt}\#${_value}"
eval _${opt}=\"${_text}\"
fi
}
_prepare_opt()
{
var=$1
opt=$2
eval _${opt}\=""
if [ `option_selected ${var}` = "YES" ]
then
_text="${opt}"
eval _${opt}=\"${_text}\"
fi
}
_build_rtadv()
{
gen_rtadv_dir=${rc_router_gen_dir}
rtadvd_conf=${gen_rtadv_dir}/rtadvd.conf
mkdir -p ${gen_rtadv_dir}
_search_list=""
if [ -n "${rtadvd_dns_search_list}" ]
then
_search_list=$( echo ${rtadvd_dns_search_list} | sed -e 's/ */,/g' -e 's/^,//' -e 's/,$//' )
fi
_prepare_var _search_list dnssl
_prepare_var rtadvd_pref64_prefix pref64
_prepare_num rtadvd_mininterval mininterval
_prepare_num rtadvd_maxinterval maxinterval
_prepare_num rtadvd_pltime pltime
_prepare_opt rtadvd_pltimedecr pltimedecr
_prepare_num rtadvd_vltime vltime
_prepare_opt rtadvd_vltimedecr vltimedecr
_prepare_num rtadvd_rltime rltime
cat ${rc_router_dir}/templates/rtadvd.conf \
| sed \
-e "s/@PREF64@/${_pref64}/" \
-e "s/@MININTERVAL@/${_mininterval}/" \
-e "s/@MAXINTERVAL@/${_maxinterval}/" \
-e "s/@PLTIME@/${_pltime}/" \
-e "s/@PLTIME_DECR@/${_pltimedecr}/" \
-e "s/@VLTIME@/${_vltime}/" \
-e "s/@VLTIME_DECR@/${_vltimedecr}/" \
-e "s/@RLTIME@/${_rltime}/" \
-e "s/@DNS_SEARCHLIST@/${_dnssl}/" \
-e "s/@DNS_SERVER@/${rtadvd_dns_server}/" \
> ${rtadvd_conf}
echo "" >> ${rtadvd_conf}
echo "" >> ${rtadvd_conf}
for interface in ${rtadvd_interfaces}
do
echo "${interface}:tc=settings" >> ${rtadvd_conf}
done
}
generate_rtadvd_conf_start()
{
_build_rtadv
}
generate_rtadvd_conf_stop()
{
true
}
################ Epilogue
run_rc_command "$1"
# vim: ft=bash