/usr/share/perl5/Apache/Session/Browseable/File.pm is in libapache-session-browseable-perl 1.0.2-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | package Apache::Session::Browseable::File;
use strict;
use Apache::Session;
use Apache::Session::Lock::File;
use Apache::Session::Browseable::Store::File;
use Apache::Session::Generate::MD5;
use Apache::Session::Serialize::Storable;
use Apache::Session::Browseable::_common;
use Storable qw(thaw);
our $VERSION = '1.0';
our @ISA = qw(Apache::Session Apache::Session::Browseable::_common);
sub populate {
my $self = shift;
$self->{object_store} = new Apache::Session::Browseable::Store::File $self;
$self->{lock_manager} = new Apache::Session::Lock::File $self;
$self->{generate} = \&Apache::Session::Generate::MD5::generate;
$self->{validate} = \&Apache::Session::Generate::MD5::validate;
$self->{serialize} = \&Apache::Session::Serialize::Storable::serialize;
$self->{unserialize} = \&Apache::Session::Serialize::Storable::unserialize;
return $self;
}
sub DESTROY {
my $self = shift;
$self->save;
$self->{object_store}->close;
$self->release_all_locks;
}
sub get_key_from_all_sessions {
my $class = shift;
my $args = shift;
my $data = shift;
$args->{Directory} ||= $Apache::Session::Store::File::Directory;
unless ( opendir DIR, $args->{Directory} ) {
die "Cannot open directory $args->{Directory}\n";
}
my @t =
grep { -f "$args->{Directory}/$_" and /^[A-Za-z0-9@\-]+$/ } readdir(DIR);
closedir DIR;
my %res;
for my $f (@t) {
open F, "$args->{Directory}/$f";
my $row = join '', <F>;
if ( ref($data) eq 'CODE' ) {
$res{$f} = &$data( thaw($row), $f );
}
elsif ($data) {
$data = [$data] unless ( ref($data) );
my $tmp = thaw($row);
$res{$f}->{$_} = $tmp->{$_} foreach (@$data);
}
else {
$res{$f} = thaw($row);
}
}
return \%res;
}
1;
__END__
|