(trunk daemon) get the non-inotify chunks of code working with libevent2

This commit is contained in:
Charles Kerr 2010-12-24 15:41:10 +00:00
parent a3a7b1548d
commit a5e2b244dd
1 changed files with 17 additions and 8 deletions

View File

@ -166,22 +166,31 @@ watchdir_free_impl( dtr_watchdir * w )
{
evbuffer_free( w->lastFiles );
}
static char*
get_key_from_file( const char * filename, const size_t len )
{
return tr_strdup_printf( "%c%*.*s%d", FILE_DELIMITER, (int)len, (int)len, filename, FILE_DELIMITER );
}
static void
add_file_to_list( struct evbuffer * buf, const char * filename, size_t len )
{
const char delimiter = FILE_DELIMITER;
evbuffer_add( buf, &delimiter, 1 );
evbuffer_add( buf, filename, len );
evbuffer_add( buf, &delimiter, 1 );
char * key = get_key_from_file( filename, len );
evbuffer_add( buf, key, strlen( key ) );
tr_free( key );
}
static tr_bool
is_file_in_list( struct evbuffer * buf, const char * filename, size_t len )
{
tr_bool in_list;
struct evbuffer * test = evbuffer_new( );
add_file_to_list( test, filename, len );
in_list = evbuffer_find( buf, EVBUFFER_DATA( test ), EVBUFFER_LENGTH( test ) ) != NULL;
evbuffer_free( test );
struct evbuffer_ptr ptr;
char * key = get_key_from_file( filename, len );
ptr = evbuffer_search( buf, key, strlen( key ), NULL );
in_list = ptr.pos != -1;
tr_free( key );
return in_list;
}
static void