package Apache::SessionX::Store::File; use strict; use Symbol; use vars qw($VERSION @ISA); $VERSION = '2.00b5'; @ISA = ('Apache::Session::Store::File') ; use Apache::Session::Store::File; sub count_sessions { my $self = shift; my $session = shift; my $directory = $session->{args}->{Directory} || die 'Directory param missing!'; opendir(DIR,$directory); my $count = grep { /^[0-9a-fA-F]+$/ } readdir(DIR); closedir(DIR); return $count; # print STDERR "Apache::SessionX::Store::File ($tmp)--- we are here\n"; } sub first_session_id { my $self = shift; my $session = shift; my $file; my $directory = $session->{args}->{Directory} || die 'Directory param missing!'; $self->{dir} = Symbol::gensym(); opendir $self->{dir}, $directory; $file = readdir $self->{dir}; while ($file && ($file !~ /^[0-9a-fA-F]+$/)) { #print STDERR "\tfile: $file\n"; $file = readdir $self->{dir}; #print STDERR "\tfile/first: $file\n"; } return $file; } sub next_session_id { my $self = shift; my $session = shift; my $file; return $self -> first_session_id ($session) if (!$self->{dir}) ; $file = readdir $self->{dir}; while ($file && ($file !~ /^[0-9a-fA-F]+$/)) { #print STDERR "\tfile: $file\n"; $file = readdir $self->{dir}; #print STDERR "\tfile/next: $file\n"; } closedir $self->{dir} if (!$file) ; return $file; } 1;