tr_bool tr_sessionIsAddressBlocked( const tr_session * session, const tr_address * addr ) { tr_list * l; assert( tr_isSession( session ) ); for( l = session->blocklists; l; l = l->next ) if( _tr_blocklistHasAddress( l->data, addr ) ) return TRUE; return FALSE; }
static int testBlockList (void) { const char * tmpfile_txt = TEMPFILE_TXT; const char * tmpfile_bin = TEMPFILE_BIN; struct tr_address addr; tr_blocklist * b; remove (tmpfile_txt); remove (tmpfile_bin); b = _tr_blocklistNew (tmpfile_bin, true); createTestBlocklist (tmpfile_txt); _tr_blocklistSetContent (b, tmpfile_txt); /* now run some tests */ check (tr_address_from_string (&addr, "216.16.1.143")); check (!_tr_blocklistHasAddress (b, &addr)); check (tr_address_from_string (&addr, "216.16.1.144")); check (_tr_blocklistHasAddress (b, &addr)); check (tr_address_from_string (&addr, "216.16.1.145")); check (_tr_blocklistHasAddress (b, &addr)); check (tr_address_from_string (&addr, "216.16.1.146")); check (_tr_blocklistHasAddress (b, &addr)); check (tr_address_from_string (&addr, "216.16.1.147")); check (_tr_blocklistHasAddress (b, &addr)); check (tr_address_from_string (&addr, "216.16.1.148")); check (_tr_blocklistHasAddress (b, &addr)); check (tr_address_from_string (&addr, "216.16.1.149")); check (_tr_blocklistHasAddress (b, &addr)); check (tr_address_from_string (&addr, "216.16.1.150")); check (_tr_blocklistHasAddress (b, &addr)); check (tr_address_from_string (&addr, "216.16.1.151")); check (_tr_blocklistHasAddress (b, &addr)); check (tr_address_from_string (&addr, "216.16.1.152")); check (!_tr_blocklistHasAddress (b, &addr)); check (tr_address_from_string (&addr, "216.16.1.153")); check (!_tr_blocklistHasAddress (b, &addr)); check (tr_address_from_string (&addr, "217.0.0.1")); check (!_tr_blocklistHasAddress (b, &addr)); check (tr_address_from_string (&addr, "255.0.0.1")); /* cleanup */ _tr_blocklistFree (b); remove (tmpfile_txt); remove (tmpfile_bin); return 0; }
int main( void ) { #ifndef WIN32 const char * tmpfile_txt = "/tmp/transmission-blocklist-test.txt"; const char * tmpfile_bin = "/tmp/transmission-blocklist-test.bin"; #else const char * tmpfile_txt = "transmission-blocklist-test.txt"; const char * tmpfile_bin = "transmission-blocklist-test.bin"; #endif struct tr_address addr; int test = 0; tr_blocklist * b; remove( tmpfile_txt ); remove( tmpfile_bin ); b = _tr_blocklistNew( tmpfile_bin, true ); createTestBlocklist( tmpfile_txt ); _tr_blocklistSetContent( b, tmpfile_txt ); /* now run some tests */ check( tr_address_from_string( &addr, "216.16.1.143" ) ); check( !_tr_blocklistHasAddress( b, &addr ) ); check( tr_address_from_string( &addr, "216.16.1.144" ) ); check( _tr_blocklistHasAddress( b, &addr ) ); check( tr_address_from_string( &addr, "216.16.1.145" ) ); check( _tr_blocklistHasAddress( b, &addr ) ); check( tr_address_from_string( &addr, "216.16.1.146" ) ); check( _tr_blocklistHasAddress( b, &addr ) ); check( tr_address_from_string( &addr, "216.16.1.147" ) ); check( _tr_blocklistHasAddress( b, &addr ) ); check( tr_address_from_string( &addr, "216.16.1.148" ) ); check( _tr_blocklistHasAddress( b, &addr ) ); check( tr_address_from_string( &addr, "216.16.1.149" ) ); check( _tr_blocklistHasAddress( b, &addr ) ); check( tr_address_from_string( &addr, "216.16.1.150" ) ); check( _tr_blocklistHasAddress( b, &addr ) ); check( tr_address_from_string( &addr, "216.16.1.151" ) ); check( _tr_blocklistHasAddress( b, &addr ) ); check( tr_address_from_string( &addr, "216.16.1.152" ) ); check( !_tr_blocklistHasAddress( b, &addr ) ); check( tr_address_from_string( &addr, "216.16.1.153" ) ); check( !_tr_blocklistHasAddress( b, &addr ) ); check( tr_address_from_string( &addr, "217.0.0.1" ) ); check( !_tr_blocklistHasAddress( b, &addr ) ); check( tr_address_from_string( &addr, "255.0.0.1" ) ); /* cleanup */ _tr_blocklistFree( b ); remove( tmpfile_txt ); remove( tmpfile_bin ); return 0; }