!C99Shell v. 1.0 pre-release build #13!

Software: Apache. PHP/5.5.15 

uname -a: Windows NT SVR-DMZ 6.1 build 7600 (Windows Server 2008 R2 Enterprise Edition) i586 

SYSTEM 

Safe-mode: OFF (not secure)

C:\Intranet\C\xampp\php\PEAR\File\Fstab\   drwxrwxrwx
Free 4.09 GB of 39.52 GB (10.36%)
Detected drives: [ a ] [ c ] [ d ] [ e ] [ f ]
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     Entry.php (12.22 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */

/**
 * This file contains the class for an entry in a fstab file
 *
 * PHP versions 4 and 5
 *
 * LICENSE: This source file is subject to version 3.0 of the PHP license
 * that is available through the world-wide-web at the following URI:
 * http://www.php.net/license/3_0.txt.  If you did not receive a copy of
 * the PHP License and are unable to obtain it through the web, please
 * send a note to license@php.net so we can mail you a copy immediately.
 *
 * @category  File Formats
 * @package   File_Fstab
 * @author    Ian Eure <ieure@php.net>
 * @copyright (c) 2004, 2005 Ian Eure
 * @license   http://www.php.net/license/3_0.txt  PHP License 3.0
 * @version   Release: 2.0.2
 * @version   CVS:     $Revision: 1.7 $
 * @link      http://pear.php.net/package/File_Fstab
 */


/**
 * These defines enumerate the possible types of device entries in the fstab
 */
define('FILE_FSTAB_ENTRY_DEVTYPE_BLOCKDEV'1);
define('FILE_FSTAB_ENTRY_DEVTYPE_UUID'2);
define('FILE_FSTAB_ENTRY_DEVTYPE_LABEL'3);


/**
 * A single entry in a fstab file
 *
 * @category  File Formats
 * @package   File_Fstab
 * @author    Ian Eure <ieure@php.net>
 * @copyright (c) 2004, 2005 Ian Eure
 * @license   http://www.php.net/license/3_0.txt  PHP License 3.0
 * @version   Release: 2.0.2
 * @version   CVS:     $Revision: 1.7 $
 * @link      http://pear.php.net/package/File_Fstab
 */
class File_Fstab_Entry {
    
/**
     * Raw line from fstab
     *
     * @var string
     */
    
var $entry;

    
/**
     * Block device
     *
     * Only one of $device, $uuid, or $label will be set, based on what's in the
     * fstab entry.
     *
     * @var string
     */
    
var $device '/dev/null';

    
/**
     * Device UUID
     *
     * Only one of $device, $uuid, or $label will be set, based on what's in the
     * fstab entry.
     *
     * @var string
     */
    
var $uuid;

    
/**
     * Device label
     *
     * Only one of $device, $uuid, or $label will be set, based on what's in the
     * fstab entry.
     *
     * @var string
     */
    
var $label;

    
/**
     * Device mount point
     *
     * @var string
     */
    
var $mountPoint '/mnt';

    
/**
     * Device filesystem type
     *
     * @var string
     */
    
var $fsType 'auto';

    
/**
     * Mount options
     *
     * @var array
     */
    
var $mountOptions = array(
            
'defaults' => "defaults"
    
);

    
/**
     * Device dump frequency
     *
     * @var int
     */
    
var $dumpFrequency 0;

    
/**
     * Device fsck pass number
     *
     * @var int
     */
    
var $fsckPassNo 0;

    
/**
     * Have we parsed the entry?
     *
     * @var boolean
     * @access private
     */
    
var $_haveParsed false;


    
/**
     * Constructor
     *
     * @param   string  $entry  Single entry from fstab file
     * @return  void
     */
    
function File_Fstab_Entry($entry false)
    {
        if (
$entry) {
            
$this->setEntry($entry);
            
$this->parse();
        }
    }

    
/**
     * Set block device
     *
     * Only one of device, uuid, or label may be set; setting this will un-set
     * any valies in the other variables.
     *
     * @since   2.0.0beta1
     * @param   string   $device  Value to set
     * @return  mixed    boolean true on success, PEAR_Error otherwise
     */
    
function setDevice($device)
    {
        
$this->device $device;
        unset(
$this->uuid$this->label);
        return 
true;
    }

    
/**
     * Get block device
     *
     * @since   2.0.0beta1
     * @return  string
     */
    
function getDevice()
    {
        return 
$this->device;
    }

    
/**
     * Set UUID
     *
     * Only one of device, uuid, or label may be set; setting this will un-set
     * any valies in the other variables.
     *
     * @since   2.0.0beta1
     * @param   string   $uuid  Value to set
     * @return  mixed    boolean true on success, PEAR_Error otherwise
     */
    
function setUUID($uuid)
    {
        
$this->uuid $uuid;
        unset(
$this->device$this->label);
        return 
true;
    }

    
/**
     * Get UUID
     *
     * @since   2.0.0beta1
     * @return  string
     */
    
function getUUID()
    {
        return 
$this->uuid;
    }

    
/**
     * Set device label
     *
     * Only one of device, uuid, or label may be set; setting this will un-set
     * any valies in the other variables.
     *
     * @since   2.0.0beta1
     * @param   string  $label  Value to set
     * @return  mixed   boolean true on success, PEAR_Error otherwise
     */
    
function setLabel($label)
    {
        
$this->label $label;
        unset(
$this->device$this->uuid);
        return 
true;
    }

    
/**
     * Get device label
     *
     * @since   2.0.0beta1
     * @return  string
     */
    
function getLabel()
    {
        return 
$this->label;
    }

    
/**
     * Set mount point
     *
     * @since   2.0.0beta1
     * @param   string  $dir  Value to set
     * @return  mixed   boolean true on success, PEAR_Error otherwise
     */
    
function setMountPoint($dir)
    {
        
$this->mountPoint $dir;
        return 
true;
    }

    
/**
     * Get mount point
     *
     * @since   2.0.0beta1
     * @return  string
     */
    
function getMountPoint()
    {
        return 
$this->mountPoint;
    }

    
/**
     * Set filesystem type
     *
     * @since   2.0.0beta1
     * @param   string  $type  Value to set
     * @return  mixed   boolean true on success, PEAR_Error otherwise
     */
    
function setFsType($type)
    {
        
$this->fsType $type;
        return 
true;
    }

    
/**
     * Get filesystem type
     *
     * @since   2.0.0beta1
     * @return  string
     */
    
function getFsType()
    {
        return 
$this->fsType;
    }

    
/**
     * Set filesystem dump frequency
     *
     * @since   2.0.0beta1
     * @param   int    $type  Value to set
     * @return  mixed  boolean true on success, PEAR_Error otherwise
     */
    
function setDumpFrequency($freq)
    {
        
$this->dumpFrequency $freq;
        return 
true;
    }

    
/**
     * Get filesystem dump frequency
     *
     * @since   2.0.0beta1
     * @return  int
     */
    
function getDumpFrequency()
    {
        return 
$this->dumpFrequency;
    }

    
/**
     * Set filesystem fsck pass number
     *
     * @since   2.0.0beta1
     * @param   int    $type  Value to set
     * @return  mixed  boolean true on success, PEAR_Error otherwise
     */
    
function setFsckPassNo($pass)
    {
        
$this->fsckPassNo $pass;
        return 
true;
    }

    
/**
     * Get filesystem fsck pass number
     *
     * @since   2.0.0beta1
     * @return  int
     */
    
function getFsckPassNo()
    {
        return 
$this->fsckPassNo;
    }

    
/**
     * Set an entry
     *
     * @param   string  $entry  Single entry from fstab file
     * @return  void
     */
    
function setEntry($entry)
    {
        
$this->entry $entry;
        
$this->_haveParsed false;
    }

    
/**
     * Parse fstab entry
     *
     * @param   string  $entry  Line from fstab to parse
     * @return  mixed   true on success, PEAR_Error on failure
     */
    
function parse()
    {
        if (
$this->_haveParsed || !strlen($this->entry)) {
            return 
true;
        }

        
// Sanitize.
        
$this->_cleanup();

        
// It might be a good idea to allow specifying a custom whitespace
        // character list.
        
$sections split("\ +|\t+"$this->entry);
        if (
count($sections) != 6) {
            return 
PEAR::raiseError("Invalid entry format");
        }

        list(
$device$this->mountPoint$this->fsType$options$this->dumpFrequency$this->fsckPassNo) = $sections;

        
// Device, UUID, or Label?
        
switch (substr($device04)) {
            case 
'UUID':
                list(
$null$this->uuid) = explode('='$device);
                break;

            case 
'LABE':
                list(
$null$this->label) = explode('='$device);
                break;

            default:
                
$this->device $device;
        }

        
$this->_parseMountOptions($options);

        
$this->_haveParsed true;
        return 
true;
    }

    
/**
     * Clean up prior to parsing
     *
     * @access  private
     * @return  void
     */
    
function _cleanup()
    {
        
$this->mountOptions = array();
        unset(
$this->device$this->uuid$this->label$this->mountPoint,
              
$this->fsType$this->dumpFrequency$this->fsckPassNo);
    }

    
/**
     * Parse fstab options
     *
     * @param $options string Mount options from fstab
     *
     * @return  void
     * @access  protected
     */
    
function _parseMountOptions($options)
    {
        foreach (
explode(','$options) as $option) {
            if (
strstr($option'=')) {
                
$tmp explode('='$option);
                list(
$name$value) = $tmp;
            } else {
                
$name $option;
                
$value $option;
            }
            
$this->mountOptions[$name] = $value;
        }
    }

    
/**
     * Reconstruct fstab options from $mountOptions
     *
     * @return  string     fstab mount options
     * @access  protected
     */
    
function _makeMountOptions()
    {
        
// Copy.
        
foreach ($this->mountOptions as $option => $value) {
            if (
$option == $value) {
                
$opts[] = $option;
            } else {
                
$opts[] = $option.'='.$value;
            }
        }
        return 
implode(','$opts);
    }

    
/**
     * Get the fstab entry
     *
     * This rebuilds the entry from the class variables.
     *
     * @return  string  The fstab entry
     */
    
function getEntry($seperator)
    {
        
$entry = array(
            
$this->_getDeviceEntry(),
            
$this->getMountPoint(),
            
$this->getFsType(),
            
$this->_makeMountOptions(),
            
$this->getDumpFrequency(),
            
$this->getFsckPassNo()
        );
        return 
implode($entry$seperator);
    }

    
/**
     * Get device, or uuid, or label
     *
     * @return  string  Device/UUID/LABEL
     */
    
function getDeviceUUIDOrLabel()
    {
        if (
$this->device) {
            return 
$this->getDevice();
        } else if (
$this->uuid) {
            return 
$this->getUUID();
        } else if(
$this->label) {
            return 
$this->getLabel();
        }
    }

    
/**
     * Get device entry for building fstab
     *
     * This is like getDeviceUUIDOrLabel(), but we prefix the actual value
     * with the necessary string for it to work in the fstab.
     *
     * @return  string     Device/UUID/LABEL
     * @access  protected
     */
    
function _getDeviceEntry()
    {
        switch (
$this->getDeviceType()) {
            case 
FILE_FSTAB_ENTRY_DEVTYPE_UUID:
                
$prefix 'UUID=';
                break;

            case 
FILE_FSTAB_ENTRY_DEVTYPE_LABEL:
                
$prefix 'LABEL=';
                break;

            default:
                
$prefix '';
        }
        return 
$prefix.$this->getDeviceUUIDOrLabel();
    }

    
/**
     * Get device type
     *
     * @return  int  One of FILE_FSTAB_ENTRY_DEVTYPE_BLOCKDEV, _UUID, or _LABEL
     */
    
function getDeviceType()
    {
        if (
$this->device) {
            return 
FILE_FSTAB_ENTRY_DEVTYPE_BLOCKDEV;
        } else if (
$this->uuid) {
            return 
FILE_FSTAB_ENTRY_DEVTYPE_UUID;
        } else if (
$this->label) {
            return 
FILE_FSTAB_ENTRY_DEVTYPE_LABEL;
        }
    }

    
/**
     * Is an option set?
     *
     * @param   string   $option  Option name
     * @return  boolean
     */
    
function hasMountOption($option)
    {
        return @
array_key_exists($option$this->mountOptions);
    }

    
/**
     * Get a mount option
     *
     * @param   string   $which Option to get
     * @return  string   Mount option
     */
    
function getMountOption($which)
    {
        if (!
$this->hasMountOption($which)) {
            return 
false;
        }
        return 
$this->mountOptions[$which];
    }

    
/**
     * Set a mount option
     *
     * @param   string  $name Option to set
     * @param   string  $value Value to give option, or blank if option takes no args
     * @return  void
     */
    
function setMountOption($name$value false)
    {
        if (!
$value) {
            
$value $name;
        }
        
$this->mountOptions[$name] = $value;
    }
}
?>

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

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

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

--[ c99shell v. 1.0 pre-release build #13 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0312 ]--