shell bypass 403

UnknownSec Shell

: /scripts/ [ drwxr-xr-x ]

name : transfer_in_progress
#!/usr/local/cpanel/3rdparty/bin/perl

# cpanel - scripts/transfer_in_progress            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::transfer_in_progress;

=encoding utf-8

=head1 NAME

transfer_in_progress

=head1 SYNOPSIS

    transfer_in_progress ( --serialize_output | --help )

This script will check if there is an active transfer session.

 Options:
    --help                      brief help message
    --serialize_output          encode output as JSON

=cut

use strict;

use Getopt::Long ();

use Cpanel::Exception              ();
use Cpanel::JSON                   ();
use Cpanel::LoadModule             ();
use Whostmgr::Transfers::SessionDB ();

use Try::Tiny;

if ( !caller() ) {
    my $serialize_output;
    my $help;

    Getopt::Long::Configure('pass_through');
    Getopt::Long::GetOptionsFromArray(
        [@ARGV],
        serialize_output => \$serialize_output,
        help             => \$help,
    );

    if ($help) {
        print _help();
        exit 0;
    }

    my $script_obj = scripts::transfer_in_progress->new();

    try {
        my $transfer_exists = $script_obj->active_transfer_exists();
        $script_obj->_handle_output( $transfer_exists, $serialize_output );
    }
    catch {
        die Cpanel::Exception::get_string($_) . "\n";
    };

    exit 0;
}

sub new {
    my $self = bless {}, __PACKAGE__;

    return $self;
}

=head1 METHODS

=over 4

=item B<active_transfer_exists>

A function that indicates if there is an active transfer session (one that is RUNNING or PAUSING).

This function returns 1 if there is an active transfer session and 0 if there isn't.

This function may die if there is any issue connecting to the database or getting the data
from the database.

=back

=cut

sub active_transfer_exists {
    my ($self) = @_;

    my $session_db = Whostmgr::Transfers::SessionDB->new();

    my $sessions = $session_db->list_session_details( [ 'RUNNING', 'PAUSING' ] );
    return 0 if !$sessions || !keys %$sessions;

    return 1;
}

sub _handle_output {
    my ( $self, $transfer_exists, $serialize_output ) = @_;

    if ($serialize_output) {
        print Cpanel::JSON::Dump(
            {
                transfer_exists => $transfer_exists,
            }
        ) . "\n";
    }
    else {
        if ($transfer_exists) {
            print "An active transfer exists.\n";
        }
        else {
            print "An active transfer does not exist.\n";
        }
    }

    return 1;
}

sub _help {
    my $msg = shift;

    my $val;
    open my $wfh, '>', \$val or die "Failed to open to a scalar: $!";

    Cpanel::LoadModule::load_perl_module('Pod::Usage');
    Pod::Usage::pod2usage(
        -exitval   => 'NOEXIT',
        -message   => $msg,
        -verbose   => 1,
        -noperldoc => 1,
        -output    => $wfh,
        -input     => '/usr/local/cpanel/scripts/transfer_in_progress.pod',
    );

    return $val;

}

1;

© 2025 UnknownSec
Courses | Anyleson - Learning Platform
INR (₹)
India Rupee
$
United States Dollar

Courses

17 Courses
Course
How to Manage Your Virtual Team

How to Manage Your Virtual Team

in Communications
3.75
1:30 Hours
30 Jun 2021
₹59
20% Offer
Excel from Beginner to Advanced

Excel from Beginner to Advanced

in Management
4.75
1:40 Hours
20 Mar 2026
₹94.40 ₹118
Text course
Learn Python Programming

Learn Python Programming

in Web Development
5.00
0:35 Hours
29 Jun 2021
Free
Finished
Learn Linux in 5 Days

Learn Linux in 5 Days

in Web Development
4.00
7:30 Hours
10 Jul 2021
Free
Course
Become a Product Manager

Become a Product Manager

in Business Strategy
4.58
2:30 Hours
28 Jun 2021
Free

Type

More options