Revision: 7264
          http://sourceforge.net/p/ipcop/svn/7264
Author:   owes
Date:     2014-03-02 18:07:40 +0000 (Sun, 02 Mar 2014)
Log Message:
-----------
Change the way the GUI restarts the proxy. Display a box with info and restart 
squid in background.
Avoids breaking connection (followed by browser error) when the GUI is used via 
proxy.

Modified Paths:
--------------
    ipcop/trunk/html/cgi-bin/proxy.cgi
    ipcop/trunk/html/cgi-bin/urlfilter.cgi
    ipcop/trunk/src/libs/header.pl
    ipcop/trunk/updates/2.1.2/ROOTFILES.i486-2.1.2

Modified: ipcop/trunk/html/cgi-bin/proxy.cgi
===================================================================
--- ipcop/trunk/html/cgi-bin/proxy.cgi  2014-03-01 16:02:02 UTC (rev 7263)
+++ ipcop/trunk/html/cgi-bin/proxy.cgi  2014-03-02 18:07:40 UTC (rev 7264)
@@ -16,7 +16,7 @@
 # along with IPCop.  If not, see <http://www.gnu.org/licenses/>.
 #
 # (c) 2004-2009 marco.s - http://www.advproxy.net
-# (c) 2009-2012 The IPCop Team
+# (c) 2009-2014 The IPCop Team
 #
 # $Id$
 #
@@ -714,7 +714,9 @@
 
             system('/usr/local/bin/restartsquid --config');
 
-            system('/usr/local/bin/restartsquid --waitpid');
+            system('/usr/local/bin/restartsquid --waitpid >/dev/null &');
+            &Header::page_show('title', 'warning', $Lang::tr{'web proxy will 
now restart'}, "<meta http-equiv='refresh' content='5; URL=/cgi-bin/proxy.cgi' 
/>");
+            exit 0;
         }
     }
 

Modified: ipcop/trunk/html/cgi-bin/urlfilter.cgi
===================================================================
--- ipcop/trunk/html/cgi-bin/urlfilter.cgi      2014-03-01 16:02:02 UTC (rev 
7263)
+++ ipcop/trunk/html/cgi-bin/urlfilter.cgi      2014-03-02 18:07:40 UTC (rev 
7264)
@@ -368,7 +368,7 @@
 
         &setpermissions($dbdir);
 
-        system('/usr/local/bin/restartsquid --waitpid');
+        &restartexit;
     }
 }
 
@@ -532,7 +532,7 @@
     }
 
     if (!$errormessage) {
-        system('/usr/local/bin/restartsquid --waitpid');
+        &restartexit;
     }
     $tcsettings{'TCMODE'} = 'on';
 }
@@ -736,7 +736,9 @@
         $errormessage .= "$Lang::tr{'errmsg web proxy service required'}<br 
/>";
     }
 
-    if (!$errormessage) { system('/usr/local/bin/restartsquid --waitpid');}
+    if (!$errormessage) { 
+        &restartexit;
+    }
     $uqsettings{'UQMODE'} = 'on';
 }
 
@@ -997,9 +999,10 @@
 
         &writeconfigfile;
 
-        system('/usr/local/bin/restartsquid --waitpid') unless 
($besettings{'NORESTART'} eq 'on');
-
         if (-d $editdir) { system("rm -rf $editdir"); }
+        unless ($besettings{'NORESTART'} eq 'on') {
+            &restartexit;
+        }
     }
     else {
         $errormessage .= "$Lang::tr{'errmsg blacklist empty'}<br />";
@@ -1184,14 +1187,13 @@
     if ($uqsettings{'MODE'} eq 'USERQUOTA') {
         print "<p class='base'>$Lang::tr{'quota restart message'}</p>\n";
     }
-    print "<p><input type='submit' name='ACTION' value='$Lang::tr{'urlfilter 
restart'}' />";
+    print "<p><input type='submit' name='ACTION' value='$Lang::tr{'urlfilter 
restart'}' /></p>";
     if ($tcsettings{'MODE'} eq 'TIMECONSTRAINT') {
         print "<input type='hidden' name='MODE' value='TIMECONSTRAINT' />";
     }
     if ($uqsettings{'MODE'} eq 'USERQUOTA') {
         print "<input type='hidden' name='MODE' value='USERQUOTA' />";
     }
-    print "</p>\n";
     &Header::closebox();
     print "</form>\n";
 }
