]> bicyclesonthemoon.info Git - yplom/facebug1/commitdiff
script for removing old access files.
authorb <b@7dec801f-c475-4e67-ba99-809552d69c55>
Tue, 5 Jan 2016 19:54:11 +0000 (19:54 +0000)
committerb <b@7dec801f-c475-4e67-ba99-809552d69c55>
Tue, 5 Jan 2016 19:54:11 +0000 (19:54 +0000)
git-svn-id: svn://botcastle1b/yplom/facebug1@14 7dec801f-c475-4e67-ba99-809552d69c55

configure.pl
interface.1.pl
makefile.1.mak
rmaccess.1.pl [new file with mode: 0644]
settings

index 258e3b6469b8dd5dcc8b16779765198b19f17090..bf642c213d67ac27456e2dc46d1ad16bd3c4585c 100644 (file)
@@ -93,7 +93,7 @@ $def{'CGI_ALIAS'}  = 'ScriptAlias '.$set{'interface_path'}.'/view '.$set{'bin_pa
 $def{'PATH_ALIAS'} = 'Alias       '.$set{'interface_path'}.'      '.$wwwpath; 
 
 $def{'BOT_CRONTAB'}       = $set{'bot_crontab'}.' '.$set{'bin_path'}.'bot'.(($set{'bot_args'} ne '')?(' '.$set{'bot_args'}):'').' >'.$set{'log_path'}.'bot.log';
-$def{'RM_ACCESS_CRONTAB'} = $set{'rm_access_crontab'}.' '.$set{'rm'}.' '.$set{'data_path'}.'access/*';
+$def{'RM_ACCESS_CRONTAB'} = $set{'rm_access_crontab'}.' '.$set{'bin_path'}.'rmaccess';
 $def{'OLDLOGS_CRONTAB'}   = $set{'oldlogs_crontab'}.' '.$set{'proxy_bin_path'}.'oldlogs '.$set{'log_path'}.' '.$set{'log_size_limit'}.' '.$set{'logs_total'}.' '.$set{'logs_uncompressed'};
 
 $def{'CC'} = 'CC='.$set{'gcc'};
index 8a6a7bd4d925c35892263b96330163ee6dd60527..31cb963c56a3ee4fa4ce6c3244a4bf6ee7977b6a 100644 (file)
@@ -1,7 +1,7 @@
 ###PERL;
 
 # interface.pl is generated from interface.1.pl
-# 02.01.2015
+# 05.01.2015
 #
 # This is the software of the facebook interface, to access archived groups,
 # threads, images, etc.
@@ -993,7 +993,7 @@ sub login {
        }
        
        # if password confirmed create the key and the access file
-       $key=key(KEY_BITS);
+       $key=$time.'f'.key(KEY_BITS);
        $accesspath=ACCESS_PATH.$key;
        
        open ($accessfile,">",$accesspath) or return loginpage("Couldn't create temporary file $accesspath.","Status: 500 Internal Server Error\n");
index 9472bf7f1858d140715b3ac4c76851cc2eccba1c..33ffcc4d0c5b2e06c271dbd1d29dd0461ef88c6f 100644 (file)
@@ -14,8 +14,8 @@
 all: moveout moveoutlib copyoutwww remove config.txt
 
 
-moveout: bot interface interface.pl  setuid exec
-       $(MV) bot interface interface.pl $(OD)
+moveout: bot interface interface.pl rmaccess  setuid exec
+       $(MV) bot interface interface.pl rmaccess $(OD)
 
 moveoutlib: facebug_lib.pm   setuid exec
        $(MV) facebug_lib.pm $(LD)
@@ -26,8 +26,8 @@ copyoutwww: if.css   setuid exec
 setuid: interface
        $(CM) u+s interface
 
-exec: bot interface.pl
-       $(CM) +x bot interface.pl
+exec: bot interface.pl rmaccess
+       $(CM) +x bot interface.pl rmaccess
 
 remove: interface interface.c   copyoutwww moveout moveoutlib setuid exec 
        $(RM) interface.c
@@ -45,6 +45,9 @@ interface: interface.c
 bot: bot.1.pl   configure.pl settings 
        $(PL) configure.pl settings <bot.1.pl >bot
 
+rmaccess: rmaccess.1.pl   configure.pl settings 
+       $(PL) configure.pl settings <rmaccess.1.pl >rmaccess
+
 config.txt: config.1.txt   configure.pl settings
        $(PL) configure.pl settings <config.1.txt >config.txt
 
diff --git a/rmaccess.1.pl b/rmaccess.1.pl
new file mode 100644 (file)
index 0000000..f6fde5f
--- /dev/null
@@ -0,0 +1,53 @@
+###PERL;
+
+# rmaccess is generated from rmaccess.1.pl.
+# 05.01.2016
+#
+# This script removes old access files.
+#
+#    Copyright (C) 2015-2016  Balthasar SzczepaƄski
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU Affero General Public License as
+#    published by the Free Software Foundation, either version 3 of the
+#    License, or (at your option) any later version.
+#
+#    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 Affero General Public License for more details.
+#
+#    You should have received a copy of the GNU Affero General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+###ACCESS_PATH;
+###TIMEOUT_UNLOCK;
+###TIMEOUT_INACT;
+
+my $time = time();
+srand ($time-$$);
+
+my $dir;
+my $path;
+my $unlocktime;
+my $lasttime;
+my $timeout_unlock = TIMEOUT_UNLOCK*60;
+my $timeout_inact = TIMEOUT_INACT*60;
+       
+if (opendir ($dir, ACCESS_PATH)) {
+       while (defined($path = readdir $dir)) {
+               if (open ($file, '<', ACCESS_PATH.$path)) {
+                       $unlocktime=<$accessfile>;
+                       $lasttime=<$accessfile>;
+                       close($file);
+                       
+                       if (($unlocktime !~ /^([0-9]+)$/) || ($lasttime !~ /^([0-9]+)$/)) {
+                               unlink (ACCESS_PATH.$path);
+                       }
+                       elsif ((abs($time-$unlocktime)>$timeout_unlock) or (abs($time-$lasttime)>$timeout_inact)){
+                               unlink (ACCESS_PATH.$path);
+                       }
+               }
+       }
+       closedir($dir);
+}
index 84f167c81ff35974ab2e553ff857dd8f9cfebd81..2a980cbb7f26feff0204048aa50d84fe3016ae2c 100644 (file)
--- a/settings
+++ b/settings
@@ -17,8 +17,8 @@ interface_path   = /facebug #Please WITHOUT "/" at the end! It's an URL path and
                             #not a directory path
 
 #Time in minutes
-timeout_unlock = 90 # log out this many minutes after logging in
-timeout_inact  = 30 # log out this many minutes after last activity
+timeout_unlock = 51840 # log out this many minutes after logging in
+timeout_inact  =  2160 # log out this many minutes after last activity
 
 path    = /usr/local/bin:/usr/bin:/bin #The path environment variable. Must be
                                        #overwritten if SETUID. Otherwise