function cloudaddons_open($extra, $post = '', $timeout = 999) { return dfsockopen(cloudaddons_url('&from=s') . $extra, 0, $post, '', false, CLOUDADDONS_DOWNLOAD_IP, $timeout); }
require_once libfile('function/cloudaddons'); cpheader(); if (!$admincp->isfounder) { cpmsg('noaccess_isfounder', '', 'error'); } if (!$operation) { cloudaddons_check(); shownav('cloudaddons'); $extra = ''; if (!empty($_GET['id'])) { $extra .= '&mod=app&ac=item&id=' . rawurlencode($_GET['id']); } if (!empty($_GET['extra'])) { $extra .= '&' . addslashes($_GET['extra']); } $url = cloudaddons_url($extra); echo '<script type="text/javascript">location.href=\'' . $url . '\';</script>'; } elseif ($operation == 'download') { $step = intval($_GET['step']); $addoni = intval($_GET['i']); $uniqueid = $_G['setting']['siteuniqueid'] ? $_G['setting']['siteuniqueid'] : C::t('common_setting')->fetch('siteuniqueid'); if (!$_GET['md5hash'] || md5($_GET['addonids'] . md5($uniqueid . $_GET['timestamp'])) != $_GET['md5hash']) { cpmsg('cloudaddons_validator_error', '', 'error'); } $addonids = explode(',', $_GET['addonids']); list($_GET['key'], $_GET['type'], $_GET['rid']) = explode('.', isset($addonids[$addoni]) ? $addonids[$addoni] : $addonids[0]); if ($step == 0) { cpmsg('cloudaddons_downloading', "action=cloudaddons&operation=download&addonids={$_GET['addonids']}&i={$addoni}&step=1&md5hash=" . $_GET['md5hash'] . '×tamp=' . $_GET['timestamp'], 'loading', array('addonid' => $_GET['key'] . '.' . $_GET['type']), '<div>0%</div>', FALSE); } elseif ($step == 1) { $packnum = isset($_GET['num']) ? $_GET['num'] : 0; $tmpdir = 'saekv://data/download/' . $_GET['rid'];