]> git.ipfire.org Git - people/teissler/ipfire-2.x.git/blobdiff - html/cgi-bin/proxy.cgi
proxy.cgi: Allow to set a hostname as upstream proxy.
[people/teissler/ipfire-2.x.git] / html / cgi-bin / proxy.cgi
index 015502a4e5fda106006447a12eb60591479487da..0b28c2adf36a4fa0738147fc1bc768c158144755 100644 (file)
@@ -348,17 +348,27 @@ if (($proxysettings{'ACTION'} eq $Lang::tr{'save'}) || ($proxysettings{'ACTION'}
                $errormessage = $Lang::tr{'invalid input'};
                goto ERROR;
        }
+       if($proxysettings{'CACHE_MEM'} > $proxysettings{'CACHE_SIZE'} && $proxysettings{'CACHE_SIZE'} > 0){
+               $errormessage = $Lang::tr{'advproxy errmsg cache'}." ".$proxysettings{'CACHE_MEM'}." > ".$proxysettings{'CACHE_SIZE'};
+               goto ERROR;
+       }
+       
        if (!(&General::validport($proxysettings{'PROXY_PORT'})))
        {
                $errormessage = $Lang::tr{'advproxy errmsg invalid proxy port'};
                goto ERROR;
        }
-       if (!($proxysettings{'UPSTREAM_PROXY'} eq '')) {
-         my @temp = split(/:/,$proxysettings{'UPSTREAM_PROXY'});
-         if (!(&General::validip($temp[0]))) {
-           $errormessage = $Lang::tr{'advproxy errmsg invalid upstream proxy'};
-           goto ERROR;
-          }
+       if (!($proxysettings{'UPSTREAM_PROXY'} eq ''))
+       {
+               my @temp = split(/:/,$proxysettings{'UPSTREAM_PROXY'});
+               if (!(&General::validip($temp[0])))
+               {
+                       if (!(&General::validdomainname($temp[0])))
+                       {
+                               $errormessage = $Lang::tr{'advproxy errmsg invalid upstream proxy'};
+                               goto ERROR;
+                       }
+               }
         }
        if (!($proxysettings{'CACHE_SIZE'} =~ /^\d+/) ||
                ($proxysettings{'CACHE_SIZE'} < 10))
@@ -507,8 +517,11 @@ if (($proxysettings{'ACTION'} eq $Lang::tr{'save'}) || ($proxysettings{'ACTION'}
                }
                if (!&General::validip($proxysettings{'LDAP_SERVER'}))
                {
-                       $errormessage = $Lang::tr{'advproxy errmsg ldap server'};
-                       goto ERROR;
+                       if (!&General::validdomainname($proxysettings{'LDAP_SERVER'}))
+                       {
+                               $errormessage = $Lang::tr{'advproxy errmsg ldap server'};
+                               goto ERROR;
+                       }
                }
                if (!&General::validport($proxysettings{'LDAP_PORT'}))
                {
@@ -3081,12 +3094,6 @@ pid_filename /var/run/squid.pid
 cache_mem $proxysettings{'CACHE_MEM'} MB
 END
        ;
-
-       if ($proxysettings{'CACHE_SIZE'} ne '0')
-       {
-               print FILE "cache_dir aufs /var/log/cache $proxysettings{'CACHE_SIZE'} $proxysettings{'L1_DIRS'} 256\n\n";
-       }
-
        print FILE "error_directory $errordir/$proxysettings{'ERR_LANGUAGE'}\n\n";
 
        if ($proxysettings{'OFFLINE_MODE'} eq 'on') {  print FILE "offline_mode on\n\n"; }
@@ -3104,6 +3111,11 @@ END
                print FILE "\n";
        }
 
+       if ($proxysettings{'CACHE_SIZE'} ne '0')
+       {
+               print FILE "cache_dir aufs /var/log/cache $proxysettings{'CACHE_SIZE'} $proxysettings{'L1_DIRS'} 256\n\n";
+       }
+
        if ($proxysettings{'LOGGING'} eq 'on')
        {
                print FILE <<END