#!/usr/bin/perl # Cleaner for Lemonldap::NG : removes old sessions from Apache::Session # # This module is written to be used by cron to clean old sessions from # Apache::Session. use Lemonldap::NG::Common::Conf; use Lemonldap::NG::Common::Conf::Constants; use Lemonldap::NG::Common::Apache::Session; use strict; my $lmconf = Lemonldap::NG::Common::Conf->new(); my $conf = $lmconf->getConf or die "Unable to get configuration ($!)"; my $tmp = $conf->{globalStorage}; eval "use $tmp"; die $@ if ($@); $conf->{timeout} ||= 7200; my @t; $tmp->get_key_from_all_sessions( $conf->{globalStorageOptions}, sub { my $entry = shift; my $id = shift; push @t, $id if ( time - $entry->{_utime} > $conf->{timeout} ); undef; } ); for my $id (@t) { my %h; eval { tie %h, $tmp, $id, $conf->{globalStorageOptions} }; if ($@) { next; } tied(%h)->delete; } 1;