Polish Bittorrent Tracker Support

  • Maj 18, 2012, 03:56:03
  • Witamy, Gość
Zaloguj się lub zarejestruj.

Zaloguj się podając nazwę użytkownika, hasło i długość sesji
Szukanie zaawansowane  

Aktualności:

Autor Wątek: Tracker wysyła niepoprawne dane: <NULL>.  (Przeczytany 3163 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Dziubus

  • Początkujący++
  • ***
  • Reputacja 1
  • Offline Offline
  • Wiadomości: 26
Tracker wysyła niepoprawne dane: <NULL>.
« dnia: Wrzesień 12, 2007, 06:35:39 »

Witam

Mam takie problem, otóż na początku zmagałem się z tym, z czym wielu innych tj. błędem w uploadowaniu pliku torrent. Poradziłem sobie z tym zmieniając dir na:
$torrent_dir = "torrents";    Udało się, pliki ładują się na serwer jednak teraz tracker pluje błędem:
Tracker wysyła niepoprawne dane: <NULL>.Poniżej zamieszczam mój plik announce.php
<?

require_once("include/bittorrent.php");
require_once("include/benc.php");



function err($msg)
{
benc_resp(array("failure reason" => array(type => "string", value => $msg)));
exit();
}

function benc_resp($d)
{
benc_resp_raw(benc(array(type => "dictionary", value => $d)));
}

function benc_resp_raw($x)
{
header("Content-Type: text/plain");
header("Pragma: no-cache");
print($x);
}

$req = "info_hash:peer_id:!ip:port:uploaded:downloaded:left:!event";
foreach (explode(":", $req) as $x)
{
if ($x[0] == "!")
{
$x = substr($x, 1);
$opt = 1;
}
else
$opt = 0;
if (!isset($_GET[$x]))
{
if (!$opt)
err("missing key");
continue;
}
$GLOBALS[$x] = unesc($_GET[$x]);
}

foreach (array("info_hash","peer_id") as $x)
{
if (strlen($GLOBALS[$x]) != 20)
err("invalid $x (" . strlen($GLOBALS[$x]) . " - " . urlencode($GLOBALS[$x]) . ")");
}

//if (empty($ip) || !preg_match('/^(\d{1,3}\.){3}\d{1,3}$/s', $ip))
$ip = getip();

$port = 0 + $port;
$downloaded = 0 + $downloaded;
$uploaded = 0 + $uploaded;
$left = 0 + $left;

$rsize = 50;
foreach(array("num want", "numwant", "num_want") as $k)
{
if (isset($_GET[$k]))
{
$rsize = 0 + $_GET[$k];
break;
}
}

$agent = $_SERVER["HTTP_USER_AGENT"];

// Deny access made with a browser...
if (ereg("^Mozilla\\/", $agent) || ereg("^Opera\\/", $agent) || ereg("^Links ", $agent) || ereg("^Lynx\\/", $agent))
err("torrent not registered with this tracker");

if (!$port || $port > 0xffff)
err("invalid port");

if (!isset($event))
$event = "";

$seeder = ($left == 0) ? "yes" : "no";

dbconn(false);


$res = mysql_query("SELECT id, banned, seeders + leechers AS numpeers, UNIX_TIMESTAMP(added) AS ts FROM torrents WHERE " . hash_where("info_hash", $info_hash));

$torrent = mysql_fetch_assoc($res);
if (!$torrent)
err("torrent not registered with this tracker");

$torrentid = $torrent["id"];

$fields = "seeder, peer_id, ip, port, uploaded, downloaded, userid";

$numpeers = $torrent["numpeers"];
$limit = "";
if ($numpeers > $rsize)
$limit = "ORDER BY RAND() LIMIT $rsize";
$res = mysql_query("SELECT $fields FROM peers WHERE torrent = $torrentid AND connectable = 'yes' $limit");

$resp = "d" . benc_str("interval") . "i" . $announce_interval . "e" . benc_str("peers") . "l";
unset($self);
while ($row = mysql_fetch_assoc($res))
{
$row["peer_id"] = hash_pad($row["peer_id"]);

if ($row["peer_id"] === $peer_id)
{
$userid = $row["userid"];
$self = $row;
continue;
}

$resp .= "d" .
benc_str("ip") . benc_str($row["ip"]) .
benc_str("peer id") . benc_str($row["peer_id"]) .
benc_str("port") . "i" . $row["port"] . "e" .
"e";
}

$resp .= "ee";

$selfwhere = "torrent = $torrentid AND " . hash_where("peer_id", $peer_id);

if (!isset($self))
{
$res = mysql_query("SELECT $fields FROM peers WHERE $selfwhere");
$row = mysql_fetch_assoc($res);
if ($row)
{
$userid = $row["userid"];
$self = $row;
}
}

//// Up/down stats ////////////////////////////////////////////////////////////

if (!isset($self))
{
$rz = mysql_query("SELECT id, uploaded, downloaded, class FROM users WHERE ip='$ip' AND enabled = 'yes' ORDER BY last_access DESC LIMIT 1") or err("Tracker error 2");
if ($MEMBERSONLY && mysql_num_rows($rz) == 0)
err("Unrecognized host ($ip). Please go to $BASEURL to sign-up or login.");
$az = mysql_fetch_assoc($rz);
$userid = $az["id"];

// if ($left > 0 && $az["class"] < UC_VIP)
if ($az["class"] < UC_VIP)
{
$gigs = $az["uploaded"] / (1024*1024*1024);
$elapsed = floor((gmtime() - $torrent["ts"]) / 3600);
$ratio = (($az["downloaded"] > 0) ? ($az["uploaded"] / $az["downloaded"]) : 1);
if ($ratio < 0.5 || $gigs < 5) $wait = 48;
elseif ($ratio < 0.65 || $gigs < 6.5) $wait = 24;
elseif ($ratio < 0.8 || $gigs < 8) $wait = 12;
elseif ($ratio < 0.95 || $gigs < 9.5) $wait = 6;
else $wait = 0;
if ($elapsed < $wait)
err("Not authorized (" . ($wait - $elapsed) . "h) - READ THE FAQ!");
}
}
else
{
$upthis = max(0, $uploaded - $self["uploaded"]);
$downthis = max(0, $downloaded - $self["downloaded"]);

if ($upthis > 0 || $downthis > 0)
mysql_query("UPDATE users SET uploaded = uploaded + $upthis, downloaded = downloaded + $downthis WHERE id=$userid") or err("Tracker error 3");
}

///////////////////////////////////////////////////////////////////////////////

$dt = gmtime() - 180;
$dt = sqlesc(get_date_time($dt))

function portblacklisted($port)
{
// direct connect
if ($port >= 411 && $port <= 413) return true;

// bittorrent
if ($port >= 6881 && $port <= 6889) return true;

// kazaa
if ($port == 1214) return true;

// gnutella
if ($port >= 6346 && $port <= 6347) return true;

// emule
if ($port == 4662) return true;

// winmx
if ($port == 6699) return true;

return false;
}

$updateset = array();

if ($event == "stopped")
{
if (isset($self))
{
mysql_query("DELETE FROM peers WHERE $selfwhere");
if (mysql_affected_rows())
{
if ($self["seeder"] == "yes")
$updateset[] = "seeders = seeders - 1";
else
$updateset[] = "leechers = leechers - 1";
}
}
}
else
{
if ($event == "completed")

mysql_query("UPDATE snatched SET  finished  = 'yes', complete_date = $dt WHERE torrentid = $torrentid AND userid = $userid");

$updateset[] = "times_completed = times_completed + 1";

if (isset($self))
{

$res_s = mysql_query("SELECT uploaded, downloaded FROM snatched WHERE torrentid = $torrentid AND userid = $userid");
$row_s = mysql_fetch_array($res_s);
$downloaded2 = max(0, $downloaded - $self["downloaded"]);
$uploaded2 = max(0, $uploaded - $self["uploaded"]);
mysql_query("UPDATE snatched SET uploaded = uploaded + $uploaded2, port = $port, agent= " . sqlesc($agent) . ", last_action = $dt WHERE torrentid = $torrentid AND userid = $userid");
mysql_query("UPDATE snatched SET downloaded = downloaded + $downloaded2 WHERE torrentid = $torrentid AND userid = $userid");

mysql_query("UPDATE peers SET uploaded = $uploaded, downloaded = $downloaded, to_go = $left, last_action = NOW(), seeder = '$seeder'"
. ($seeder == "yes" && $self["seeder"] != $seeder ? ", finishedat = " . time() : "") . " WHERE $selfwhere");
if (mysql_affected_rows() && $self["seeder"] != $seeder)
{
if ($seeder == "yes")
{
$updateset[] = "seeders = seeders + 1";
$updateset[] = "leechers = leechers - 1";
}
else
{
$updateset[] = "seeders = seeders - 1";
$updateset[] = "leechers = leechers + 1";
}
}
}
else
{
if (portblacklisted($port))
err("Port $port is blacklisted.");
else
{
$sockres = @fsockopen($ip, $port, $errno, $errstr, 5);
if (!$sockres)
$connectable = "no";
else
{
$connectable = "yes";
@fclose($sockres);
}
}

$res1_s = mysql_query("SELECT torrentid, userid FROM snatched WHERE torrentid = $torrentid AND userid = $userid") or err('Tracker error (120)');
$row1_s = mysql_fetch_assoc($res1_s);
if (!$row1_s)
mysql_query("INSERT INTO snatched (torrentid, userid, port, start_date, agent,ip,peer_id) VALUES ($torrentid, $userid, $port, $dt, " . sqlesc($agent) . "," . sqlesc($ip) . "," . sqlesc($peer_id) . ")");

$ret = mysql_query("INSERT INTO peers (connectable, torrent, peer_id, ip, port, uploaded, downloaded, to_go, started, last_action, seeder, userid, agent, uploadoffset, downloadoffset) VALUES ('$connectable', $torrentid, " . sqlesc($peer_id) . ", " . sqlesc($ip) . ", $port, $uploaded, $downloaded, $left, NOW(), NOW(), '$seeder', $userid, " . sqlesc($agent) . ", $uploaded, $downloaded)");
if ($ret)
{
if ($seeder == "yes")
$updateset[] = "seeders = seeders + 1";
else
$updateset[] = "leechers = leechers + 1";
}
}
}

if ($seeder == "yes")
{
if ($torrent["banned"] != "yes")
$updateset[] = "visible = 'yes'";
$updateset[] = "last_action = NOW()";
}

if (count($updateset))
mysql_query("UPDATE torrents SET " . join(",", $updateset) . " WHERE id = $torrentid");

benc_resp_raw($resp);


?>
Zapisane

Dziubus

  • Początkujący++
  • ***
  • Reputacja 1
  • Offline Offline
  • Wiadomości: 26
Odp: Tracker wysyła niepoprawne dane: <NULL>.
« Odpowiedź #1 dnia: Wrzesień 12, 2007, 10:33:11 »

A gdzie masz hosting, ja mam w webd.pl, czy nie jest taka możliwość, że np. webd zablokowało porty czy cos w tym rodzaju?
Zapisane

chillo

  • Gość
Odp: Tracker wysyła niepoprawne dane: <NULL>.
« Odpowiedź #2 dnia: Październik 25, 2007, 07:11:15 »

Kuba1530  powiedz jak to naprawiłeś bo ja ma podobna sytuacje ?

nic nie robile a tu nagle ten błąd...

 
Zapisane

chillo

  • Gość
Odp: Tracker wysyła niepoprawne dane: <NULL>.
« Odpowiedź #3 dnia: Październik 25, 2007, 07:55:15 »

u mnie stało sie to pierwszy raz, a stronę mam na tym hostingu już z 6 miesięcy.

Dziś dodałem tylko mod nava na banowanie.
Po wgraniu kopi plików wszystko zaczeło wracać do normy, dziś w nocy przetestuje to jeszcze raz i zobaczymy. Ciekawe czy to nie był czasem jakiś włam.
Zapisane

Piter

  • Gość
Odp: Tracker wysyła niepoprawne dane: <NULL>.
« Odpowiedź #4 dnia: Październik 25, 2007, 09:07:18 »

hosting nie ma tutaj nic do rzeczy, musiałeś dodać do announce zapytanie które zwraca 0 (NULL) i tyle
Zapisane

chillo

  • Gość
Odp: Tracker wysyła niepoprawne dane: <NULL>.
« Odpowiedź #5 dnia: Październik 25, 2007, 09:09:10 »

tylko dziwne bo nic nie robiłem w tym pliku :)
« Ostatnia zmiana: Październik 25, 2007, 11:23:39 wysłana przez chillo »
Zapisane

