MOON
Server: Apache/2.2.31 (Unix) mod_ssl/2.2.31 OpenSSL/0.9.8e-fips-rhel5 mod_bwlimited/1.4
System: Linux csr818.wilogic.com 2.6.18-419.el5xen #1 SMP Fri Feb 24 22:50:37 UTC 2017 x86_64
User: digitals (531)
PHP: 5.4.45
Disabled: NONE
Upload Files
File: //proc/self/root/proc/self/root/scripts.20110531.215904.25158/fastmail
#!/usr/bin/perl
# cpanel - fastmail                               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            ();
use Cpanel::Config::LoadCpConf ();

if ( grep( /daemonize/, @ARGV ) ) {
    if ( fork() ) { exit; }
}

my $cpconf_ref = Cpanel::Config::LoadCpConf::loadcpconf();

use strict;

if ( -w '/proc/sys/fs/inotify/max_user_instances' || -w '/proc/sys/filesystem/inotify/max_user_instances' ) {
    Cpanel::PwCache::no_uid_cache(); #uid cache only needed if we are going to make lots of getpwuid calls

    Cpanel::PwCache::init_passwdless_pwcache();

    my $pwcache_ref = Cpanel::PwCache::fetch_pwcache();

    my $inotify_needed       = 128;
    my $inotify_queue_needed = 16384;

    foreach my $pwref (@$pwcache_ref) {
        my $current_inotify_needed = 0;
        my $homedir                = (@$pwref)[7];
        if ( -e $homedir . '/.cpanel/email_accounts.yaml' && ( stat(_) )[7] < 1000000 && open( my $email_account_fh, '<', $homedir . '/.cpanel/email_accounts.yaml' ) ) {
            while ( readline($email_account_fh) ) {
                $current_inotify_needed += 10 if (/diskused:/);
            }
            close($email_account_fh);

            $inotify_queue_needed += $current_inotify_needed;

            $current_inotify_needed += 128;

            if ( $current_inotify_needed > $inotify_needed ) {
                $inotify_needed = $current_inotify_needed;
            }
        }
    }

    $inotify_queue_needed += $inotify_needed;

    foreach my $key ( 'fs', 'filesystem' ) {
        if ( -w '/proc/sys/' . $key . '/inotify/max_user_instances' && open( my $inotify_proc, '>', '/proc/sys/' . $key . '/inotify/max_user_instances' ) ) {
            print {$inotify_proc} $inotify_needed . "\n";
            close($inotify_proc);
        }
        if ( -w '/proc/sys/' . $key . '/inotify/max_queued_events' && open( my $inotify_proc, '>', '/proc/sys/' . $key . '/inotify/max_queued_events' ) ) {
            print {$inotify_proc} $inotify_queue_needed . "\n";
            close($inotify_proc);
        }

    }

    if ( defined $cpconf_ref->{'mailserver'} && $cpconf_ref->{'mailserver'} eq 'dovecot' ) {
        if ( open( my $fastmail_fh, '>', '/var/cpanel/fastmail' ) ) {
            print {$fastmail_fh} '2';
            close($fastmail_fh);
        }
    }
    else {
        unlink('/var/cpanel/fastmail');
    }

}
else {
    require Cpanel::CachedDataStore;
    my $conf_dir        = '/var/cpanel/conf/dovecot';
    my $conf_file       = $conf_dir . '/main';
    my $dovecot_conf_hr = {};
    # Usage is safe as we own the dir and file
    $dovecot_conf_hr = Cpanel::CachedDataStore::fetch_ref($conf_file) if ( -e $conf_file );

    my $restart = 0;
    if ( !exists $dovecot_conf_hr->{'mailbox_idle_check_interval'} ) {
        $dovecot_conf_hr->{'mailbox_idle_check_interval'} = 30;
        $restart = 1;
    }

    if ($restart) {
        mkdir $conf_dir, 0755 if !-e $conf_dir;
        # Usage is safe as we own the dir and file
        Cpanel::CachedDataStore::store_ref( $conf_file, $dovecot_conf_hr );
        system('/scripts/builddovecotconf');
        system('/scripts/restartsrv_dovecot');
    }

    if ( defined $cpconf_ref->{'mailserver'} && $cpconf_ref->{'mailserver'} eq 'dovecot' ) {
        if ( open( my $fastmail_fh, '>', '/var/cpanel/fastmail' ) ) {
            print {$fastmail_fh} '1';
            close($fastmail_fh);
        }
    }
    else {
        unlink('/var/cpanel/fastmail');
    }
}