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