Fix bashisms and enable http login
authorNeutron Soutmun <neo.neutron@gmail.com>
Mon, 8 Jun 2009 04:19:03 +0000 (11:19 +0700)
committerNeutron Soutmun <neo.neutron@gmail.com>
Mon, 8 Jun 2009 04:19:03 +0000 (11:19 +0700)
  * Fix bashisms of firewall.sh script.
  * Enable http login which only https enabled before.
  * Do not redirect the local web traffic to the proxy.

tools/firewall.sh.in
tools/weblogin-config-update.sh.in

index e0894a2..666d42e 100755 (executable)
@@ -535,17 +535,19 @@ rules () {
   ##
   # SQUID Cache-Proxy
   ##
-  if [ "$PROXY" = "yes" -o "$PROXY" = "transparent" ]; then
-    if [ "$PROXY_HOST" = "localhost" -o "$PROXY_HOST" = "127.0.0.1" ]; then
+  if [ "$PROXY" = "yes" ] || [ "$PROXY" = "transparent" ]; then
+    if [ "$PROXY_HOST" = "localhost" ] || [ "$PROXY_HOST" = "127.0.0.1" ]; then
       $IPTABLES -A $CHAIN_INPUT_AUTH -p tcp --dport $PROXY_PORT -j ACCEPT
     fi
 
     if [ "$PROXY" = "transparent" ]; then
-      if [ "$PROXY_HOST" = "localhost" -o "$PROXY_HOST" = "127.0.0.1" ]; then
+      if [ "$PROXY_HOST" = "localhost" ] || [ "$PROXY_HOST" = "127.0.0.1" ]; then
         $IPTABLES -t nat -A $CHAIN_NAT_PREROUTING -p tcp --dport http \
+          -d ! $VSERVER_IP \
           -m connmark --mark 2/2 -j REDIRECT --to-ports $PROXY_PORT
       else
         $IPTABLES -t nat -A $CHAIN_NAT_PRETROUTING -p tcp --dport http \
+          -d ! $VSERVER_IP \
           -m connmark --mark 2/2 \
           -j DNAT --to-destination $PROXY_HOST:$PROXY_PORT
       fi
index 996efba..6f7054b 100644 (file)
@@ -41,8 +41,17 @@ generate_config() {
   NAS_IDENTIFIER=`get_config_value $SETNAME nas_identifier $file`
   NAS_IP_ADDRESS=`get_config_value $SETNAME vserver_ip $file`
   NAS_LOGIN_HOST=`get_config_value $SETNAME vserver_fqdn $file`
-  NAS_LOGIN_PROTO="https"
-  NAS_LOGIN_PORT="443"
+  NAS_LOGIN_PROTO=`get_config_value $SETNAME nas_login_proto $file`
+  test -z "$NAS_LOGIN_PROTO" && NAS_LOGIN_PROTO="https"
+
+  NAS_LOGIN_PORT=`get_config_value $SETNAME nas_login_port $file`
+  if [ -z "$NAS_LOGIN_PORT" ]; then
+    if [ "$NAS_LOGIN_PROTO" = "https" ]; then
+      NAS_LOGIN_PORT="443"
+    else
+      NAS_LOGIN_PORT="80"
+    fi
+  fi
   NAS_PORT=`get_config_value $SETNAME nas_port $file`
   NAS_LOGIN_TITLE=`get_config_value $SETNAME nas_login_title $file`
   DEFAULT_REDIRECT_URL=`get_config_value $SETNAME nas_default_redirect $file`