!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\CodeGen\PECL\Element\   drwxrwxrwx
Free 4.09 GB of 39.52 GB (10.35%)
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:     Global.php (6.15 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/**
 * Class describing a thread-global within a PECL extension 
 *
 * PHP versions 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   Tools and Utilities
 * @package    CodeGen
 * @author     Hartmut Holzgraefe <hartmut@php.net>
 * @copyright  2005 Hartmut Holzgraefe
 * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
 * @version    CVS: $Id: Global.php,v 1.5 2006/04/25 20:40:09 hholzgra Exp $
 * @link       http://pear.php.net/package/CodeGen
 */

/**
 * includes
 */
require_once "CodeGen/PECL/Element.php";

/**
 * Class describing a thread-global within a PECL extension 
 *
 * @category   Tools and Utilities
 * @package    CodeGen
 * @author     Hartmut Holzgraefe <hartmut@php.net>
 * @copyright  2005 Hartmut Holzgraefe
 * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
 * @version    Release: @package_version@
 * @link       http://pear.php.net/package/CodeGen
 */
class CodeGen_PECL_Element_Global 
  
extends CodeGen_PECL_Element 
{
    
// TODO add description and use it for C code comments

    /**
     * The name of the global
     *
     * @access private
     * @var     string
     */
    
protected $name;
    
    
/**
     * Set method for name
     *
     * @access public
     * @var string global variable name
     */
    
function setName($name
    {
        if (!
self::isName($name)) {
            return 
PEAR::raiseError("'$name' is not a valid global name");
        }
        
        
$this->name $name;
        
        return 
true;
    }
    
    
/**
     * Get method for name
     *
     * @access public
     * @return string
     */
    
function getName()
    {
        return 
$this->name;
    }



    
/**
     * The type of the global
     *
     * @access private
     * @var     string
     */
    
protected $type;
    
    
/**
     * Set method for type
     *
     * @access public
     * @var string C type name
     */
    
function setType($name)
    {
        if (!
self::isType($name)) {
            return 
PEAR::raiseError("'$name' is not a valid type for a global");
        }
        
        
$this->type $name;
        
        return 
true;
    }
    
    
/**
     * Get method for name
     *
     * @access public
     * @return string
     */
    
function getType($name)
    {
        return 
$this->type;
    }

    

    
/**
     * Default value
     *
     * @access private
     * @var     string
     */
    
protected $value null;

    
/**
     * Set method for default value
     *
     * @access public
     * @param string default value 
     */
    
function setValue($value)
    {
        
// TODO checks
        
$this->value $value;
        
        return 
true;
    }

    
/** 
     * Get method for default value
     *
     * @access public
     * @return string
     */
    
function getValue()
    {
        return 
$this->value;
    }
    



    
/**
     * Overriding type check as we deal with real C types here
     *
     * @access public
     * @var string C type specifier
     */
    
function isType($type
    {
        
/* check is rather naive as it doesn't know about context
           so we check for a sequence of valid names for now
           TODO: check for either simple type, struct/class or single word (typedef)
        */
        
$array explode(" "str_replace('*',' ',$type));
        foreach (
$array as $name) {
            if (empty(
$name)) continue;
            
// TODO :: should only be allowed for C++, not C extensions
            
if (!$this->isName(str_replace("::",""$name))) return false
        }
        return 
true;
    }
  
  
  
    
/**
     * Generate header for global variable registration code
     *
     * @access private
     * @param  string extension basename
     * @return string C code snippet 
     */
    
static function cCodeHeader($name
    { 
        return 
"static void php_{$name}_init_globals(zend_{$name}_globals *{$name}_globals)\n{\n";
    }

    
/**
     * Generate registration code for this global variable
     *
     * @access private
     * @param  string extension basename
     * @return string C code snippet 
     */
    
function cCode($name
    {
        
$code "    {$name}_globals->{$this->name} = ";

        if (
$this->value != null) {
            
$code .= $this->value;
        } else {
            if (
strstr($this->type"*")) {
                
$code .= "NULL";
            } else {
                
$code .= "0";
            }
        } 
        
        
$code .= ";\n";

        return 
$code;
    }
  
    
/**
     * Generate footer for global variable registration code
     *
     * @access private
     * @param  string extension basename
     * @return string C code snippet 
     */
    
static function cCodeFooter($name
    {
        return 
'
}

static void php_'
.$name.'_shutdown_globals(zend_'.$name.'_globals *'.$name.'_globals)
{
}'
;
    }


    
/**
     * Generate header for global variable registration code in header file
     *
     * @access private
     * @param  string extension basename
     * @return string C code snippet 
     */
    
static function hCodeHeader($name
    {
        return 
"ZEND_BEGIN_MODULE_GLOBALS({$name})\n";
     }

    
/**
     * Generate declaration for this global variable in header file
     *
     * @access private
     * @param  string extension basename
     * @return string C code snippet 
     */
    
function hCode($name
    {
        return 
"  {$this->type} {$this->name};\n";
    }

    
/**
     * Generate footer for global variable registration code in header file
     *
     * @access private
     * @param  string extension basename
     * @return string C code snippet 
     */
    
static function hCodeFooter($name
    {
        
$upname strtoupper($name);
    
        return 
"
ZEND_END_MODULE_GLOBALS(
{$name})

#ifdef ZTS
#define 
{$upname}_G(v) TSRMG({$name}_globals_id, zend_{$name}_globals *, v)
#else
#define 
{$upname}_G(v) ({$name}_globals.v)
#endif

"
;
      
    }
  
}

?>

:: 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.0156 ]--