@@ -3363,3 +3365,11 @@
     $uqsettings{'MODE'}         = '';
     $uqsettings{'CHANGED'}      = 'no';
 }
+
+
+sub restartexit
+{
+    system('/usr/local/bin/restartsquid --waitpid >/dev/null &');
+    &Header::page_show('title', 'warning', $Lang::tr{'web proxy will now 
restart'}, "<meta http-equiv='refresh' content='5; URL=/cgi-bin/urlfilter.cgi' 
/>");
+    exit 0;
+}

Modified: ipcop/trunk/src/libs/header.pl
===================================================================
--- ipcop/trunk/src/libs/header.pl      2014-03-01 16:02:02 UTC (rev 7263)
+++ ipcop/trunk/src/libs/header.pl      2014-03-02 18:07:40 UTC (rev 7264)
@@ -60,6 +60,7 @@
 
 my %menu = ();
 our $javascript = 1;
+our $httpheaders = 0;
 
 # Define visual sort indicators for column headings
 $Header::sortup = "<img src='/images/triangle_up.png' alt='a-z' />";      # 
sort small to large
@@ -111,6 +112,7 @@
         print "Connection: close\n";
         print "Content-type: text/html\n\n";
     }
+    $httpheaders = 1;
 }
 
 sub showjsmenu
@@ -528,4 +530,38 @@
     }
 }
 
+# Show page with IPCop logo and a single text. Optional refresh.
+#   Parameters:
+#   - page title
+#   - boxtype: error = red boxframe, warning = yellow boxframe
+#   - message
+#   - refresh. Use full meta refresh like so: "<meta http-equiv='refresh' 
content='5; URL=/cgi-bin/index.cgi' />"
+sub page_show
+{
+    my $title = shift;
+    my $boxtype = shift;
+    my $message = shift;
+    my $refresh = shift;
+
+    showhttpheaders() unless($httpheaders);
+    openpage($title, 0, $refresh);
+    openbigbox('100%', 'center');
+    openbox('100%', 'left', '', $boxtype);
+    print <<END
+<div align='center'>
+<table width='100%'>
+<tr><td align='center'>
+<br /><br /><img src='/ipcop_big.gif' alt='ipcop' /><br /><br /><br />
+</td></tr>
+</table>
+<br />
+<font size='6'>$message</font>
+</div>
+END
+        ;
+    closebox();
+    closebigbox();
+    closepage();
+}
+
 1;

Modified: ipcop/trunk/updates/2.1.2/ROOTFILES.i486-2.1.2
===================================================================
--- ipcop/trunk/updates/2.1.2/ROOTFILES.i486-2.1.2      2014-03-01 16:02:02 UTC 
(rev 7263)
+++ ipcop/trunk/updates/2.1.2/ROOTFILES.i486-2.1.2      2014-03-02 18:07:40 UTC 
(rev 7264)
@@ -6,6 +6,7 @@
 /home/httpd/cgi-bin/fwrulesadm.cgi
 /home/httpd/cgi-bin/ifaces.cgi
 /home/httpd/cgi-bin/openvpn.cgi
+/home/httpd/cgi-bin/proxy.cgi
 /home/httpd/cgi-bin/servicegrps.cgi
 /home/httpd/cgi-bin/services.cgi
 /home/httpd/cgi-bin/trafficadm.cgi
@@ -13,6 +14,7 @@
 /home/httpd/cgi-bin/wireless.cgi
 /usr/lib/ipcop/DataAccess.pl
 /usr/lib/ipcop/ddns-lib.pl
+/usr/lib/ipcop/header.pl
 /usr/local/bin/dhcpcd.sh
 /usr/local/bin/makesquidconf.pl
 /usr/local/bin/puzzleFwRules.pl

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


------------------------------------------------------------------------------
Flow-based real-time traffic analytics software. Cisco certified tool.
Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer
Customize your own dashboards, set traffic alerts and generate reports.
Network behavioral analysis & security monitoring. All-in-one tool.
http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk
_______________________________________________
Ipcop-svn mailing list
Ipcop-svn@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ipcop-svn

Reply via email to