MOON
Server: Apache
System: Linux vps.thepromohut.com 2.6.18-398.el5 #1 SMP Tue Sep 16 20:51:48 EDT 2014 i686
User: caretrak (507)
PHP: 5.2.10
Disabled: NONE
Upload Files
File: //scripts.20110601.041516.15411/cleansessions
#!/usr/bin/perl
# cpanel - checksessions                          Copyright(c) 2010 cPanel, Inc.
#                                                           All rights Reserved.
# copyright@cpanel.net                                         http://cpanel.net
# This code is subject to the cpanel license. Unauthorized copying is prohibited

BEGIN { unshift @INC, '/usr/local/cpanel'; }

use Cpanel::PwCache ();

Cpanel::PwCache::init_passwdless_pwcache();

checksessions();

sub checksessions {
    my $now      = time();
    my $killtime = ( 60 * 60 * 24 );    #24 hours - time in seconds

    my @APPS = qw( horde phpmyadmin phppgadmin squirrelmail roundcube );
    foreach my $app (@APPS) {
        ## The correct name is e.g. cpanelroundcube without the dash. This is true for
        ##   all of the above, except I do not know the squirrelmail user.
        my @PW = Cpanel::PwCache::getpwnam( 'cpanel' . $app );
        unless ( scalar @PW ) {
            ## Retaining original behavior for squirrelmail.
            @PW = Cpanel::PwCache::getpwnam( 'cpanel-' . $app );
        }

        next if ( !@PW || !$PW[0] );

        my $homedir = $PW[7];
        my $tmpdir  = $homedir . '/tmp';

        opendir my $session_files, $tmpdir;
        while ( my $qf = readdir($session_files) ) {
            $qf =~ s/\///g;    #not really possible
            next if ( $qf !~ /^sess/ );
            if ( ( stat( $tmpdir . '/' . $qf ) )[9] + $killtime < $now ) {
                unlink( $tmpdir . '/' . $qf );
            }
        }
        closedir $session_files;
    }
    return;
}