packages/ipv6/gw6c/files/gw6c.init
nico 1f73407f58 packages/gw6c: use new service functions
git-svn-id: svn://svn.openwrt.org/openwrt/packages@28923 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-11-09 23:49:15 +00:00

112 lines
2.8 KiB
Bash
Executable File

#!/bin/sh /etc/rc.common
# Copyright (C) 2007-2011 OpenWrt.org
# Copyright (C) 2007 RoadRunner.cx
START=52
SERVICE_DAEMONIZE=1
SERVICE_WRITE_PID=1
genconf() {
[ -f /etc/config/gw6c ] || {
echo "You are missing configuration file /etc/config/gw6c"
return 1
}
config_load "gw6c"
config_get DISABLED basic disabled
[ "$DISABLED" == "1" ] && {
echo "You haven't edited your configuration file. Gateway6 is disabled."
return 1
}
config_get USERID basic userid
config_get PASSWORD basic passwd
config_get SERVER basic server
config_get AUTH_METHOD basic auth_method
config_get HOST_TYPE routing host_type
config_get PREFIX_LEN routing prefixlen
config_get IF_PREFIX routing ifprefix
config_get DNS_SERVER routing dns_server
config_get GW6C_CONF advanced gw6c_conf
config_get GW6C_DIR advanced gw6c_dir
config_get AUTO_RETRY advanced auto_retry
config_get RETRY_DELAY advanced retry_delay
config_get KEEPALIVE advanced keepalive
config_get KEEPALIVE_INTERVAL advanced interval
config_get TUNNEL_MODE advanced if_tunnel_mode
config_get IF_V6V4 advanced if_v6v4
config_get IF_V6UDPV4 advanced if_v6udpv4
config_get IF_V4V6 advanced if_v4v6
config_get CLIENT_V4 advanced client_v4
config_get CLIENT_V6 advanced client_v6
config_get TEMPLATE advanced template
config_get PROXY_CLIENT advanced proxy_client
config_get BROKER_LIST broker broker_list
config_get LAST_SERVER broker last_server
config_get ALWAYS_SAMESERV broker always_same_serv
config_get LOG_CONSOLE logging log_console
config_get LOG_STDERR logging log_stderr
config_get LOG_FILE logging log_file
config_get LOG_SYSLOG logging log_syslog
config_get LOG_FILENAME logging log_filename
config_get LOG_ROTATE logging log_rotation
config_get LOG_MAXSIZE logging log_maxsize
config_get SYSLOG_FACILITY logging syslog_facility
cat >$GW6C_CONF <<EOF
userid=$USERID
passwd=$PASSWORD
server=$SERVER
auth_method=$AUTH_METHOD
host_type=$HOST_TYPE
prefixlen=$PREFIX_LEN
if_prefix=$IF_PREFIX
dns_server=$DNS_SERVER
gw6_dir=$GW6C_DIR
auto_retry_connect=$AUTO_RETRY
retry_delay=$RETRY_DELAY
keepalive=$KEEPALIVE
keepalive_interval=$KEEPALIVE_INTERVAL
tunnel_mode=$TUNNEL_MODE
if_tunnel_v6v4=$IF_V6V4
if_tunnel_v6udpv4=$IF_V6UDPV4
if_tunnel_v4v6=$IF_V4V6
client_v4=$CLIENT_V4
client_v6=$CLIENT_V6
template=$TEMPLATE
proxy_client=$PROXY_CLIENT
broker_list=$BROKER_LIST
last_server=$LAST_SERVER
always_use_same_server=$ALWAYS_SAMESERV
log_console=$LOG_CONSOLE
log_stderr=$LOG_STDERR
log_file=$LOG_FILE
log_syslog=$LOG_SYSLOG
log_filename=$LOG_FILENAME
log_rotation=$LOG_ROTATE
log_rotation_size=$LOG_MAXSIZE
syslog_facility=$SYSLOG_FACILITY
EOF
}
start() {
genconf
[ -n "$GW6C_CONF" ] || return 1
[ -f "$GW6C_CONF" ] || return 1
service_start /usr/sbin/gw6c -f "$GW6C_CONF"
}
stop() {
service_stop /usr/sbin/gw6c && {
echo 0 > /proc/sys/net/ipv6/conf/all/forwarding
}
}