gpl.cgi: Fix proper redirection so that the agreement has only to be accepted once.
[people/teissler/ipfire-2.x.git] / html / cgi-bin / gpl.cgi
index 5cfbebd..94187ce 100644 (file)
@@ -29,28 +29,29 @@ require "${General::swroot}/lang.pl";
 require "${General::swroot}/header.pl";
 require "/opt/pakfire/lib/functions.pl";
 
-
-my %cgiparams;
-my $refresh;
-
+# If the license has already been accepted.
 if ( -e "/var/ipfire/main/gpl_accepted" ) {
-       print "Status: 302 Moved Temporarily\n";
-       print "Location: index.cgi\n\n";
-       exit (0);
+       &redirect();
 }
-&Header::showhttpheaders();
 
+my %cgiparams;
 $cgiparams{'ACTION'} = '';
+
 &Header::getcgihash(\%cgiparams);
 
-&Header::openpage($Lang::tr{'main page'}, 1, $refresh);
-&Header::openbigbox('', 'center');
+# Check if the license agreement has been accepted.
+if ($cgiparams{'ACTION'} eq "$Lang::tr{'yes'}" && $cgiparams{'gpl_accepted'} eq '1') {
+       open(FILE, ">/var/ipfire/main/gpl_accepted");
+       close(FILE);
 
-# licence agreement
-if ($cgiparams{'ACTION'} eq $Lang::tr{'yes'} && $cgiparams{'gpl_accepted'} eq '1') {
-       system('touch /var/ipfire/main/gpl_accepted');
+       &redirect();
 }
 
+&Header::showhttpheaders();
+
+&Header::openpage($Lang::tr{'main page'}, 1);
+&Header::openbigbox('', 'center');
+
 &Header::openbox('100%', 'left', $Lang::tr{'gpl license agreement'});
 print <<END;
        $Lang::tr{'gpl please read carefully the general public license and accept it below'}.
@@ -80,3 +81,9 @@ END
 &Header::closebox();
 &Header::closebigbox();
 &Header::closepage();
+
+sub redirect {
+       print "Status: 302 Moved Temporarily\n";
+       print "Location: index.cgi\n\n";
+       exit (0);
+}