edge
  	   %ˆ¾Å0¿Ã     '�Â¿Ã      'File not found.
  "   )ˆÆÅƒa–Ü4ý()¨‰P@ŠWÀ:¦-ÿÄ     )#!/usr/local/cpanel/3rdparty/bin/perl

# cpanel - scripts/check_mount_procfs              Copyright 2022 cPanel, L.L.C.
#                                                           All rights reserved.
# copyright@cpanel.net                                         http://cpanel.net
# This code is subject to the cPanel license. Unauthorized copying is prohibited

use strict;
use warnings;

use Cpanel::TempFile             ();
use Cpanel::FileUtils::Write     ();
use Cpanel::FileUtils::TouchFile ();
use Cpanel::Logger               ();

my $logger = Cpanel::Logger->new();

exit 0 if -e '/var/cpanel/conf/jail/flags/mount_proc_jailed_fallback_none';

my $tf  = Cpanel::TempFile->new();
my $dir = $tf->dir();

my $src = $dir . '/proc_test.c';
my $bin = '/root/.__proc_test_bin';

Cpanel::FileUtils::Write::overwrite_no_exceptions( $src, <<'EOF', 0600 );
#include <sys/mount.h>

#define MOUNTPOINT "/root/.__proc_test"

int main(int argc, char *argv[]){
    mount(0, MOUNTPOINT, "proc", 0, "");
    umount(MOUNTPOINT);
    return 0;
}
EOF

my $gcc_status = system qw(/usr/bin/gcc -Wall -o), $bin, $src;

if ( $gcc_status == 0 ) {
    mkdir '/root/.__proc_test';
    my ($sys) = ( `/usr/bin/time -p $bin 2>&1` || '' ) =~ /sys ([\d.]+)$/m;
    if ( defined($sys) ) {
        if ( $sys > 0.5 ) {
            $logger->warn("Mounting procfs took more than half a second of system time. This is a symptom of an outdated kernel. Disabling full procfs mounting in jailshell. Please note: If you re-enable full procfs mounting for jailshell without first updating your kernel, this could lead to extreme system load.");
            system qw(mkdir -p /var/cpanel/conf/jail/flags);
            unlink '/var/cpanel/conf/jail/flags/mount_proc_full';
            unlink '/var/cpanel/conf/jail/flags/mount_proc_jailed_fallback_full';
            Cpanel::FileUtils::TouchFile::touchfile('/var/cpanel/conf/jail/flags/mount_proc_jailed_fallback_none');
        }
    }    # else fail silently
    rmdir '/root/.__proc_test';
    unlink '/root/.__proc_test_bin';
}    # else fail silently
     +ˆÇÆƒy·Ù¾Ä !‘    +#!/usr/local/cpanel/3rdparty/bin/perl

# cpanel - scripts/import_exim_data                Copyright 2022 cPanel, L.L.C.
#                                                           All rights reserved.
# copyright@cpanel.net                                         http://cpanel.net
# This code is subject to the cPanel license. Unauthorized copying is prohibited

package scripts::import_exim_data;

=encoding utf-8

=head1 NAME

import_exim_data

=head1 SYNOPSIS

    import_exim_data ( --help | <logfile1> [ <logfile2> .. ] )

=head1 DESCRIPTION

This command re-populates the email statistics database based on the contents
of the log files at the given paths.

The format of the data in each exim log file should conform to the data format
of F</var/log/exim_mainlog>. Any of the files may be in gzip format, in which
case the filename must end with C<.gz>.

=cut

use strict;
use warnings;

use parent qw( Cpanel::HelpfulScript );

use Cpanel::Config::LoadCpConf          ();
use Cpanel::EximStats::ImportInProgress ();
use Cpanel::Finally                     ();
use Cpanel::IONice                      ();
use Cpanel::IP::Loopback                ();
use Cpanel::Locale                      ();
use Cpanel::PIDFile                     ();
use Cpanel::Sys::Load                   ();
use Cpanel::TailWatch                   ();    # PPI USE OK - inline below
use Cpanel::TailWatch::Eximstats        ();
use Cpanel::TimeHiRes                   ();
use Cpanel::IO                          ();
use Cpanel::Timezones                   ();

use Try::Tiny;

use constant _OPTIONS => ();

use constant _ACCEPT_UNNAMED => 1;

{

    package FakeTailWatch;    # Because Cpanel::TailWatch::Eximstats::process_line()
                              # thinks it needs a tailwatch obj

    use parent 'Cpanel::TailWatch';    # PPI USE OK - needed to mock this properly

    sub new {
        