112 lines
3.1 KiB
Plaintext
112 lines
3.1 KiB
Plaintext
|
#!/bin/sh /etc/rc.common
|
||
|
#Copyright (C) 2007 RoadRunner.cx
|
||
|
START=52
|
||
|
|
||
|
genconf() {
|
||
|
|
||
|
[ -f /etc/config/gw6c ] || {
|
||
|
echo "You are missing configuration file /etc/config/gw6c"
|
||
|
return 0
|
||
|
}
|
||
|
|
||
|
config_load "gw6c"
|
||
|
|
||
|
config_get DISABLED basic disabled
|
||
|
|
||
|
[ "$DISABLED" == "1" ] && {
|
||
|
echo "You haven't edited your configuration file. Gateway6 is disabled."
|
||
|
return 0
|
||
|
}
|
||
|
|
||
|
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
|
||
|
if [ -z "$GW6C_CONF" ] || [ ! -f "$GW6C_CONF" ]; then
|
||
|
echo "Gateway6 client cannot start."
|
||
|
else
|
||
|
echo "Starting Gateway6 client."
|
||
|
/usr/sbin/gw6c -f "$GW6C_CONF"
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
stop() {
|
||
|
[ `ps ax|grep -v grep|grep -c gw6c` != "0" ] && {
|
||
|
killall -q gw6c
|
||
|
[ `ps ax|grep -v grep|grep -c radvd` != "0" ] && killall -q radvd
|
||
|
echo 0 > /proc/sys/net/ipv6/conf/all/forwarding
|
||
|
}
|
||
|
}
|