| #!/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 $? |
| } |