usr/local/cpanel/scripts/exim_tidydb000075500000005734147207303470013647 0ustar00#!/usr/local/cpanel/3rdparty/bin/perl # cpanel - scripts/exim_tidydb 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::exim_tidydb; use strict; use warnings; use File::Glob (); use File::Basename (); use Umask::Local (); use Cpanel::Autodie (); use Cpanel::FileUtils::TouchFile (); use Cpanel::NameVariant (); use Cpanel::Time::ISO (); use Cpanel::Binaries (); use Cpanel::SafeRun::Object (); use Cpanel::AccessIds::ReducedPrivileges (); our @exim_dirs = qw(/var/spool/exim_incoming /var/spool/exim); use constant VALID_STATIC_DB_NAMES => ( 'retry', 'misc', 'callout', 'ratelimit', ); __PACKAGE__->script() unless caller(); sub script { my $exim_tidydb = Cpanel::Binaries::path('exim_tidydb'); if ( !-x $exim_tidydb ) { die 'Cannot find exim_tidydb'; } foreach my $dir (@exim_dirs) { next if ( !-d $dir ); my @dbs = File::Glob::bsd_glob("$dir/db/*"); foreach my $db (@dbs) { my $basedb = File::Basename::basename($db); next if ( $basedb =~ /^\.|\.lock(file)?$/ ); # Valid database names = retry | misc | wait- | callout | ratelimit my $is_valid = grep { $_ eq $basedb } VALID_STATIC_DB_NAMES(); $is_valid ||= $basedb =~ m{^wait-}; next if !$is_valid; my $dbpath = "$dir/db/$basedb"; my $lock = "$dbpath.lockfile"; unless ( -e $lock ) { my $privs = Cpanel::AccessIds::ReducedPrivileges->new(qw/mailnull mail/); my $umask = Umask::Local->new(027); Cpanel::FileUtils::TouchFile::touchfile($lock); } my $run = Cpanel::SafeRun::Object->new( 'program' => $exim_tidydb, 'args' => [ ( $basedb eq 'ratelimit' ? ( '-t', '1d' ) : () ), $dir, $basedb ] ); print $run->stdout(); if ( $run->CHILD_ERROR() && $run->error_code() == 1 ) { my $new_filename = Cpanel::NameVariant::find_name_variant( max_length => 254, name => $dbpath . '.broken.' . Cpanel::Time::ISO::unix2iso(), test => sub { Cpanel::Autodie::link_if_no_conflict( $dbpath, $_[0] ); }, ); unlink $dbpath or warn "unlink($dbpath): $!"; print "Renamed corrupt “$dbpath” to “$new_filename”.\n"; } } } Cpanel::SafeRun::Object->new( 'program' => '/usr/local/cpanel/scripts/cleanmsglog' ); return; } 1; usr/sbin/exim_tidydb000075500000435460147207360220010556 0ustar00ELF>@@1@8 @%$@@@@@88@8@@@JJ MM`M` MM`M`  TT@T@DDPtdAA@A@QtdRtdMM`M`@@/lib64/ld-linux-x86-64.so.2GNU GNUQnyܗ\J*!H *,/BE|qX92gxzRqKE\ "R7fb )dQ`T`dQ`L @>Q`Q``$6@libcrypt.so.1__gmon_start__libm.so.6librt.so.1libpam.so.0libdb-5.3.so_initdb_env_create_finidb_createlibc.so.6strcpy__printf_chkexitstrncmpoptindposix_memalignsendfilestrncpyputs__stack_chk_failstrftimegmtimestrlensigemptyset__errno_locationunsetenvfputcmemcpymalloc__ctype_b_locsscanfstderralarmgetcwdsigactioncloseopenlocaltimestrchr__vfprintf_chkfcntl__sprintf_chk__xstatstrcmpstrerror__asprintf_chk__libc_start_mainsysconffree_edata__bss_start_endGLIBC_2.3GLIBC_2.14GLIBC_2.8GLIBC_2.4GLIBC_2.3.4GLIBC_2.2.5pii ii ii ti "ui .O`Q`/Q`.P` P`(P`0P`8P`@P`HP`PP`XP` `P` hP` pP` xP` P`P`P`P`P`P`P`P`P`P`P`P`P`P`P`P`Q`Q`Q` Q`! Q`"(Q`#0Q`$8Q`%@Q`&HQ`'PQ`(XQ`)HHMA HtkH5BA %DA @%BA h%:A h%2A h%*A h%"A h%A h%A h% A hp%A h`%@ h P%@ h @%@ h 0%@ h %@ h %@ h%@ h%@ h%@ h%@ h%@ h%@ h%@ h%@ h%@ hp%@ h`%z@ hP%r@ h@%j@ h0%b@ h %Z@ h%R@ h%J@ h%B@ h %:@ h!%2@ h"%*@ h#%"@ h$%@ h%%@ h&% @ h'p%@ h(`AWAVAUIATUSH(dH%(H$1|$IEA'8-PftutuvxupAIcI\D3Et`_1If.IBDrtH@HHuܸ@R`HPHtHJH9r HJH9rH@H=T`r1DATAUHSH~Ht []A\@H# Ht/LMt@MQL9r MQL9rM MuH@HHuѸ@R`HHt"HJH9r HJH9rHHuH@H=T`r1EHX@@11af.@R`1@HHH@HBB HT`rf.HHS`HPHtHJH9r HJH9roH@H=T`rH5" Ht)HfHPHtHJH9r HJH9r7H@HHuܹS`HHu-DHHt HPH9rHPH9sH@HT`rHt>HHu$@HHtHPH9rHPH9s@HvHHu1f.HIAѾHA@11T@@f.Hc! E1ɉAHуAHH@R`D@S! AȿR`H1p! e! [AWAVEAUIATIUDSHcHHhdH%(HD$X1)IljuM9|I?AtHc1LI9OtNHt$XdH34%(Hh[]A\A]A^A_D4$MAٺ@@111A)ލ )9@t)HcHcLIIGAHD$ HD$ CM1Ld$(Ht$0HD$8HD$@HD$HHH H=H3HHT$HD$!fAT  AUHSH8HtQ H;DHp 5 DHH[]1A\ÐAI11@@'HuEH@@11 SHHPdH%(HD$H1HHH@HA HPHD$CMH\$Ht1H)HcHD$ HD$(HD$HD$0HD$8HH H=H3HHT$HD$HHÉqHYHD$HdH3%(uHP[lff.AT  USH~AI A@11 } 1HcHAH@R`HپLcP 1IAHAI1I@R`lI$L[]A\AWIAVAUATAHUDSHHDD$ D9ILp DD$ Hc= 1DA^A@HH@R`HcHHIL9tHL[]A\A]A^A_IMHu DHHHtHrH9uBH2HzH1A)E(Am0)Q 8fDD$ME麈@@117ff. ; H  ~  n@f.- H@f.H= S  t  [DA@s Ht [f.H=a Ht.SM pA@9 $. H/ [@AWAAVIAUIATL% UH- SL)1HHHtLLDAHH9uH[]A\A]A^A_Ðf.HH [-t