ASR_BASE

Change-Id: Icf3719cc0afe3eeb3edc7fa80a2eb5199ca9dda1
diff --git a/external/subpack/net/tcpproxy/files/tcpproxy.init b/external/subpack/net/tcpproxy/files/tcpproxy.init
new file mode 100644
index 0000000..4587a1c
--- /dev/null
+++ b/external/subpack/net/tcpproxy/files/tcpproxy.init
@@ -0,0 +1,96 @@
+#!/bin/sh /etc/rc.common
+START=50
+
+BIN=tcpproxy
+DAEMON=/usr/bin/$BIN
+DAEMON_ARGS=""
+DESC=$BIN
+RUN_D=/var/run
+CONFIG_DIR=/var/etc
+CONFIG_FILE=$CONFIG_DIR/$BIN.conf
+
+tcpproxy_write_config() {
+  local cfg="$1"
+
+  config_get_bool value "$cfg" disabled 0
+  [ "$value" -ne 0 ] && return
+
+  local local_addr=""
+  local resolv=""
+  local local_port=""
+  local remote_addr=""
+  local remote_resolv=""
+  local remote_port=""
+  local source_addr=""
+
+  config_get local_addr "$cfg" local_addr
+  config_get local_port "$cfg" local_port
+  config_get resolv "$cfg" resolv
+  config_get remote_addr "$cfg" remote_addr
+  config_get remote_port "$cfg" remote_port
+  config_get remote_resolv "$cfg" remote_resolv
+  config_get source_addr "$cfg" source_addr
+
+  if [ -z "$local_addr" ]; then
+    local_addr="*"
+  fi
+
+  echo "listen $local_addr $local_port" >> $CONFIG_FILE
+  echo "{" >> $CONFIG_FILE
+  if [ -n "$resolv" ]; then
+    echo "  resolv: $resolv;" >> $CONFIG_FILE
+  fi
+  echo "  remote: $remote_addr $remote_port;" >> $CONFIG_FILE
+  if [ -n "$remote_resolv" ]; then
+    echo "  remote-resolv: $remote_resolv;" >> $CONFIG_FILE
+  fi
+  if [ -n "$source_addr" ]; then
+    echo "  source: $source_addr;" >> $CONFIG_FILE
+  fi
+  echo "};" >> $CONFIG_FILE
+  echo "" >> $CONFIG_FILE
+}
+
+tcpproxy_generate_args() {
+  local cfg="$1"
+  local option
+  local value
+
+  for option in username groupname chroot log
+  do
+    config_get value "$cfg" "$option"
+    option=`echo $option | tr '_' '-'`
+    if [ -n "$value" ]; then
+      DAEMON_ARGS="$DAEMON_ARGS --$option $value"
+    fi
+  done
+}
+
+tcpproxy_rebuild_config() {
+  mkdir -p $CONFIG_DIR
+  rm -f $CONFIG_FILE
+  touch $CONFIG_FILE
+  config_load $BIN
+  config_foreach tcpproxy_write_config listen
+}
+
+start() {
+  echo -n "Starting $DESC "
+  tcpproxy_rebuild_config
+  config_foreach tcpproxy_generate_args $BIN
+  $DAEMON  $DAEMON_ARGS --config $CONFIG_FILE --write-pid "$RUN_D/$BIN.pid"
+  echo "."
+}
+
+reload() {
+  echo -n "Reloading $DESC "
+  tcpproxy_rebuild_config
+  kill -SIGHUP `cat "$RUN_D/$BIN.pid"`
+  echo "."
+}
+
+stop() {
+  echo -n "Stopping $DESC "
+  kill `cat $RUN_D/$BIN.pid` > /dev/null 2>&1
+  echo "."
+}