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