XBT with TBDev

Started by viper375, December 06, 2014, 01:17:03 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

inception

Quote from: Tundracanine on November 04, 2015, 05:58:39 PM
You have to remember TBDev is really old and prob still highly exploitable.. Plus also uses mysql instead of mysqli witch means you cant run it on php version greater then 5.3 without flooding your error logs with errors.

This forum is not for TS support anyway, and good luck with even an nulled version.. Owner of TS finds you running a nulled version and he/she will prob report your ass.

Installed u-232 v4 with help of stones :)

Tundracanine

You have to remember TBDev is really old and prob still highly exploitable.. Plus also uses mysql instead of mysqli witch means you cant run it on php version greater then 5.3 without flooding your error logs with errors.

This forum is not for TS support anyway, and good luck with even an nulled version.. Owner of TS finds you running a nulled version and he/she will prob report your ass.
If wanting support help please put bare min info like
Os:
U-232 Version:
Php Version:
Tracker type: like xbt or php
Saves on asking more questions just so people can help someone.

ss207823

#18
Firstly you won't or i should say shouldn't get TS support on here, you find V4 hard to understand and now you want to undertake TS which is another piece of garbage and to make it even worst all the owner want's is your money.

Secondly if  you don't like the layout off V4, all the pieces are in place for you to change it to your suiting. It isn't as hard has you think, there are thousands off samples to choose from on the net to use as a guide.

Thirdly, and this one i mean no disrespect here but you need to choose your base code, instead off changing your mind once you hit a bump. Hitting bumps is what forces you learn in order to get past it and unto the next one, this way you learn the code as well.

inception

Quote from: stoner on November 03, 2015, 08:45:19 PM
See now herein lies the issue.

Please do not take offence at this.   But if you cant remove code, what hope do you have in getting such an old source code upto date with all the security patches and the many other optimisations and/or deprecated functions it needs.


To remove mods in u-232 which do onot already have simple on/off switches, you need to dig into the code and find where they are running, what they are doing then start removing them, as I said before your better of putting in switches.  A simple IF statement round the code will normally suffice.

I see... I understand ... but whaf if I use template shares with XBT .. it looks good ... looking to find nulled version if thats available ...any advice ?

Secondly I really dont like layout of u-232 v4 .. I would really need help in making that simpler in looks if possible just like TBDev 2009 ... I hope u understand...


stoner

See now herein lies the issue.

Please do not take offence at this.   But if you cant remove code, what hope do you have in getting such an old source code upto date with all the security patches and the many other optimisations and/or deprecated functions it needs.


To remove mods in u-232 which do not already have simple on/off switches, you need to dig into the code and find where they are running, what they are doing then start removing them, as I said before your better of putting in switches.  A simple IF statement round the code will normally suffice.

inception

Quote from: denede on November 03, 2015, 06:57:11 PM
remove the mods code you dont need/want ?

There is no option .. from where to delete ...

denede

remove the mods code you dont need/want ?

inception

Quote from: stoner on November 03, 2015, 05:39:28 PM
Why not just use V4.   I really dont know why people are trying to use such an old "insecure" source code.

If its a case that V4 has to many mods installed, it would be much easier and safer to install V4 and remove the bits you dont want.

Hell stick them into switches, so if you change your mind at a later date, you can turn them back on easily.

Personally I am now going to refuse todo any mods for anything that is not V4.  V5 is not all that far from release and like I stated in the thread for "ideas for V5"
https://u-232-forum.duckdns.org/index.php?topic=3258.msg17997.html#new

I see no point in supporting older versions apart from for security updates.

I understand but how to disable the mods ... ???

stoner

Why not just use V4.   I really dont know why people are trying to use such an old "insecure" source code.

If its a case that V4 has to many mods installed, it would be much easier and safer to install V4 and remove the bits you dont want.

Hell stick them into switches, so if you change your mind at a later date, you can turn them back on easily.

Personally I am now going to refuse todo any mods for anything that is not V4.  V5 is not all that far from release and like I stated in the thread for "ideas for V5"
https://u-232-forum.duckdns.org/index.php?topic=3258.msg17997.html#new

I see no point in supporting older versions apart from for security updates.

inception

