Очистка и некоторые правки хобота, бан медиагета (по 40-50 человек раздают из-за расшаривания торрентов всеобщего). git-svn-id: https://torrentpier2.googlecode.com/svn/trunk@187 a8ac35ab-4ca4-ca47-4c2d-a49a94f06293
This commit is contained in:
glix08 2011-08-02 08:24:16 +00:00
commit 488640825b
6 changed files with 72 additions and 105 deletions

View file

@ -192,6 +192,7 @@ void Cconnection::read(const std::string& v)
{ {
do { a++; do { a++;
} while (a < e && v[a] == '/'); } while (a < e && v[a] == '/');
if (a + 1 < e && v[a + 1] == '/') if (a + 1 < e && v[a + 1] == '/')
a += 2; a += 2;

View file

@ -330,8 +330,6 @@ std::string Cserver::insert_peer(const Ctracker_input& v, bool udp, t_user* user
std::string xbt_error = ""; std::string xbt_error = "";
if (v.m_left && v.m_event != Ctracker_input::e_paused && user && !user->can_leech && !m_config.m_free_leech) if (v.m_left && v.m_event != Ctracker_input::e_paused && user && !user->can_leech && !m_config.m_free_leech)
/*if (xbt_error.empty())*/ xbt_error = bts_can_not_leech; /*if (xbt_error.empty())*/ xbt_error = bts_can_not_leech;
if (v.m_left && user && user->user_park) //park
xbt_error = bts_park;
if (user && user->user_active == 0) //unactive if (user && user->user_active == 0) //unactive
xbt_error = bts_disabled; xbt_error = bts_disabled;
if (!file.ctime) if (!file.ctime)
@ -378,7 +376,6 @@ std::string Cserver::insert_peer(const Ctracker_input& v, bool udp, t_user* user
long long rel = 0; long long rel = 0;
long long ul_gdc = 0, ul_gdc_16k = 0; long long ul_gdc = 0, ul_gdc_16k = 0;
int ul_gdc_count = 0, ul_16k_count = 0, ul_eq_dl_count = 0; int ul_gdc_count = 0, ul_16k_count = 0, ul_eq_dl_count = 0;
int end_vip = 0;
bool ipv6set = v.m_ipv6set && (v.m_family == AF_INET6 || m_config.m_trust_ipv6); bool ipv6set = v.m_ipv6set && (v.m_family == AF_INET6 || m_config.m_trust_ipv6);
@ -437,11 +434,11 @@ std::string Cserver::insert_peer(const Ctracker_input& v, bool udp, t_user* user
} }
downloaded_db = (m_config.m_free_leech || file.dl_percent<0) ? 0 : (downloaded * file.dl_percent /100); downloaded_db = (m_config.m_free_leech || file.dl_percent<0) ? 0 : (downloaded * file.dl_percent /100);
if (user->user_vip == 2 && user->user_vip_exp < time()) end_vip = 1; //vip
if (user->user_vip > 0 && end_vip == 0) downloaded_db = 0; //vip
if (user->uid == file.tor_poster_id) rel = uploaded; if (user->uid == file.tor_poster_id)
else if (!v.m_left && file.seeders == 1) bonus = 1; rel = uploaded;
else if (!v.m_left && file.seeders == 1)
bonus = 1;
// TorrentPier: bb_bt_users_dl_status // TorrentPier: bb_bt_users_dl_status
int new_status = v.m_left ? 0 : 1; int new_status = v.m_left ? 0 : 1;
@ -455,23 +452,17 @@ std::string Cserver::insert_peer(const Ctracker_input& v, bool udp, t_user* user
i->dl_status = new_status; i->dl_status = new_status;
} }
// TorrentPier: bb_bt_torrent_activity // TorrentPier: bb_bt_tor_dl_stat
int user_status = new_status; if (uploaded || downloaded) {
if (new_status == -1) new_status = 2; Csql_query q(m_database, "(?,?,?,?,?,?),"); // torrent_id, user_id, attach_id, t_up_total, t_down_total
Csql_query q(m_database, "(?,?,?,?,?,?,?,?,?,?,?,?),"); q.p(file.fid); // torrent_id
q.p(user->uid); // user_id q.p(user->uid); // user_id
q.p(file.tor_topic_id); // torrent_id q.p(file.tor_attach_id); // attach_id
q.p(uploaded); q.p(uploaded);
q.p(downloaded_db); q.p(downloaded_db);
q.p(upspeed); // speed_up mediumint(8) unsigned NOT NULL default '0', q.p(bonus ? uploaded * bonus / 100 : 0);
q.p(downspeed); // speed_down mediumint(8) unsigned NOT NULL default '0',
q.p(new_status);
q.p(bonus ? uploaded/bonus : 0);
q.p(user_status);
q.p(downloaded);
q.p(time());
q.p(m_config.m_announce_interval); //torrent_time
m_tor_dl_stat_buffer += q.read(); m_tor_dl_stat_buffer += q.read();
}
// TorrentPier: bb_cheat_log // TorrentPier: bb_cheat_log
long long cheat = (long long) m_config.m_cheat_upload * 1024 * 1024 * 1024; long long cheat = (long long) m_config.m_cheat_upload * 1024 * 1024 * 1024;
@ -483,13 +474,6 @@ std::string Cserver::insert_peer(const Ctracker_input& v, bool udp, t_user* user
q.p(time()); q.p(time());
m_cheat_buffer += q.read(); m_cheat_buffer += q.read();
} }
//vip
if (end_vip) {
Csql_query q(m_database, "(?),"); // user_id
q.p(user->uid); // user_id
m_vip_buffer += q.read();
}
} }
Csql_query q(m_database, "(?,?,?,?,?,?,?,?,?,?, ?,?,?,?, ?,?,?,?,?,?),"); Csql_query q(m_database, "(?,?,?,?,?,?,?,?,?,?, ?,?,?,?, ?,?,?,?,?,?),");
@ -503,21 +487,21 @@ std::string Cserver::insert_peer(const Ctracker_input& v, bool udp, t_user* user
ip_st = hex_encode(8, ntohl(v.m_ipa)); ip_st = hex_encode(8, ntohl(v.m_ipa));
peer_hash = md5(v.m_info_hash+v.m_passkey+port_st+ip_st); peer_hash = md5(v.m_info_hash+v.m_passkey+port_st+ip_st);
q.p(file.fid); // torrent_id mediumint(8) unsigned NOT NULL default '0', q.p(file.fid); // torrent_id mediumint(8) unsigned NOT NULL default '0'
q.p(v.m_peer_id); q.p(v.m_peer_id);
q.p(peer_hash); q.p(peer_hash);
q.p(user->uid); // user_id mediumint(9) NOT NULL default '0', q.p(user->uid); // user_id mediumint(9) NOT NULL default '0'
q.p(hex_encode(8, ntohl(v.m_ipa))); // ip char(8) binary NOT NULL default '0', q.p(hex_encode(8, ntohl(v.m_ipa))); // ip char(8) binary NOT NULL default '0'
q.p(const_memory_range(v.m_ipv6bin, ipv6set ? 16 : 0)); // ipv6 varchar(32) q.p(const_memory_range(v.m_ipv6bin, ipv6set ? 16 : 0)); // ipv6 varchar(32)
q.p(ntohs(v.m_port)); // port smallint(5) unsigned NOT NULL default '0', q.p(ntohs(v.m_port)); // port smallint(5) unsigned NOT NULL default '0'
q.p(uploaded); // uploaded bigint(20) unsigned NOT NULL default '0', q.p(uploaded); // uploaded bigint(20) unsigned NOT NULL default '0'
q.p(downloaded_db); // downloaded bigint(20) unsigned NOT NULL default '0', q.p(downloaded_db); // downloaded bigint(20) unsigned NOT NULL default '0'
q.p(v.m_left && v.m_event != Ctracker_input::e_paused ? 0 : 1); // seeder tinyint(1) NOT NULL default '0', q.p(v.m_left && v.m_event != Ctracker_input::e_paused ? 0 : 1); // seeder tinyint(1) NOT NULL default '0'
q.p(user->uid==file.tor_poster_id), // releaser q.p(user->uid==file.tor_poster_id), // releaser
q.p(v.m_left ? (v.m_left>=file.tor_size ? 0 : ((file.tor_size-v.m_left)*100/file.tor_size)) : v.m_uploaded); // complete_percent bigint(20) unsigned NOT NULL default '0', q.p(v.m_left ? (v.m_left>=file.tor_size ? 0 : ((file.tor_size-v.m_left)*100/file.tor_size)) : v.m_uploaded); // complete_percent bigint(20) unsigned NOT NULL default '0'
q.p(upspeed); // speed_up mediumint(8) unsigned NOT NULL default '0', q.p(upspeed); // speed_up mediumint(8) unsigned NOT NULL default '0'
q.p(downspeed); // speed_down mediumint(8) unsigned NOT NULL default '0', q.p(downspeed); // speed_down mediumint(8) unsigned NOT NULL default '0'
q.p(time()); // update_time int(11) NOT NULL default '0', q.p(time()); // update_time int(11) NOT NULL default '0'
q.p(xbt_error); q.p(xbt_error);
q.p( ul_16k_count*3 > ul_gdc_count*2 ? ul_gdc_16k : ul_gdc ); q.p( ul_16k_count*3 > ul_gdc_count*2 ? ul_gdc_16k : ul_gdc );
q.p(ul_gdc_count); q.p(ul_gdc_count);
@ -847,7 +831,7 @@ void Cserver::read_db_deny_from_hosts()
return; return;
try try
{ {
Csql_result result = Csql_query(m_database, "select begin, end from ?").p_name(table_name(table_deny_from_hosts)).execute(); Csql_result result = Csql_query(m_database, "SELECT begin, end FROM ?").p_name(table_name(table_deny_from_hosts)).execute();
BOOST_FOREACH(t_deny_from_hosts::reference i, m_deny_from_hosts) BOOST_FOREACH(t_deny_from_hosts::reference i, m_deny_from_hosts)
i.second.marked = true; i.second.marked = true;
for (Csql_row row; row = result.fetch_row(); ) for (Csql_row row; row = result.fetch_row(); )
@ -906,7 +890,7 @@ void Cserver::read_db_files_sql()
if (!m_config.m_auto_register) if (!m_config.m_auto_register)
{ {
// XBT read only new torrents, so we need to mark deleted in "_del" table // XBT read only new torrents, so we need to mark deleted in "_del" table
q = "select rpad(info_hash,20,' '), ?, is_del, dl_percent from "+table_name(table_files)+"_del"; q = "SELECT rpad(info_hash,20,' '), ?, is_del, dl_percent FROM "+table_name(table_files)+"_del";
q.p_name(column_name(column_files_fid)); q.p_name(column_name(column_files_fid));
Csql_result result = q.execute(); Csql_result result = q.execute();
for (Csql_row row; row = result.fetch_row(); ) for (Csql_row row; row = result.fetch_row(); )
@ -930,20 +914,20 @@ void Cserver::read_db_files_sql()
} }
} }
// fix // fix
q = "delete from "+table_name(table_files)+"_del where ? = ?"; q = "DELETE FROM "+table_name(table_files)+"_del WHERE ? = ?";
q.p_name(column_name(column_files_fid)); q.p_name(column_name(column_files_fid));
q.p(row[1].i()); q.p(row[1].i());
q.execute(); q.execute();
} }
} }
if (m_files.empty()) if (m_files.empty())
m_database.query("update bb_bt_tracker_snap set " m_database.query("UPDATE bb_bt_tracker_snap SET "
+ column_name(column_files_leechers) + " = 0, " + column_name(column_files_leechers) + " = 0, "
+ column_name(column_files_seeders) + " = 0, speed_up=0, speed_down=0"); + column_name(column_files_seeders) + " = 0, speed_up=0, speed_down=0");
else if (m_config.m_auto_register) else if (m_config.m_auto_register)
return; return;
q = "select rpad(bt.info_hash,20,' '), bt.?, bt.?, bt.reg_time, bt.size, bt.attach_id, bt.topic_id, bt.poster_id, " q = "SELECT rpad(bt.info_hash,20,' '), bt.?, bt.?, bt.reg_time, bt.size, bt.attach_id, bt.topic_id, bt.poster_id, "
+ column_name(column_files_dl_percent) + " from ? bt where reg_time >= ?"; + column_name(column_files_dl_percent) + " FROM ? bt WHERE reg_time >= ?";
q.p_name(column_name(column_files_completed)); q.p_name(column_name(column_files_completed));
q.p_name(column_name(column_files_fid)); q.p_name(column_name(column_files_fid));
q.p_name(table_name(table_files)); q.p_name(table_name(table_files));
@ -982,8 +966,8 @@ void Cserver::read_db_users()
try try
{ {
// TorrentPier begin // TorrentPier begin
Csql_query q(m_database, "select bt.?, auth_key, " + column_name(column_users_can_leech) + ", " Csql_query q(m_database, "SELECT bt.?, auth_key, " + column_name(column_users_can_leech) + ", "
+ column_name(column_users_torrents_limit) + ", user_vip, user_vip_exp, user_park, u.user_active from ? bt LEFT JOIN bb_users u ON (u.user_id=bt.user_id)"); + column_name(column_users_torrents_limit) + ", u.user_active FROM ? bt LEFT JOIN bb_users u ON (u.user_id = bt.user_id)");
// TorrentPier end // TorrentPier end
q.p_name(column_name(column_users_uid)); q.p_name(column_name(column_users_uid));
@ -1003,10 +987,7 @@ void Cserver::read_db_users()
user.torrents_limit = row[3].i(); user.torrents_limit = row[3].i();
user.peers_limit = 2; // # of IP addresses user can leech from user.peers_limit = 2; // # of IP addresses user can leech from
user.can_leech = row[2].i(); user.can_leech = row[2].i();
user.user_vip = row[4].i(); user.user_active = row[4].i();
user.user_vip_exp = row[5].i();
user.user_park = row[6].i();
user.user_active = row[7].i();
if (row[1].size()) { if (row[1].size()) {
user.passkey = row[1].s(); user.passkey = row[1].s();
m_users_torrent_passes[user.passkey] = &user; m_users_torrent_passes[user.passkey] = &user;
@ -1042,7 +1023,7 @@ void Cserver::write_db_files()
if (!file.fid) if (!file.fid)
{ {
// TorrentPier begin // TorrentPier begin
Csql_query(m_database, "insert into ? (info_hash, reg_time) values (?, unix_timestamp())").p_name(table_name(table_files)).p(i.first).execute(); Csql_query(m_database, "INSERT INTO ? (info_hash, reg_time) VALUES (?, unix_timestamp())").p_name(table_name(table_files)).p(i.first).execute();
// TorrentPier end // TorrentPier end
file.fid = m_database.insert_id(); file.fid = m_database.insert_id();
@ -1065,12 +1046,12 @@ void Cserver::write_db_files()
buffer.erase(buffer.size() - 1); buffer.erase(buffer.size() - 1);
// TorrentPier begin // TorrentPier begin
m_database.query("insert into " + table_name(table_files) + " (" m_database.query("INSERT INTO " + table_name(table_files) + " ("
+ column_name(column_files_completed) + ", " + column_name(column_files_completed) + ", "
+ column_name(column_files_fid) + column_name(column_files_fid)
+ ", seeder_last_seen, speed_up, speed_down) values " + ", seeder_last_seen, speed_up, speed_down) VALUES "
+ buffer + buffer
+ " on duplicate key update speed_up=values(speed_up), speed_down=values(speed_down)," + " ON DUPLICATE KEY UPDATE speed_up = values(speed_up), speed_down = values(speed_down),"
+ " " + column_name(column_files_completed) + " = " + column_name(column_files_completed) + " + values(" + column_name(column_files_completed) + ")," + " " + column_name(column_files_completed) + " = " + column_name(column_files_completed) + " + values(" + column_name(column_files_completed) + "),"
+ " seeder_last_seen = values(seeder_last_seen)" + " seeder_last_seen = values(seeder_last_seen)"
); );
@ -1085,7 +1066,7 @@ void Cserver::write_db_files()
try try
{ {
m_announce_log_buffer.erase(m_announce_log_buffer.size() - 1); m_announce_log_buffer.erase(m_announce_log_buffer.size() - 1);
m_database.query("insert delayed into " + table_name(table_announce_log) + " (ipa, port, event, info_hash, peer_id, downloaded, left0, uploaded, uid, mtime) values " + m_announce_log_buffer); m_database.query("INSERT DELAYED INTO " + table_name(table_announce_log) + " (ipa, port, event, info_hash, peer_id, downloaded, left0, uploaded, uid, mtime) VALUES " + m_announce_log_buffer);
} }
catch (Cdatabase::exception&) catch (Cdatabase::exception&)
{ {
@ -1097,7 +1078,7 @@ void Cserver::write_db_files()
try try
{ {
m_scrape_log_buffer.erase(m_scrape_log_buffer.size() - 1); m_scrape_log_buffer.erase(m_scrape_log_buffer.size() - 1);
m_database.query("insert delayed into " + table_name(table_scrape_log) + " (ipa, info_hash, mtime) values " + m_scrape_log_buffer); m_database.query("INSERT DELAYED INTO " + table_name(table_scrape_log) + " (ipa, info_hash, mtime) VALUES " + m_scrape_log_buffer);
} }
catch (Cdatabase::exception&) catch (Cdatabase::exception&)
{ {
@ -1110,15 +1091,17 @@ void Cserver::write_db_files()
void Cserver::write_db_users() void Cserver::write_db_users()
{ {
m_write_db_users_time = time(); m_write_db_users_time = time();
if (!m_use_sql) if (!m_use_sql)
return; return;
if (!m_files_users_updates_buffer.empty()) if (!m_files_users_updates_buffer.empty())
{ {
m_files_users_updates_buffer.erase(m_files_users_updates_buffer.size() - 1); m_files_users_updates_buffer.erase(m_files_users_updates_buffer.size() - 1);
try try
{ {
m_database.query("insert into " + table_name(table_files_users) m_database.query("INSERT INTO " + table_name(table_files_users)
+ " (topic_id, peer_id, peer_hash, user_id, ip, ipv6, port, uploaded, downloaded, seeder, releaser, complete_percent, speed_up, speed_down, update_time, xbt_error, ul_gdc, ul_gdc_c, ul_16k_c, ul_eq_dl) values " + " (topic_id, peer_id, peer_hash, user_id, ip, ipv6, port, uploaded, downloaded, seeder, releaser, complete_percent, speed_up, speed_down, update_time, xbt_error, ul_gdc, ul_gdc_c, ul_16k_c, ul_eq_dl) VALUES "
+ m_files_users_updates_buffer + m_files_users_updates_buffer
+ " on duplicate key update" + " on duplicate key update"
+ " topic_id = values(topic_id)," + " topic_id = values(topic_id),"
@ -1144,12 +1127,13 @@ void Cserver::write_db_users()
} }
m_files_users_updates_buffer.erase(); m_files_users_updates_buffer.erase();
} }
if (!m_users_updates_buffer.empty()) if (!m_users_updates_buffer.empty())
{ {
m_users_updates_buffer.erase(m_users_updates_buffer.size() - 1); m_users_updates_buffer.erase(m_users_updates_buffer.size() - 1);
try try
{ {
m_database.query("insert into " + table_name(table_users) + " (u_down_total, u_up_total, " + column_name(column_users_uid) + ", u_up_release, u_up_bonus, max_up_speed, max_down_speed) values " m_database.query("INSERT INTO " + table_name(table_users) + " (u_down_total, u_up_total, " + column_name(column_users_uid) + ", u_up_release, u_up_bonus, max_up_speed, max_down_speed) VALUES "
+ m_users_updates_buffer + m_users_updates_buffer
+ " on duplicate key update" + " on duplicate key update"
+ " u_down_total = u_down_total + values(u_down_total)," + " u_down_total = u_down_total + values(u_down_total),"
@ -1170,12 +1154,13 @@ void Cserver::write_db_users()
} }
m_users_updates_buffer.erase(); m_users_updates_buffer.erase();
} }
if (!m_users_dl_status_buffer.empty()) if (!m_users_dl_status_buffer.empty())
{ {
m_users_dl_status_buffer.erase(m_users_dl_status_buffer.size() - 1); m_users_dl_status_buffer.erase(m_users_dl_status_buffer.size() - 1);
try try
{ {
m_database.query("insert into bb_bt_dlstatus_main (topic_id,user_id,user_status) values" m_database.query("INSERT INTO bb_bt_dlstatus_main (topic_id,user_id,user_status) VALUES"
+ m_users_dl_status_buffer + m_users_dl_status_buffer
+ " on duplicate key update" + " on duplicate key update"
+ " user_status = values(user_status)"); + " user_status = values(user_status)");
@ -1185,12 +1170,13 @@ void Cserver::write_db_users()
} }
m_users_dl_status_buffer.erase(); m_users_dl_status_buffer.erase();
} }
if (!m_tor_dl_stat_buffer.empty()) if (!m_tor_dl_stat_buffer.empty())
{ {
m_tor_dl_stat_buffer.erase(m_tor_dl_stat_buffer.size() - 1); m_tor_dl_stat_buffer.erase(m_tor_dl_stat_buffer.size() - 1);
try try
{ {
m_database.query("insert into bb_bt_torrent_activity(user_id,topic_id,torrent_upload,torrent_download,torrent_speed_up,torrent_speed_down,torrent_dl_status, torrent_bonus, torrent_status, torrent_all_download, torrent_time_st, torrent_time) values" m_database.query("INSERT INTO bb_bt_torrent_activity(user_id, topic_id, torrent_upload, torrent_download, torrent_speed_up, torrent_speed_down, torrent_dl_status, torrent_bonus, torrent_status, torrent_all_download, torrent_time_st, torrent_time) VALUES"
+ m_tor_dl_stat_buffer + m_tor_dl_stat_buffer
+ " on duplicate key update" + " on duplicate key update"
+ " torrent_upload = torrent_upload + values(torrent_upload)," + " torrent_upload = torrent_upload + values(torrent_upload),"
@ -1207,13 +1193,14 @@ void Cserver::write_db_users()
} }
m_tor_dl_stat_buffer.erase(); m_tor_dl_stat_buffer.erase();
} }
//cheat
// Cheat
if (!m_cheat_buffer.empty()) if (!m_cheat_buffer.empty())
{ {
m_cheat_buffer.erase(m_cheat_buffer.size() - 1); m_cheat_buffer.erase(m_cheat_buffer.size() - 1);
try try
{ {
m_database.query("insert into bb_bt_cheat_log(cheat_user_id, cheat_uploaded, cheat_ip, cheat_log_time) values" m_database.query("INSERT INTO bb_bt_cheat_log (cheat_user_id, cheat_uploaded, cheat_ip, cheat_log_time) VALUES"
+ m_cheat_buffer); + m_cheat_buffer);
} }
catch (Cdatabase::exception&) catch (Cdatabase::exception&)
@ -1221,22 +1208,6 @@ void Cserver::write_db_users()
} }
m_cheat_buffer.erase(); m_cheat_buffer.erase();
} }
//vip
if (!m_vip_buffer.empty())
{
m_vip_buffer.erase(m_vip_buffer.size() - 1);
try
{
m_database.query("UPDATE bb_bt_users SET user_vip = 0 WHERE user_id IN"
+ m_vip_buffer );
m_database.query("UPDATE bb_users SET user_rank = 0 WHERE user_rank = 20 AND user_id IN"
+ m_vip_buffer );
}
catch (Cdatabase::exception&)
{
}
m_vip_buffer.erase();
}
} }
// TorrentPier end // TorrentPier end
@ -1246,7 +1217,7 @@ void Cserver::read_config()
{ {
try try
{ {
Csql_result result = m_database.query("select name, value from " + table_name(table_config) + " where value is not null"); Csql_result result = m_database.query("SELECT name, value FROM " + table_name(table_config) + " WHERE value is not null");
Cconfig config; Cconfig config;
for (Csql_row row; row = result.fetch_row(); ) for (Csql_row row; row = result.fetch_row(); )
{ {
@ -1257,7 +1228,7 @@ void Cserver::read_config()
if (config.m_torrent_pass_private_key.empty()) if (config.m_torrent_pass_private_key.empty())
{ {
config.m_torrent_pass_private_key = generate_random_string(27); config.m_torrent_pass_private_key = generate_random_string(27);
Csql_query(m_database, "insert into xbt_config (name, value) values ('torrent_pass_private_key', ?)").p(config.m_torrent_pass_private_key).execute(); Csql_query(m_database, "INSERT INTO xbt_config (name, value) VALUES ('torrent_pass_private_key', ?)").p(config.m_torrent_pass_private_key).execute();
} }
m_config = config; m_config = config;
} }

View file

@ -57,7 +57,7 @@ public:
bool xbt_error_empty; bool xbt_error_empty;
// Upload Greatest Common Divisor // Upload Greatest Common Divisor
long long ul_gdc, ul_gdc_16k; long long ul_gdc, ul_gdc_16k;
int ul_gdc_count, ul_16k_count, ul_eq_dl_count, end_vip; int ul_gdc_count, ul_16k_count, ul_eq_dl_count;
bool ipv6set; bool ipv6set;
// boost::array<char, 16> ipv6; // boost::array<char, 16> ipv6;
@ -132,9 +132,6 @@ public:
peers_limit = 0; peers_limit = 0;
torrents_limit = 0; torrents_limit = 0;
wait_time = 0; wait_time = 0;
user_vip = 0;
user_vip_exp = 0;
user_park = 0;
user_active = 1; user_active = 1;
} }
@ -147,9 +144,6 @@ public:
std::string passkey; std::string passkey;
int torrents_limit; int torrents_limit;
int wait_time; int wait_time;
int user_vip;
int user_vip_exp;
int user_park;
int user_active; int user_active;
}; };
@ -269,6 +263,5 @@ private:
std::string m_users_dl_status_buffer; std::string m_users_dl_status_buffer;
std::string m_tor_dl_stat_buffer; std::string m_tor_dl_stat_buffer;
std::string m_cheat_buffer; std::string m_cheat_buffer;
std::string m_vip_buffer;
// TorrentPier end // TorrentPier end
}; };

View file

@ -301,6 +301,9 @@ bool Ctracker_input::banned() const
|| boost::istarts_with(m_peer_id, "-UT11"); || boost::istarts_with(m_peer_id, "-UT11");
case 'T': // -TS* > TorrentStorm case 'T': // -TS* > TorrentStorm
return boost::istarts_with(m_peer_id, "-TS"); return boost::istarts_with(m_peer_id, "-TS");
case 'M': // -MG* > MediaGet
return boost::istarts_with(m_peer_id, "-MG1Cr0")
|| boost::istarts_with(m_peer_id, "-MG21");
default: default:
return false; return false;
} }

View file

@ -44,7 +44,6 @@ const std::string bts_announce = "announce";
const std::string bts_announce_list = "announce-list"; const std::string bts_announce_list = "announce-list";
const std::string bts_banned_client = "access denied, banned client"; const std::string bts_banned_client = "access denied, banned client";
const std::string bts_can_not_leech = "access denied, leeching forbidden, you are only allowed to seed"; const std::string bts_can_not_leech = "access denied, leeching forbidden, you are only allowed to seed";
const std::string bts_park = "access denied, account parked";
const std::string bts_close_torrent = "close torrent"; const std::string bts_close_torrent = "close torrent";
const std::string bts_complete = "complete"; const std::string bts_complete = "complete";
const std::string bts_complete_total = "complete total"; const std::string bts_complete_total = "complete total";

View file

@ -57,7 +57,7 @@ $bb_cfg['css_ver'] = 1;
// Increase number of revision after update // Increase number of revision after update
$bb_cfg['tp_version'] = '2.0.2'; $bb_cfg['tp_version'] = '2.0.2';
$bb_cfg['tp_release_state'] = 'TP II r186'; $bb_cfg['tp_release_state'] = 'TP II r187';
$bb_cfg['tp_release_date'] = '2-08-2011'; $bb_cfg['tp_release_date'] = '2-08-2011';
$bb_cfg['board_disabled_msg'] = 'форум временно отключен'; // 'forums temporarily disabled'; // show this msg if board has been disabled via ON/OFF trigger $bb_cfg['board_disabled_msg'] = 'форум временно отключен'; // 'forums temporarily disabled'; // show this msg if board has been disabled via ON/OFF trigger