Revision: 7452
          http://sourceforge.net/p/ipcop/svn/7452
Author:   owes
Date:     2014-04-11 06:08:12 +0000 (Fri, 11 Apr 2014)
Log Message:
-----------
Change TABLE automatically without need for Update button.
Add error hint for CHAIN typos, no full and detailed errortext.

Modified Paths:
--------------
    ipcop/trunk/html/cgi-bin/iptablesgui.cgi
    ipcop/trunk/updates/2.1.5/ROOTFILES.i486-2.1.5

Modified: ipcop/trunk/html/cgi-bin/iptablesgui.cgi
===================================================================
--- ipcop/trunk/html/cgi-bin/iptablesgui.cgi    2014-04-09 19:12:26 UTC (rev 
7451)
+++ ipcop/trunk/html/cgi-bin/iptablesgui.cgi    2014-04-11 06:08:12 UTC (rev 
7452)
@@ -1,30 +1,25 @@
 #!/usr/bin/perl
 #
-################################################################################
+# This file is part of the IPCop Firewall.
 #
-# IPCop iptables Web-Iface
+# IPCop is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
 #
-# Copyright (C) 2007 Olaf (weizen_42) Westrik
+# IPCop is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
 #
-# This program is free software; you can redistribute it and/or modify it 
under the terms of the GNU General Public License as published by the Free 
Software Foundation; either version 2 of the License, or (at your option) any 
later version. 
+# You should have received a copy of the GNU General Public License
+# along with IPCop.  If not, see <http://www.gnu.org/licenses/>.
 #
-# This program is distributed in the hope that it will be useful, but WITHOUT 
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 
+# Copyright (C) 2007 Olaf (weizen_42) Westrik
+# (c) 2008-2014, the IPCop team
 #
-# You should have received a copy of the GNU General Public License along with 
this program; if not, write to the Free Software Foundation, Inc., 51 Franklin 
St, Fifth Floor, Boston, MA 02110, USA 
-#
-#
-# Dieses Programm ist freie Software. Sie k\xF6nnen es unter den Bedingungen 
der GNU General Public License, wie von der Free Software Foundation 
ver\xF6ffentlicht, weitergeben und/oder modifizieren, entweder gem\xE4\xDF 
Version 2 der Lizenz oder (nach Ihrer Option) jeder sp\xE4teren Version. 
-#
-# Die Ver\xF6ffentlichung dieses Programms erfolgt in der Hoffnung, da\xDF es 
Ihnen von Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE, sogar ohne die 
implizite Garantie der MARKTREIFE oder der VERWENDBARKEIT F\xDCR EINEN 
BESTIMMTEN ZWECK. Details finden Sie in der GNU General Public License. 
-#
-# Sie sollten ein Exemplar der GNU General Public License zusammen mit diesem 
Programm erhalten haben. Falls nicht, schreiben Sie an die Free Software 
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA.
-#
-################################################################################
-#
 # $Id$
 #
-# 2007-03 created by weizen_42
-#
 
 # Add entry in menu
 # MENUENTRY status 080 "IPtables" "IPTables"
@@ -34,7 +29,7 @@
 use strict;
 
 # enable only the following on debugging purpose
-use warnings;
+use warnings; no warnings 'once';
 use CGI::Carp 'fatalsToBrowser';
 
 use LWP::UserAgent;
@@ -44,8 +39,8 @@
 require '/usr/lib/ipcop/header.pl';
 
 my $option_table = '';
+my $errormessage = '';
 
-
 my %cgiparams=();
 $cgiparams{'ACTION'} = '';              # refresh
 $cgiparams{'TABLE'} = 'filter';         # filter / mangle / nat / raw
@@ -60,7 +55,20 @@
 &Header::openpage('IPTables', 1, '');
 &Header::openbigbox('100%', 'left');
 
-foreach my $table ( ("filter", "mangle", "nat", "raw") ) {
+#&Header::openbox('100%', 'left', 'DEBUG');
+#foreach my $line (keys %cgiparams) {
+#   print "$line = $cgiparams{$line}<br />\n";
+#}
+#print "$ENV{'QUERY_STRING'}\n";
+#&Header::closebox();
+
+
+if (($cgiparams{'TABLE'} ne 'filter') && ($cgiparams{'TABLE'} ne 'mangle') && 
($cgiparams{'TABLE'} ne 'nat') && ($cgiparams{'TABLE'} ne 'raw')) {
+    # Silently return to filter table
+    $cgiparams{'TABLE'} = 'filter';
+}
+
+foreach my $table ( ('filter', 'mangle', 'nat', 'raw') ) {
   if ( $cgiparams{'TABLE'} eq $table ) {
     $option_table = $option_table ."<option value='$table' 
selected='selected'>$table</option>";
   }
@@ -69,15 +77,28 @@
   }
 }
 
-&Header::openbox('100%', 'left', 'IPTables:');
+if ($cgiparams{'CHAIN'} !~ /^[A-Z_]*$/) {
+    $errormessage = $Lang::tr{'invalid input'};
+}
 
+if ($errormessage) {
+    &Header::openbox('100%', 'left', 'IPTables:', 'error');
+}
+else {
+    &Header::openbox('100%', 'left', 'IPTables:');
+}
+
 print <<END
 <form method='post' action='$ENV{'SCRIPT_NAME'}'>
 <table width='100%'>
 <tr>
-    <td width='20%' class='base'>Table:</td><td colspan='3'><select 
name='TABLE'>$option_table</select></td>
+    <td width='25%' class='base'>Table:</td>
+    <td colspan='3'><select name='TABLE' 
onchange='this.form.submit()'>$option_table</select></td>
 </tr><tr>
-    <td width='20%' class='base'>Chain:&nbsp;<img src='/blob.gif' alt='*' 
/></td><td colspan='3'><input type='text' name='CHAIN' 
value='$cgiparams{'CHAIN'}' size='20' /></td>
+    <td width='25%' class='base'>Chain:&nbsp;<img src='/blob.gif' alt='*' 
/></td>
+    <td width='25%'><input type='text' name='CHAIN' 
value='$cgiparams{'CHAIN'}' size='20' /></td>
+    <td width='25%'>&nbsp;$errormessage</td>
+    <td width='25%'>&nbsp;</td>
 </tr>
 </table>
 <hr />
@@ -95,7 +116,7 @@
 ;
 
 my $output = '';
-if ($cgiparams{'CHAIN'} eq '') {
+if (($cgiparams{'CHAIN'} eq '') || $errormessage) {
     $output = `/usr/local/bin/iptableswrapper $cgiparams{'TABLE'} 2>&1`;
 }
 else {

Modified: ipcop/trunk/updates/2.1.5/ROOTFILES.i486-2.1.5
===================================================================
--- ipcop/trunk/updates/2.1.5/ROOTFILES.i486-2.1.5      2014-04-09 19:12:26 UTC 
(rev 7451)
+++ ipcop/trunk/updates/2.1.5/ROOTFILES.i486-2.1.5      2014-04-11 06:08:12 UTC 
(rev 7452)
@@ -1,4 +1,5 @@
 ## please place IPCop files first, then packages sorted by alphabetical order
+/home/httpd/cgi-bin/iptablesgui.cgi
 /usr/local/bin/upgrade.sh
 /usr/local/sbin/setup
 ##

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
Put Bad Developers to Shame
Dominate Development with Jenkins Continuous Integration
Continuously Automate Build, Test & Deployment 
Start a new project now. Try Jenkins in the cloud.
http://p.sf.net/sfu/13600_Cloudbees
_______________________________________________
Ipcop-svn mailing list
Ipcop-svn@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ipcop-svn

Reply via email to