#11
Quote from: zokii1983 on November 03, 2015, 04:50:01 PM
yes it works

somewhere at home I have it ready to go with gazelle xbt

Thanks for confirmation!! I dont understand where to get peerlist.php from attachment part please...

plus I have to use the same db as xbt tracker too ?

denede

why not just take the code from V4, convert it and use it ?
...

zokii1983

yes it works

somewhere at home I have it ready to go with gazelle xbt

inception

Quote from: zokii1983 on March 18, 2015, 07:10:12 PM
https://u-232-forum.duckdns.org/index.php?topic=375.msg3455.html#msg3455


tbdev09 code is
takeupload.php

look for
$infohash = sha1($info["string"]);
replace with
$infohash = pack("H*", sha1($info["string"]));
then update db
ALTER TABLE `torrents` CHANGE `info_hash` `info_hash` BINARY( 20 ) NOT NULL;

download.php
look for
  if (!isset($CURUSER['passkey']) || strlen($CURUSER['passkey']) != 32)
  {

    $CURUSER['passkey'] = md5($CURUSER['username'].time().$CURUSER['passhash']);

    @mysql_query("UPDATE users SET passkey='{$CURUSER['passkey']}' WHERE id={$CURUSER['id']}");

  }

replace with
  if (!isset($CURUSER['torrent_pass']) || strlen($CURUSER['torrent_pass']) != 32)
  {

    $CURUSER['torrent_pass'] = md5($CURUSER['username'].time().$CURUSER['passhash']);

    @mysql_query("UPDATE users SET torrent_pass='{$CURUSER['torrent_pass']}' WHERE id={$CURUSER['id']}");

  }

