You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
1.5 KiB
71 lines
1.5 KiB
8 years ago
|
#!/sbin/openrc-run
|
||
|
# Copyright 1999-2016 Gentoo Foundation
|
||
|
# Distributed under the terms of the GNU General Public License v2
|
||
|
|
||
|
CONFIGFILE=/etc/radvd.conf
|
||
|
PIDFILE=/run/radvd/radvd.pid
|
||
|
SYSCTL_FORWARD=net.ipv6.conf.all.forwarding
|
||
|
|
||
|
extra_started_commands="reload"
|
||
|
|
||
|
depend() {
|
||
|
need net
|
||
|
}
|
||
|
|
||
|
checkconfig() {
|
||
|
if [ ! -f "${CONFIGFILE}" ]; then
|
||
|
eerror "Configuration file ${CONFIGFILE} not found"
|
||
|
return 1
|
||
|
fi
|
||
|
|
||
|
if ! /usr/sbin/radvd -c -C "${CONFIGFILE}" ; then
|
||
|
eerror "Configuration file ${CONFIGFILE} failed test"
|
||
|
return 1
|
||
|
fi
|
||
|
|
||
|
checkpath -d -o radvd:radvd ${PIDFILE%/*}
|
||
|
}
|
||
|
|
||
|
start() {
|
||
|
if [ "${FORWARD}" != "no" ]; then
|
||
|
ebegin "Enabling IPv6 forwarding"
|
||
|
sysctl -w "${SYSCTL_FORWARD}=1" >/dev/null
|
||
|
eend $?
|
||
|
fi
|
||
|
|
||
|
checkconfig || return 1
|
||
|
|
||
|
ebegin "Starting IPv6 Router Advertisement Daemon"
|
||
|
start-stop-daemon --start --exec /usr/sbin/radvd \
|
||
|
--pidfile "${PIDFILE}" \
|
||
|
-- -C "${CONFIGFILE}" -p "${PIDFILE}" -u radvd ${OPTIONS}
|
||
|
eend $?
|
||
|
}
|
||
|
|
||
|
stop() {
|
||
|
ebegin "Stopping IPv6 Router Advertisement Daemon"
|
||
|
start-stop-daemon --stop --exec /usr/sbin/radvd --pidfile "${PIDFILE}"
|
||
|
eend $?
|
||
|
|
||
|
if [ "${FORWARD}" != "no" ]; then
|
||
|
ebegin "Disabling IPv6 forwarding"
|
||
|
sysctl -w "${SYSCTL_FORWARD}=0" > /dev/null
|
||
|
eend $?
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
reload() {
|
||
|
if [ "${FORWARD}" != "no" ]; then
|
||
|
ebegin "Enabling IPv6 forwarding"
|
||
|
sysctl -w "${SYSCTL_FORWARD}=1" >/dev/null
|
||
|
eend $?
|
||
|
fi
|
||
|
|
||
|
checkconfig || return 1
|
||
|
|
||
|
ebegin "Reloading IPv6 Router Advertisement Daemon"
|
||
|
start-stop-daemon --signal HUP \
|
||
|
--exec /usr/sbin/radvd --pidfile "${PIDFILE}"
|
||
|
eend $?
|
||
|
}
|