До чего же Вы ленивые. Смержить 3 файлика беда.
Брался
http://85.238.103.64:8081/lastversion.tar.gz. Он же и правился. Правились по сути 3 файла.
inc/init.php
тут на всякий случай вставил новые текущие пути.
Код: Выделить всё
- define('TESTKEY_PATH_NOD', "/v3-rel-sta/mod_000_loader/em000_32_l0.nup");
- define('TESTKEY_PATH_ESS', "/v3-rel-sta/mod_010_smon/em010_32_l1.nup");
+ #define('TESTKEY_PATH_NOD', "/v3-rel-sta/mod_000_loader/em000_32_l0.nup");
+ #define('TESTKEY_PATH_ESS', "/v3-rel-sta/mod_010_smon/em010_32_l1.nup");
+ define('TESTKEY_PATH_NOD', "/v3-rel-sta/mod_000_loader_1072/em000_32_l0.nup");
+ define('TESTKEY_PATH_ESS', "/v3-rel-sta/mod_010_smon_1034/em010_32_l1.nup");
inc/classes/Nod32ms.class.php
Код: Выделить всё
private function run_script() {
Config::init_mirrors();
+ $tmp_path = Config::get('web_dir') . DS . TMP_PATH;
+ Mirror::find_verify_link("eset_upd", $tmp_path);
$key = $this->read_keys();
...
@copy($tmp_update_ver,$cur_update_ver);
+ #Перезапишем файлик с новыми путями
+ $content = file_get_contents($cur_update_ver);
+ $content = preg_replace('/_[0-9]{1,}\//i', '/', $content);
+ file_put_contents($cur_update_ver, $content);
inc/classes/Mirror.class.php
Да, и простите, там все таки был косяк небольшой. забыл убрать строку, которой дебажил.
Код: Выделить всё
$tmp = array('size','file','version');
$tmp = array('file'); # эту строку надо закоментировать или удалить
Правильные изменения
Код: Выделить всё
static public function test_key($login, $passwd) {
...
...
if(Config::get('update_version_ess') == 1) {
- $header = @get_headers("http://$login:$passwd@$mirror".TESTKEY_PATH_ESS);
+ $header = @get_headers("http://$login:$passwd@$mirror".TESTKEY_REAL_PATH_ESS);
}
else
{
- $header = @get_headers("http://$login:$passwd@$mirror".TESTKEY_PATH_NOD);
+ $header = @get_headers("http://$login:$passwd@$mirror".TESTKEY_REAL_PATH_NOD);
}
# это можно вставить в конец класса. Функция для поиска реального пути по которому проверять ключик.
+ static public function find_verify_link($folder, $temp_dir) {
+ $mirrors = Config::get('mirror');
+ $mirror = null;
+ @mkdir($temp_dir, 0755, true);
+ shuffle($mirrors);
+ foreach($mirrors as $m) {
+ $arch = $temp_dir . DS . "update.rar";
+ $unarch = $temp_dir . DS . "update.ver";
+ $status = Tools::download_file("http://$m/$folder/update.ver", $arch);
+ if ( is_string($status) !== true ) {
+ if(filesize($arch) > 100) {
+ #Log::write_log("tools::extract_file => Extract File from arch ".$arch." => ".$temp_dir, 3);
+ tools::extract_file($arch, $temp_dir);
+ #$version = mirror::get_DB_version($unarch);
+ if(!file_exists($unarch)) break;
+ $content = file_get_contents($unarch);
+ preg_match('/\/v3-rel-sta\/mod_000_loader_[0-9]{1,}\/(.*)/i', $content, $matches_nod);
+ define('TESTKEY_REAL_PATH_NOD', trim($matches_nod[0]));
+ preg_match('/\/v3-rel-sta\/mod_010_smon_[0-9]{1,}\/(.*)/i', $content, $matches_ess);
+ define('TESTKEY_REAL_PATH_ESS', trim($matches_ess[0]));
+ @unlink($arch);
+ @unlink($unarch);
+ return true;
+ }
+ }
+ }
+ return false;
+ }
# изменения в парсинг update.ver для массива с локальными путями без цифрового обозначения версии
static private function parse_update_ver($file, $server, $ver = null) {
...
$res[$varible][$pos] = trim(substr($row, strlen($varible)+1));
+ if($varible == 'file')
+ {
+ $res['real_file_name'][$pos] = preg_replace('/_[0-9]{1,}\//i', '/', $res[$varible][$pos]);
+ }
...
$arr['file'][] = $tmp_filename;
+ $arr['real_file_name'][] = $res['real_file_name'][$i];
if(isset($res['version'][$i])) {
# изменения в загрузку сигнатур - чтобы грузились в нужные нам локальные каталоги
static public function download_signature($update_ver, $mirror, $pair_key, $ver = null) {
...
if($array2 !== null) {
- foreach($array2['file'] as $key => $name) {
+ foreach($array2['real_file_name'] as $key => $name) {
+ $remote_file_name = $array2['file'][$key];
...
if($real_fs != $local_fs) {
- $real_fs = Tools::get_remote_file_size("http://$pair_key[0]:$pair_key[1]@$mirror$name");
+ $real_fs = Tools::get_remote_file_size("http://$pair_key[0]:$pair_key[1]@$mirror$remote_file_name");
....
else {
Log::write_log(Language::t("Downloading %s [%s Bytes]", basename($name), number_format($real_fs, 0, ',', ',')), 3, $ver);
- Tools::download_file(sprintf("http://%s:%s@%s", $pair_key[0], $pair_key[1], $mirror . $name), $dir.$name);
+ Tools::download_file(sprintf("http://%s:%s@%s", $pair_key[0], $pair_key[1], $mirror . $remote_file_name), $dir.$name);
Вроде бы ничего не упустил.