look for
$dict['value']['announce']['value'] = "{$TBDEV['announce_urls'][0]}?passkey={$CURUSER['passkey']}";
replace with
$dict['value']['announce']['value'] = "http://192.168.0.100:2710/{$CURUSER['torrent_pass']}/announce";
replace 192.168.0.100 with your site name
and change in db, passkey to torrent_pass
ALTER TABLE `users` CHANGE `passkey` `torrent_pass` VARCHAR( 32 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT ''

details.php
look for
$HTMLOUT .= tr("{$lang['details_info_hash']}", $row["info_hash"]);
replace with
function hex_esc($matches) {
return sprintf("%02x", ord($matches[0]));
}
$HTMLOUT .= tr("{$lang['details_info_hash']}", preg_replace_callback('/./s', "hex_esc", hash_pad($row["info_hash"])));


run following in your database
ALTER TABLE `torrents` ADD `flags` INT( 11 ) NOT NULL;
ALTER TABLE `torrents` ADD `mtime` INT( 11 ) NOT NULL;
ALTER TABLE `torrents` ADD `ctime` INT( 11 ) NOT NULL;
ALTER TABLE `torrents` ADD `freetorrent` enum('0','1') NOT NULL DEFAULT '0';
ALTER TABLE `torrents` ADD `balance` INT( 11 ) NOT NULL;
ALTER TABLE `users` ADD `torrent_pass_version` INT( 11 ) NOT NULL;
ALTER TABLE `users` ADD `name` char(8) NOT NULL COMMENT 'useless column';
ALTER TABLE `users` ADD `pass` blob NOT NULL COMMENT 'useless column';
ALTER TABLE `users` ADD `can_leech` tinyint(4) NOT NULL DEFAULT '1';
ALTER TABLE `users` ADD  `wait_time` int(11) NOT NULL;
ALTER TABLE `users` ADD  `peers_limit` int(11) DEFAULT '1000';
ALTER TABLE `users` ADD  `torrents_limit` int(11) DEFAULT '1000';
ALTER TABLE `users` ADD  `torrent_pass_secret` bigint(20) NOT NULL COMMENT 'useless column';
INSERT INTO `xbt_client_whitelist` (`id`, `peer_id`, `vstring`) VALUES (1, '-', 'all');

if you are using olaf's xbt, you just need
ALTER TABLE `torrents` ADD `flags` INT( 11 ) NOT NULL
ALTER TABLE `torrents` ADD `mtime` INT( 11 ) NOT NULL
ALTER TABLE `torrents` ADD `ctime` INT( 11 ) NOT NULL
ALTER TABLE `users` ADD `torrent_pass_version` INT( 11 ) NOT NULL


then import xbt database
CREATE TABLE `xbt_announce_log` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `ipa` int(10) unsigned NOT NULL,
  `port` int(11) NOT NULL,
  `event` int(11) NOT NULL,
  `info_hash` blob NOT NULL,
  `peer_id` blob NOT NULL,
  `downloaded` bigint(20) NOT NULL,
  `left0` bigint(20) NOT NULL,
  `uploaded` bigint(20) NOT NULL,
  `uid` int(11) NOT NULL,
  `mtime` int(11) NOT NULL,
  `useragent` varchar(51) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE `xbt_cheat` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `uid` int(11) NOT NULL,
  `ipa` int(10) unsigned NOT NULL,
  `upspeed` bigint(20) NOT NULL,
  `tstamp` int(11) NOT NULL,
  `uploaded` bigint(20) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `xbt_client_whitelist` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `peer_id` varchar(20) DEFAULT NULL,
  `vstring` varchar(200) DEFAULT '',
  PRIMARY KEY (`id`),
  UNIQUE KEY `peer_id` (`peer_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `xbt_config` (
  `name` varchar(255) NOT NULL,
  `value` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `xbt_deny_from_hosts` (
  `begin` int(11) NOT NULL,
  `end` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE `xbt_files` (
  `fid` int(11) NOT NULL AUTO_INCREMENT,
  `info_hash` blob NOT NULL,
  `leechers` int(11) NOT NULL,
  `seeders` int(11) NOT NULL,
  `completed` int(11) NOT NULL,
  `announced_http` int(11) NOT NULL,
  `announced_http_compact` int(11) NOT NULL,
  `announced_http_no_peer_id` int(11) NOT NULL,
  `announced_udp` int(11) NOT NULL,
  `scraped_http` int(11) NOT NULL,
  `scraped_udp` int(11) NOT NULL,
  `started` int(11) NOT NULL,
  `stopped` int(11) NOT NULL,
  `flags` int(11) NOT NULL,
  `mtime` int(11) NOT NULL,
  `ctime` int(11) NOT NULL,
  `balance` int(11) NOT NULL,
  `freetorrent` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`fid`),
  UNIQUE KEY `info_hash` (`info_hash`(20))
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE `xbt_files_users` (
  `uid` int(11) NOT NULL,
  `active` tinyint(1) NOT NULL,
  `announced` int(11) NOT NULL,
  `completed` int(11) NOT NULL,
  `downloaded` bigint(20) NOT NULL,
  `remaining` bigint(20) NOT NULL,
  `uploaded` bigint(20) NOT NULL,
  `upspeed` bigint(20) NOT NULL,
  `downspeed` bigint(20) NOT NULL,
  `corrupt` bigint(20) NOT NULL DEFAULT '0',
  `timespent` bigint(20) NOT NULL,
  `useragent` varchar(51) NOT NULL,
  `connectable` tinyint(4) NOT NULL DEFAULT '1',
  `peer_id` binary(20) DEFAULT NULL,
  `fid` int(11) NOT NULL,
  `ipa` int(12) unsigned NOT NULL,
  `mtime` int(11) NOT NULL,
  `ip` varchar(15) NOT NULL DEFAULT '',
  UNIQUE KEY `uid_2` (`uid`,`fid`,`ipa`),
  KEY `uid` (`uid`),
  KEY `remaining_idx` (`remaining`),
  KEY `fid_idx` (`fid`),
  KEY `mtime_idx` (`mtime`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `xbt_scrape_log` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `ipa` int(11) NOT NULL,
  `info_hash` blob,
  `uid` int(11) NOT NULL,
  `mtime` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE `xbt_snatched` (
  `uid` int(11) NOT NULL DEFAULT '0',
  `tstamp` int(11) NOT NULL,
  `fid` int(11) NOT NULL,
  `IP` varchar(15) NOT NULL,
  KEY `fid` (`fid`),
  KEY `uid` (`uid`),
  KEY `tstamp` (`tstamp`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `xbt_users` (
  `uid` int(11) NOT NULL AUTO_INCREMENT,
  `name` char(8) NOT NULL,
  `pass` blob NOT NULL,
  `can_leech` tinyint(4) NOT NULL DEFAULT '1',
  `wait_time` int(11) NOT NULL,
  `peers_limit` int(11) NOT NULL,
  `torrents_limit` int(11) NOT NULL,
  `torrent_pass` char(32) NOT NULL,
  `torrent_pass_secret` bigint(20) NOT NULL,
  `downloaded` bigint(20) NOT NULL,
  `uploaded` bigint(20) NOT NULL,
  `fid_end` int(11) NOT NULL,
  PRIMARY KEY (`uid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


for olaf's xbt via ssh type
mysql -u <user> -p <your_db> < xbt_tracker.sql

replace peerlist.php with attached file
for olaf's xbt version ... remember to replace "remaining" with "left" and comment useragent and connectable

cleanup.php
look for
do {
$res = mysql_query("SELECT id FROM torrents");
$ar = array();
while ($row = mysql_fetch_array($res,MYSQL_NUM)) {
$id = $row[0];
$ar[$id] = 1;
}

if (!count($ar))
break;

$dp = @opendir($TBDEV['torrent_dir']);
if (!$dp)
break;

$ar2 = array();
while (($file = readdir($dp)) !== false) {
if (!preg_match('/^(\d+)\.torrent$/', $file, $m))
continue;
$id = $m[1];
$ar2[$id] = 1;
if (isset($ar[$id]) && $ar[$id])
continue;
$ff = $TBDEV['torrent_dir'] . "/$file";
unlink($ff);
}
closedir($dp);

if (!count($ar2))
break;

$delids = array();
foreach (array_keys($ar) as $k) {
if (isset($ar2[$k]) && $ar2[$k])
continue;
$delids[] = $k;
unset($ar[$k]);
}
if (count($delids))
mysql_query("DELETE FROM torrents WHERE id IN (" . join(",", $delids) . ")");

$res = mysql_query("SELECT torrent FROM peers GROUP BY torrent");
$delids = array();
while ($row = mysql_fetch_array($res,MYSQL_NUM)) {
$id = $row[0];
if (isset($ar[$id]) && $ar[$id])
continue;
$delids[] = $id;
}
if (count($delids))
mysql_query("DELETE FROM peers WHERE torrent IN (" . join(",", $delids) . ")");

$res = mysql_query("SELECT torrent FROM files GROUP BY torrent");
$delids = array();
while ($row = mysql_fetch_array($res,MYSQL_NUM)) {
$id = $row[0];
if (isset($ar[$id]) && $ar[$id])
continue;
$delids[] = $id;
}
if (count($delids))
mysql_query("DELETE FROM files WHERE torrent IN (" . join(",", $delids) . ")");
} while (0);

$deadtime = deadtime();
@mysql_query("DELETE FROM peers WHERE last_action < $deadtime");

$deadtime -= $TBDEV['max_dead_torrent_time'];
@mysql_query("UPDATE torrents SET visible='no' WHERE visible='yes' AND last_action < $deadtime");

$deadtime = time() - $TBDEV['signup_timeout'];
@mysql_query("DELETE FROM users WHERE status = 'pending' AND added < $deadtime AND last_login < $deadtime AND last_access < $deadtime");

$torrents = array();
$res = @mysql_query("SELECT torrent, seeder, COUNT(*) AS c FROM peers GROUP BY torrent, seeder");
while ($row = mysql_fetch_assoc($res)) {
if ($row["seeder"] == "yes")
$key = "seeders";
else
$key = "leechers";
$torrents[$row["torrent"]][$key] = $row["c"];
}

$res = @mysql_query("SELECT torrent, COUNT(*) AS c FROM comments GROUP BY torrent");
while ($row = mysql_fetch_assoc($res)) {
$torrents[$row["torrent"]]["comments"] = $row["c"];
}


$fields = explode(":", "comments:leechers:seeders");
$res = @mysql_query("SELECT id, seeders, leechers, comments FROM torrents");
while ($row = mysql_fetch_assoc($res)) {
$id = $row["id"];
if(isset($torrents[$id]))
$torr = $torrents[$id];
foreach ($fields as $field) {
if (!isset($torr[$field]))
$torr[$field] = 0;
}
$update = array();
foreach ($fields as $field) {
if ($torr[$field] != $row[$field])
$update[] = "$field = " . $torr[$field];
}
if (count($update))
@mysql_query("UPDATE torrents SET " . implode(",", $update) . " WHERE id = $id");
}


replace with


mysql_query("DELETE FROM xbt_files_users WHERE mtime < UNIX_TIMESTAMP() - 3600") or sqlerr(__FILE__, __LINE__);
mysql_query("DELETE FROM `xbt_files_users` WHERE `active` = '0'");

//torrents visable
mysql_query("UPDATE torrents SET visible='yes' WHERE seeders >'0'");
mysql_query("UPDATE torrents SET visible='no' WHERE seeders ='0'");


look for
@mysql_query("DELETE FROM torrents WHERE id={$arr['id']}");
replace with
@mysql_query("UPDATE torrents SET flags='1' id={$arr['id']}");

delete.php

look for
    mysql_query("DELETE FROM torrents WHERE id = $id");
    foreach(explode(".","peers.files.comments.ratings") as $x)


replace with
    mysql_query("UPDATE torrents SET flags = 1 WHERE id = $id");
    foreach(explode(".","files.comments.ratings") as $x)


bittorrent.php
look for
$res2 = @mysql_query("SELECT seeder, COUNT(*) AS pCount FROM peers WHERE userid=".$CURUSER['id']." GROUP BY seeder") or sqlerr(__LINE__,__FILE__);

$seedleech = array('yes' => '0', 'no' => '0');

while( $row = mysql_fetch_assoc($res2) ) {
if($row['seeder'] == 'yes')
$seedleech['yes'] = $row['pCount'];
else
$seedleech['no'] = $row['pCount'];

}

replace with
$res2 = mysql_query("SELECT COUNT(*) FROM `xbt_files_users` WHERE uid=".$CURUSER['id']." AND `remaining`=0 AND `active`=1");
$row = mysql_fetch_row($res2);
$activeseed = $row[0];

$res2 = mysql_query("SELECT COUNT(*) FROM `xbt_files_users` WHERE uid=".$CURUSER['id']." AND `remaining`>0 AND `active`=1");
$row = mysql_fetch_row($res2);
$activeleech = $row[0];

olaf's xbt, change remaining to left

look for
&nbsp;{$seedleech['yes']}
replace with
&nbsp;$activeseed
look for
&nbsp;{$seedleech['no']}
replace with
&nbsp;$activeleech

userdetails.php
look for
"<td><a href='details.php?id=$arr[torrent]&amp;hit=1'><b>" . htmlspecialchars($arr["torrentname"]) .
replace with
"<td><a href='details.php?id=$arr[id]&amp;hit=1'><b>" . htmlspecialchars($arr["torrentname"]) .

look for
    $res = mysql_query("SELECT p.torrent, p.uploaded, p.downloaded, p.seeder, t.added, t.name as torrentname, t.size, t.category, t.seeders, t.leechers, c.name as catname, c.image FROM peers p LEFT JOIN torrents t ON p.torrent = t.id LEFT JOIN categories c ON t.category = c.id WHERE p.userid=$id") or sqlerr();

    while ($arr = mysql_fetch_assoc($res))
    {
        if ($arr['seeder'] == 'yes')
            $seeding[] = $arr;
        else
            $leeching[] = $arr;
    }

replace with
$res = mysql_query("SELECT torrents.id, added,uploaded,downloaded,torrents.name as torrentname,categories.name as catname,size,image,category,seeders,leechers,remaining FROM xbt_files_users JOIN torrents ON xbt_files_users.fid = torrents.id JOIN categories ON torrents.category = categories.id WHERE uid=$id") or sqlerr();

    while ($arr = mysql_fetch_assoc($res))
    {
        if ($arr['remaining'] == '0')
            $seeding[] = $arr;
        else
            $leeching[] = $arr;
    }


index.php
look for
    $r = mysql_query("SELECT value_u FROM avps WHERE arg='seeders'") or sqlerr(__FILE__, __LINE__);
    $a = mysql_fetch_row($r);
    $seeders = 0 + $a[0];
    $r = mysql_query("SELECT value_u FROM avps WHERE arg='leechers'") or sqlerr(__FILE__, __LINE__);
    $a = mysql_fetch_row($r);
    $leechers = 0 + $a[0];
    if ($leechers == 0)
      $ratio = 0;
    else
      $ratio = round($seeders / $leechers * 100);
    $peers = number_format($seeders + $leechers);
    $seeders = number_format($seeders);
    $leechers = number_format($leechers);

replace with
$r = mysql_query("SELECT SUM(seeders) FROM torrents") or sqlerr(__FILE__, __LINE__);
$a = mysql_fetch_row($r);
$seeders = 0 + $a[0];
$r = mysql_query("SELECT SUM(leechers) FROM torrents") or sqlerr(__FILE__, __LINE__);
$a = mysql_fetch_row($r);
$leechers = 0 + $a[0];
if ($leechers == 0)
  $ratio = 0;
else
  $ratio = round($seeders / $leechers * 100);
$peers = number_format($seeders + $leechers);
$seeders = number_format($seeders);
$leechers = number_format($leechers);


can anyone confirm if this works ? I am trying to make XBT work with TBDev 2009...please help

Tundracanine

#7
an converter like this prob will work for converting the info_hashes to binary..
besure you do this 1st thought :P ALTER TABLE `torrents` ADD `info_hash_new` binary(20) NULL after info_hash;
a newer phpmyadmin shows binary fields as normal and the 2 fields seem to match :)
name it what ever lol..
<?php
require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR 'include' DIRECTORY_SEPARATOR 'bittorrent.php');
dbconn(true);
loggedinorreturn();
$debug=0;
//ALTER TABLE `torrents` ADD `info_hash_new` binary(20) NULL after info_hash;

