Thread: Torrent Flux
View Single Post
  #4  
Old 9th February 2009, 14:00
Izacic Izacic is offline
Senior Member
 
Join Date: Sep 2008
Bosnia-Herzegovina
Posts: 47
Exclamation the same
i have the same problem i have netmaniack 1.6 fullymoded and in my flux i seed but on the tracker is 0 seeder??

announce.php
PHP Code:
<?

ob_start
("ob_gzhandler");

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);
}

foreach (array(
"passkey","info_hash","peer_id","ip","event") as $x)

$GLOBALS[$x] = "" $_GET[$x];





foreach (array(
"port","downloaded","uploaded","left") as $x)

$GLOBALS[$x] = $_GET[$x];



if (
strpos($passkey"?")) {

  
$tmp substr($passkeystrpos($passkey"?"));

$passkey substr($passkey0strpos($passkey"?"));

$tmpname substr($tmp1strpos($tmp"=")-1);

$tmpvalue substr($tmpstrpos($tmp"=")+1);

$GLOBALS[$tmpname] = $tmpvalue;

}



foreach (array(
"passkey","info_hash","peer_id","port","downloaded","uploaded","left") as $x)

if (!isset(
$x)) err("Missing key: $x");



foreach (array(
"info_hash","peer_id") as $x)

if (
strlen($GLOBALS[$x]) != 20err("Invalid $x (" strlen($GLOBALS[$x]) . " - " urlencode($GLOBALS[$x]) . ")");



if (
strlen($passkey) != 32err("Invalid passkey (" strlen($passkey) . " - $passkey)");



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

$ip getip();

$rsize 50;
foreach(array(
"num want""numwant""num_want") as $k)
{
        if (isset(
$_GET[$k]))
        {
                
$rsize $_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);

$valid = @mysql_fetch_row(@mysql_query("SELECT COUNT(*) FROM users WHERE passkey=" sqlesc($passkey)));

if (
$valid[0] != 1err("Invalid passkey! Re-download the .torrent from $BASEURL");


$res mysql_query("SELECT id, banned, free, 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))

{

$valid = @mysql_fetch_row(@mysql_query("SELECT COUNT(*) FROM peers WHERE torrent=$torrentid AND passkey=" sqlesc($passkey)));

if (
$valid[0] >= && $seeder == 'no'err("Connection limit exceeded! You may only leech from one location at a time.");

if (
$valid[0] >= && $seeder == 'yes'err("Connection limit exceeded!");



$rz mysql_query("SELECT id, uploaded, downloaded, class FROM users WHERE passkey=".sqlesc($passkey)." AND enabled = 'yes' ORDER BY last_access DESC LIMIT 1") or err("Tracker error 2");

if (
$MEMBERSONLY && mysql_num_rows($rz) == 0)

err("Unknown passkey. Please redownload the torrent from $BASEURL.");
        
$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 0;
                elseif (
$ratio 0.65 || $gigs 6.5$wait 0;
                elseif (
$ratio 0.8 || $gigs 8$wait 0;
                elseif (
$ratio 0.95 || $gigs 9.5$wait 0;
                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 || $downthis 0)
 
mysql_query("UPDATE users SET uploaded = uploaded + $upthis". ($torrent['free']=='no'?", downloaded = downloaded + $downthis ":' '). "WHERE id=$userid") or err("Tracker error 3");
}

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

if ("text/html, */*" == $_SERVER["HTTP_ACCEPT"])
{
 
$u mysql_fetch_assoc(mysql_query("select id, username from users where id=".$userid));
 
auto_post"CHEAT PROGRAM - ".$u["username"] , "[url=userdetails.php?id=$userid]".$u["username"]."[/url] used RatioMaker.\n UserAgent: ".$agent."\n PeerID: ".substr($peer_id,0,7));
 
//mysql_query("update users set enabled='no', modcomment=".sqlesc("Banned for using RatioMaker")." where id=$userid" );
 
benc_resp_raw("You have been banned for cheating");
}
/*
/////////////////////Fix Increase ratio using Firefox //////////////////////
$headers = getallheaders();
if (isset($headers["Cookie"]) || isset($headers["Accept-Language"]) || isset($headers["Accept-Charset"]))
err("Anti-Cheater= You cannot use this agent");
///////////////////end of fix//////////////////////
*/
function auto_post($subject "Error - Subject Missing",$body "Error - No Body"// Function to use the special system message forum
{
 
$forumid 8;  // Remember to change this if the forum is recreated for some reason.

 
mysql_query"INSERT INTO topics (userid, forumid, subject) VALUES(2, $forumid, '$subject')") or sqlerr(__FILE____LINE__);

 
$topicid = @mysql_insert_id();
 
$added "'" get_date_time() . "'";

 
mysql_query"INSERT INTO posts (topicid, userid, added, body) " .
              
"VALUES($topicid, 2, $added, '$body')") or sqlerr(__FILE____LINE__);

 
$res mysql_query("SELECT id FROM posts WHERE topicid=$topicid ORDER BY id DESC LIMIT 1") or sqlerr(__FILE____LINE__);
 
$arr mysql_fetch_row($res) or die("No post found");
 
$postid $arr[0];
 
mysql_query("UPDATE topics SET lastpost=$postid WHERE id=$topicid") or sqlerr(__FILE____LINE__);
}

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")
{
$updateset[] = "times_completed = times_completed + 1";
mysql_query("INSERT INTO snatched (torrentid,userid) VALUES ($torrentid,$userid)");
}
        if (isset(
$self))
        {
                
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$errstr5);
                        if (!
$sockres)
                                
$connectable "no";
                        else
                        {
                                
$connectable "yes";
                                @
fclose($sockres);
                        }
                }

                
$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);


?>
Reply With Quote