Soniu

  • Super zaawansowany
  • ******
  • Reputacja 1
  • Offline Offline
  • Płeć: Mężczyzna
  • Wiadomości: 207
  • ...:::d(- _-)b:::...
Odp: Tracker wysyła niepoprawne dane: <NULL>.
« Odpowiedź #6 dnia: Listopad 04, 2007, 01:37:35 »

Mam ten sam problem..

"Tracker wysyła niepoprawne dane: <NULL>."

VPSa juz mam pare miechow i dzisiaj to zauwazylem.. Jak to naprawic przeciez nie zmienia serwera :(

« Ostatnia zmiana: Listopad 04, 2007, 01:45:47 wysłana przez Soniu »
Zapisane

Soniu

  • Super zaawansowany
  • ******
  • Reputacja 1
  • Offline Offline
  • Płeć: Mężczyzna
  • Wiadomości: 207
  • ...:::d(- _-)b:::...
Odp: Tracker wysyła niepoprawne dane: <NULL>.
« Odpowiedź #7 dnia: Listopad 04, 2007, 02:21:09 »

Hmm cos sie stalo z tabela...

zobacz na foto, aha i na stronie pisze seedow, leechow, peerow - 0
Zapisane

chillo

  • Gość
Odp: Tracker wysyła niepoprawne dane: <NULL>.
« Odpowiedź #8 dnia: Listopad 04, 2007, 03:27:54 »

Ja mam tak jak dodaje system Banów nava po wszystkich zmianach w pliku bittorrent.php i wgraniu go na server robi sie to samo...

Zapisane

Soniu

  • Super zaawansowany
  • ******
  • Reputacja 1
  • Offline Offline
  • Płeć: Mężczyzna
  • Wiadomości: 207
  • ...:::d(- _-)b:::...
Odp: Tracker wysyła niepoprawne dane: <NULL>.
« Odpowiedź #9 dnia: Listopad 04, 2007, 03:31:43 »

wyglada na to jakby byl jakis wpis w cleanup.php co wykasowal tabele peers w sql hmm bo samo sie nie moglo skasowac..
Zapisane

Red_Devil

  • Slimak...
  • Zaawansowany
  • *****
  • Reputacja 2
  • Offline Offline
  • Płeć: Mężczyzna
  • Wiadomości: 156
  • Kupa!
Odp: Tracker wysyła niepoprawne dane: <NULL>.
« Odpowiedź #10 dnia: Listopad 05, 2007, 03:57:04 »

Jeśli każdemu wyskoczył ten błąd to wyczyscilo tabele peers bo nikt nie byl polączony z trackerem.
Zapisane

Soniu

  • Super zaawansowany
  • ******
  • Reputacja 1
  • Offline Offline
  • Płeć: Mężczyzna
  • Wiadomości: 207
  • ...:::d(- _-)b:::...
Odp: Tracker wysyła niepoprawne dane: <NULL>.
« Odpowiedź #11 dnia: Listopad 09, 2007, 09:25:27 »

Tyle to i my wiemy :P ja problem rozwiązałem podmieniając stary cleanup.php i wgranie backupa
Zapisane

Red_Devil

  • Slimak...
  • Zaawansowany
  • *****
  • Reputacja 2
  • Offline Offline
  • Płeć: Mężczyzna
  • Wiadomości: 156
  • Kupa!
Odp: Tracker wysyła niepoprawne dane: <NULL>.
« Odpowiedź #12 dnia: Listopad 11, 2007, 03:20:43 »

Jak wiesz to po co pisales  :tongue:

To mogłbyć problem z tabelą peers ewentualnie torrents, np kodowanie.
Zapisane

Soniu

  • Super zaawansowany
  • ******
  • Reputacja 1
  • Offline Offline
  • Płeć: Mężczyzna
  • Wiadomości: 207
  • ...:::d(- _-)b:::...
Odp: Tracker wysyła niepoprawne dane: <NULL>.
« Odpowiedź #13 dnia: Listopad 12, 2007, 05:06:13 »

Bo pozniej sam doszedlem do tego, mniejsza o to co sie stalo, poki co jest OK.

Pozdro.
Zapisane

Kamiloss

  • Super zaawansowany
  • ******
  • Reputacja -65526
  • Offline Offline
  • Płeć: Mężczyzna
  • Wiadomości: 665
Odp: Tracker wysyła niepoprawne dane: <NULL>.
« Odpowiedź #14 dnia: Styczeń 11, 2008, 11:55:12 »

Ja mam ten sam problem a najciekawsze jest to , ze nie wszyscy na stronie go maja tylko kilka osob moze kilkadziesiat i tez nie mieszalem nic w plikach announce czy cleanup. Ma ktos moze jakies rozwiazanie na to ?
Zapisane

null

  • Super zaawansowany
  • ******
  • Reputacja 40
  • Offline Offline
  • Wiadomości: 1679
Odp: Tracker wysyła niepoprawne dane: <NULL>.
« Odpowiedź #15 dnia: Styczeń 13, 2008, 02:18:20 »

Problem rozwiązany. Przynajmniej w 1 przypadku. Kod nie wyrabiał (przy snatched) w announce.php. Mysql zwracał błąd, że serwer się rozłączył. Limit czasu oczekiwania mysqla był zbyt mały. Zwiększenie 3 wartości w configu mysqla (+restart demona) pomogło:
interactive_timeout
wait_timeout
connection_timeout
Zapisane
NullPointerException. chantico podejście drugie. Faza projektowania.

Kamiloss

  • Super zaawansowany
  • ******
  • Reputacja -65526
  • Offline Offline
  • Płeć: Mężczyzna
  • Wiadomości: 665
Odp: Tracker wysyła niepoprawne dane: <NULL>.
« Odpowiedź #16 dnia: Styczeń 13, 2008, 02:23:55 »

Problem rozwiązany. Przynajmniej w 1 przypadku. Kod nie wyrabiał (przy snatched) w announce.php. Mysql zwracał błąd, że serwer się rozłączył. Limit czasu oczekiwania mysqla był zbyt mały. Zwiększenie 3 wartości w configu mysqla (+restart demona) pomogło:
interactive_timeout
wait_timeout
connection_timeout

Wielkie dzieki nav za pomoc  :salute:
Zapisane

int

  • Zaawansowany
  • *****
  • Reputacja 0
  • Offline Offline
  • Wiadomości: 131
Odp: Tracker wysyła niepoprawne dane: <NULL>.
« Odpowiedź #17 dnia: Styczeń 13, 2008, 02:34:21 »

a jak ktoś ma hosting to jak problem rozwiązać?
Zapisane

null

  • Super zaawansowany
  • ******
  • Reputacja 40
  • Offline Offline
  • Wiadomości: 1679
Odp: Tracker wysyła niepoprawne dane: <NULL>.
« Odpowiedź #18 dnia: Styczeń 13, 2008, 02:47:05 »

Przyspieszając działanie announce.
Zapisane
NullPointerException. chantico podejście drugie. Faza projektowania.

int

  • Zaawansowany
  • *****
  • Reputacja 0
  • Offline Offline
  • Wiadomości: 131
Odp: Tracker wysyła niepoprawne dane: <NULL>.
« Odpowiedź #19 dnia: Styczeń 13, 2008, 03:15:44 »

ale o to chodzi, że ja nie mam snatched, a announce mam przyśpieszona modem, który dał Zielony.
Zapisane
 

Strona wygenerowana w 0.177 sekund z 22 zapytaniami.