$start microtime(1);
$old_tbl "torrents"//old table where is you data
$new_tbl "torrents"//new table where you want your data to be
printf('Working with %s now<br />'$new_tbl);

$_what 'id,name,info_hash';
$_what2 'id,name,info_hash,info_hash_new';
$infohashs = array();
$qry sprintf('SELECT %s FROM %s where info_hash_new IS NULL ORDER BY id ASC'$_what$old_tbl);
if (
$debug)
    print(
$qry ";<br />");

$boo_info_hash mysql_query($qry) or die(mysql_error());
while (
$foo_info_hash mysql_fetch_assoc($boo_info_hash)) {
    
$foo_info_hash["info_hash_new"] = pack("H*"$foo_info_hash["info_hash"]);
    
$infohashs[] = '(' join(', 'array_map('sqlesc'array_values($foo_info_hash))) . ')';
}
if (
count($infohashs) > 0) {
    
mysql_query(sprintf('INSERT INTO %s(%s) VALUES %s'$new_tbl$_what2join(', '$infohashs) . ' ON DUPLICATE key UPDATE info_hash_new=values(info_hash_new)')) or die(mysql_error());
    
printf('<pre>Found %d old info_hashes in table %s, successfully imported %d in table %s'count($infohashs), $old_tblmysql_affected_rows($GLOBALS["___mysqli_ston"]), $new_tbl);
}
$end microtime(1);
printf('<br/>Job done in %.5f s'$end $start);
?>
If wanting support help please put bare min info like
Os:
U-232 Version:
Php Version:
Tracker type: like xbt or php
Saves on asking more questions just so people can help someone.

zokii1983

if you are currently running php announce
you need to update everything in announce.php so it selects/updates torrent_pass instead of passkey

everything but
$GLOBALS['passkey'] = $parts[0]; or any array

everything that starts with mysql_query needs to be change to update torrent_pass
since your announce is announce.php?passkey=something
you want to get $_GET['passkey'] .. but in database update torrent_pass

also, info hash is binary with xbt ..
$info_hash = bin2hex($info_hash); .. bin2hex needs to go away
and not sure if there's command in mysql where you can do this
but when I was switching from tbdev06 to u232 ... info hash was in binary and needed to changed to hex
I coudln't get command right .. so I ended up creating new field in torrents table info_hash_new
and in announce.php I had
update torrents set info_hash_new $info_hash where id = $torrentid

let it run for 30 mins and all will be updated