|
|
@ -282,11 +282,12 @@ void livesync_handle_tell( ssize_t datalen ) {
|
|
|
|
g_next_beacon_time = g_now_seconds + LIVESYNC_BEACON_INTERVAL;
|
|
|
|
g_next_beacon_time = g_now_seconds + LIVESYNC_BEACON_INTERVAL;
|
|
|
|
|
|
|
|
|
|
|
|
while( off + sizeof(ot_hash) + 12 <= (size_t)datalen ) {
|
|
|
|
while( off + sizeof(ot_hash) + 12 <= (size_t)datalen ) {
|
|
|
|
ot_hash *hash = (ot_hash*)(g_inbuffer+off);
|
|
|
|
ot_hash *hash = (ot_hash*)(g_inbuffer+off);
|
|
|
|
ot_vector *torrents_list = mutex_bucket_lock_by_hash(*hash);
|
|
|
|
ot_vector *torrents_list = mutex_bucket_lock_by_hash(*hash);
|
|
|
|
size_t down_count_remote;
|
|
|
|
size_t down_count_remote;
|
|
|
|
int exactmatch;
|
|
|
|
int exactmatch;
|
|
|
|
ot_torrent * torrent = vector_find_or_insert(torrents_list, hash, sizeof(ot_hash), OT_HASH_COMPARE_SIZE, &exactmatch);
|
|
|
|
ot_torrent *torrent = vector_find_or_insert(torrents_list, hash, sizeof(ot_hash), OT_HASH_COMPARE_SIZE, &exactmatch);
|
|
|
|
|
|
|
|
|
|
|
|
if( !torrent ) {
|
|
|
|
if( !torrent ) {
|
|
|
|
mutex_bucket_unlock_by_hash( *hash, 0 );
|
|
|
|
mutex_bucket_unlock_by_hash( *hash, 0 );
|
|
|
|
continue;
|
|
|
|
continue;
|
|
|
|