summaryrefslogtreecommitdiff
path: root/trackerlogic.c
diff options
context:
space:
mode:
Diffstat (limited to 'trackerlogic.c')
-rw-r--r--trackerlogic.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/trackerlogic.c b/trackerlogic.c
index ebfb1f8..98fcef9 100644
--- a/trackerlogic.c
+++ b/trackerlogic.c
@@ -22,6 +22,10 @@
22/* GLOBAL VARIABLES */ 22/* GLOBAL VARIABLES */
23static ot_vector all_torrents[256]; 23static ot_vector all_torrents[256];
24static ot_vector changeset; 24static ot_vector changeset;
25#ifdef WANT_BLACKLISTING
26static ot_vector blacklist;
27#endif
28
25size_t changeset_size = 0; 29size_t changeset_size = 0;
26time_t last_clean_time = 0; 30time_t last_clean_time = 0;
27 31
@@ -155,6 +159,12 @@ ot_torrent *add_peer_to_torrent( ot_hash *hash, ot_peer *peer, int from_changese
155 ot_vector *torrents_list = &all_torrents[*hash[0]], *peer_pool; 159 ot_vector *torrents_list = &all_torrents[*hash[0]], *peer_pool;
156 int base_pool = 0; 160 int base_pool = 0;
157 161
162#ifdef WANT_BLACKLISTING
163 binary_search( hash, blacklist.data, blacklist.size, OT_HASH_COMPARE_SIZE, OT_HASH_COMPARE_SIZE, &exactmatch );
164 if( exactmatch )
165 return NULL;
166#endif
167
158 torrent = vector_find_or_insert( torrents_list, (void*)hash, sizeof( ot_torrent ), OT_HASH_COMPARE_SIZE, &exactmatch ); 168 torrent = vector_find_or_insert( torrents_list, (void*)hash, sizeof( ot_torrent ), OT_HASH_COMPARE_SIZE, &exactmatch );
159 if( !torrent ) return NULL; 169 if( !torrent ) return NULL;
160 170
@@ -672,3 +682,22 @@ void deinit_logic( void ) {
672 byte_zero( &changeset, sizeof( changeset ) ); 682 byte_zero( &changeset, sizeof( changeset ) );
673 changeset_size = 0; 683 changeset_size = 0;
674} 684}
685
686#ifdef WANT_BLACKLISTING
687void blacklist_reset( void ) {
688 free( blacklist.data );
689 byte_zero( &blacklist, sizeof( blacklist ) );
690}
691
692int blacklist_addentry( ot_hash *infohash ) {
693 int em;
694 void *insert = vector_find_or_insert( &blacklist, infohash, OT_HASH_COMPARE_SIZE, OT_HASH_COMPARE_SIZE, &em );
695
696 if( !insert )
697 return -1;
698
699 memmove( insert, infohash, OT_HASH_COMPARE_SIZE );
700
701 return 0;
702}
703#endif