@ -106,7 +106,7 @@ static int md_ba_complete_block(sqlite3* db, const uint8_t* block_uuid,
int exists = ( sqlite3_step ( st ) = = SQLITE_ROW ) ;
int exists = ( sqlite3_step ( st ) = = SQLITE_ROW ) ;
sqlite3_finalize ( st ) ;
sqlite3_finalize ( st ) ;
if ( exists ) {
if ( exists ) {
DEBUG_DEBUG ( DEBUG_CATEGORY_DEBUG , " %s: ba_complete_block: completed already exists for node=0x%016llx, skipping " ,
DEBUG_DEBUG ( DEBUG_CATEGORY_MEDIA , " %s: ba_complete_block: completed already exists for node=0x%016llx, skipping " ,
MD_ID , ( unsigned long long ) node_id ) ;
MD_ID , ( unsigned long long ) node_id ) ;
return 0 ;
return 0 ;
}
}
@ -293,7 +293,7 @@ int md_file_load_inc(struct media_delivery_ctx* md, const uint8_t* media_id, uin
if ( fl - > active_downloads < 10 )
if ( fl - > active_downloads < 10 )
fl - > downloader_ids [ fl - > active_downloads ] = node_id ;
fl - > downloader_ids [ fl - > active_downloads ] = node_id ;
fl - > active_downloads + + ;
fl - > active_downloads + + ;
DEBUG_DEBUG ( DEBUG_CATEGORY_DEBUG , " %s: file_load inc media=%02x%02x... node=0x%016llx count=%d " ,
DEBUG_DEBUG ( DEBUG_CATEGORY_MEDIA , " %s: file_load inc media=%02x%02x... node=0x%016llx count=%d " ,
MD_ID , media_id [ 0 ] , media_id [ 1 ] , ( unsigned long long ) node_id , fl - > active_downloads ) ;
MD_ID , media_id [ 0 ] , media_id [ 1 ] , ( unsigned long long ) node_id , fl - > active_downloads ) ;
return fl - > active_downloads ;
return fl - > active_downloads ;
}
}
@ -311,7 +311,7 @@ void md_file_load_dec(struct media_delivery_ctx* md, const uint8_t* media_id, ui
break ;
break ;
}
}
}
}
DEBUG_DEBUG ( DEBUG_CATEGORY_DEBUG , " %s: file_load dec media=%02x%02x... node=0x%016llx count=%d " ,
DEBUG_DEBUG ( DEBUG_CATEGORY_MEDIA , " %s: file_load dec media=%02x%02x... node=0x%016llx count=%d " ,
MD_ID , media_id [ 0 ] , media_id [ 1 ] , ( unsigned long long ) node_id , fl - > active_downloads ) ;
MD_ID , media_id [ 0 ] , media_id [ 1 ] , ( unsigned long long ) node_id , fl - > active_downloads ) ;
/* remove entry when count reaches 0 */
/* remove entry when count reaches 0 */
if ( fl - > active_downloads = = 0 & & md - > file_loads ) {
if ( fl - > active_downloads = = 0 & & md - > file_loads ) {
@ -386,7 +386,7 @@ static void md_super_repl_send(struct media_delivery_ctx* md, struct media_super
if ( md_send ( md - > inst , TOPO_GROUP_UTUN , peer - > peer_node_id , pkt , ( size_t ) off ) = = 0 ) {
if ( md_send ( md - > inst , TOPO_GROUP_UTUN , peer - > peer_node_id , pkt , ( size_t ) off ) = = 0 ) {
peer - > inflight_count + + ;
peer - > inflight_count + + ;
DEBUG_DEBUG ( DEBUG_CATEGORY_DEBUG , " %s: SUPER_REPL sent to 0x%016llx seq=%u entries=%d " ,
DEBUG_DEBUG ( DEBUG_CATEGORY_MEDIA , " %s: SUPER_REPL sent to 0x%016llx seq=%u entries=%d " ,
MD_ID , ( unsigned long long ) peer - > peer_node_id , seq , num_entries ) ;
MD_ID , ( unsigned long long ) peer - > peer_node_id , seq , num_entries ) ;
} else {
} else {
DEBUG_ERROR ( DEBUG_CATEGORY_GENERAL , " %s: SUPER_REPL send failed to 0x%016llx " ,
DEBUG_ERROR ( DEBUG_CATEGORY_GENERAL , " %s: SUPER_REPL send failed to 0x%016llx " ,
@ -442,7 +442,7 @@ static void md_handle_serve_reg(struct media_delivery_ctx* md, uint64_t from_nod
uint8_t ack [ 9 ] = { MEDIA_SUBCMD_SERVE_ACK , 0 , 0 } ;
uint8_t ack [ 9 ] = { MEDIA_SUBCMD_SERVE_ACK , 0 , 0 } ;
memcpy ( ack + 1 , & pkt - > group_id , 8 ) ;
memcpy ( ack + 1 , & pkt - > group_id , 8 ) ;
( void ) from_node ;
( void ) from_node ;
DEBUG_INFO ( DEBUG_CATEGORY_DEBUG , " %s: SERVE_REG node=0x%016llx group=%016llx " ,
DEBUG_INFO ( DEBUG_CATEGORY_MEDIA , " %s: SERVE_REG node=0x%016llx group=%016llx " ,
MD_ID , ( unsigned long long ) from_node , ( unsigned long long ) pkt - > group_id ) ;
MD_ID , ( unsigned long long ) from_node , ( unsigned long long ) pkt - > group_id ) ;
}
}
@ -492,7 +492,7 @@ static void md_handle_query(struct media_delivery_ctx* md, uint64_t from_node,
uint16_t nc = ( uint16_t ) count ;
uint16_t nc = ( uint16_t ) count ;
memcpy ( resp + num_pos , & nc , 2 ) ;
memcpy ( resp + num_pos , & nc , 2 ) ;
DEBUG_INFO ( DEBUG_CATEGORY_DEBUG , " %s: QUERY from 0x%016llx → %d entries (super=%d) " ,
DEBUG_INFO ( DEBUG_CATEGORY_MEDIA , " %s: QUERY from 0x%016llx → %d entries (super=%d) " ,
MD_ID , ( unsigned long long ) from_node , count , md - > is_supernode ) ;
MD_ID , ( unsigned long long ) from_node , count , md - > is_supernode ) ;
md_send ( md - > inst , TOPO_GROUP_UTUN , from_node , resp , ( size_t ) off ) ;
md_send ( md - > inst , TOPO_GROUP_UTUN , from_node , resp , ( size_t ) off ) ;
}
}
@ -515,7 +515,7 @@ static void md_handle_have_block(struct media_delivery_ctx* md, uint64_t from_no
md_send ( md - > inst , TOPO_GROUP_UTUN , from_node , ack , sizeof ( ack ) ) ;
md_send ( md - > inst , TOPO_GROUP_UTUN , from_node , ack , sizeof ( ack ) ) ;
DEBUG_INFO ( DEBUG_CATEGORY_DEBUG , " %s: HAVE_BLOCK from 0x%016llx rc=%d " ,
DEBUG_INFO ( DEBUG_CATEGORY_MEDIA , " %s: HAVE_BLOCK from 0x%016llx rc=%d " ,
MD_ID , ( unsigned long long ) from_node , rc ) ;
MD_ID , ( unsigned long long ) from_node , rc ) ;
if ( rc = = 0 ) {
if ( rc = = 0 ) {
@ -541,11 +541,11 @@ static void md_handle_block_processing(struct media_delivery_ctx* md, uint64_t f
/* INSERT processing (status=0) with new id */
/* INSERT processing (status=0) with new id */
int rc = md_ba_insert ( md - > db , hb - > block_id , hb - > group_id , from_node , hb - > chunk , hb - > timestamp , 0 ) ;
int rc = md_ba_insert ( md - > db , hb - > block_id , hb - > group_id , from_node , hb - > chunk , hb - > timestamp , 0 ) ;
if ( rc ! = 0 ) {
if ( rc ! = 0 ) {
DEBUG_WARN ( DEBUG_CATEGORY_DEBUG , " %s: BLOCK_PROCESSING insert failed for node=0x%016llx (duplicate/constraint?) " ,
DEBUG_WARN ( DEBUG_CATEGORY_MEDIA , " %s: BLOCK_PROCESSING insert failed for node=0x%016llx (duplicate/constraint?) " ,
MD_ID , ( unsigned long long ) from_node ) ;
MD_ID , ( unsigned long long ) from_node ) ;
}
}
DEBUG_INFO ( DEBUG_CATEGORY_DEBUG , " %s: BLOCK_PROCESSING from 0x%016llx block=%02x%02x... " ,
DEBUG_INFO ( DEBUG_CATEGORY_MEDIA , " %s: BLOCK_PROCESSING from 0x%016llx block=%02x%02x... " ,
MD_ID , ( unsigned long long ) from_node , hb - > block_id [ 0 ] , hb - > block_id [ 1 ] ) ;
MD_ID , ( unsigned long long ) from_node , hb - > block_id [ 0 ] , hb - > block_id [ 1 ] ) ;
/* replicate to connected super-peers */
/* replicate to connected super-peers */
@ -602,7 +602,7 @@ static void md_handle_super_repl(struct media_delivery_ctx* md, uint64_t from_no
sa - > ack_seq = ( uint32_t ) max_id ;
sa - > ack_seq = ( uint32_t ) max_id ;
md_send ( md - > inst , TOPO_GROUP_UTUN , from_node , ack , sizeof ( ack ) ) ;
md_send ( md - > inst , TOPO_GROUP_UTUN , from_node , ack , sizeof ( ack ) ) ;
DEBUG_DEBUG ( DEBUG_CATEGORY_DEBUG , " %s: SUPER_REPL from 0x%016llx entries=%d max_id=%lld " ,
DEBUG_DEBUG ( DEBUG_CATEGORY_MEDIA , " %s: SUPER_REPL from 0x%016llx entries=%d max_id=%lld " ,
MD_ID , ( unsigned long long ) from_node , num , ( long long ) max_id ) ;
MD_ID , ( unsigned long long ) from_node , num , ( long long ) max_id ) ;
}
}
@ -612,13 +612,13 @@ static void md_handle_super_ack(struct media_delivery_ctx* md, uint64_t from_nod
struct media_pkt_super_ack * sa = ( struct media_pkt_super_ack * ) data ;
struct media_pkt_super_ack * sa = ( struct media_pkt_super_ack * ) data ;
struct media_super_peer * peer = md_super_peer_find ( md , from_node ) ;
struct media_super_peer * peer = md_super_peer_find ( md , from_node ) ;
if ( ! peer ) { DEBUG_WARN ( DEBUG_CATEGORY_DEBUG , " %s: SUPER_ACK from unknown peer 0x%016llx " , MD_ID , ( unsigned long long ) from_node ) ; return ; }
if ( ! peer ) { DEBUG_WARN ( DEBUG_CATEGORY_MEDIA , " %s: SUPER_ACK from unknown peer 0x%016llx " , MD_ID , ( unsigned long long ) from_node ) ; return ; }
peer - > peer_last_recv_id = sa - > ack_seq ;
peer - > peer_last_recv_id = sa - > ack_seq ;
peer - > inflight_count - - ;
peer - > inflight_count - - ;
peer - > timeout_tb = MEDIA_REPL_TIMEOUT_TB ;
peer - > timeout_tb = MEDIA_REPL_TIMEOUT_TB ;
DEBUG_DEBUG ( DEBUG_CATEGORY_DEBUG , " %s: SUPER_ACK from 0x%016llx seq=%u inflight=%d " ,
DEBUG_DEBUG ( DEBUG_CATEGORY_MEDIA , " %s: SUPER_ACK from 0x%016llx seq=%u inflight=%d " ,
MD_ID , ( unsigned long long ) from_node , sa - > ack_seq , peer - > inflight_count ) ;
MD_ID , ( unsigned long long ) from_node , sa - > ack_seq , peer - > inflight_count ) ;
md_super_repl_send ( md , peer ) ;
md_super_repl_send ( md , peer ) ;
@ -644,7 +644,7 @@ static void md_handle_super_hello(struct media_delivery_ctx* md, uint64_t from_n
resp . last_recv_id = my_last_recv ;
resp . last_recv_id = my_last_recv ;
md_send ( md - > inst , TOPO_GROUP_UTUN , from_node , ( const uint8_t * ) & resp , sizeof ( resp ) ) ;
md_send ( md - > inst , TOPO_GROUP_UTUN , from_node , ( const uint8_t * ) & resp , sizeof ( resp ) ) ;
DEBUG_INFO ( DEBUG_CATEGORY_DEBUG , " %s: SUPER_HELLO from 0x%016llx (peer_last_recv=%lld, my_last_recv=%lld) " ,
DEBUG_INFO ( DEBUG_CATEGORY_MEDIA , " %s: SUPER_HELLO from 0x%016llx (peer_last_recv=%lld, my_last_recv=%lld) " ,
MD_ID , ( unsigned long long ) from_node , ( long long ) sh - > last_recv_id , ( long long ) my_last_recv ) ;
MD_ID , ( unsigned long long ) from_node , ( long long ) sh - > last_recv_id , ( long long ) my_last_recv ) ;
/* start replication */
/* start replication */
@ -677,7 +677,7 @@ static void md_super_conn_cb(struct CONN_MGR_HANDLE* h, uint64_t node_id, uint64
hello . last_recv_id = my_last ;
hello . last_recv_id = my_last ;
if ( md_send ( md - > inst , TOPO_GROUP_UTUN , node_id , ( const uint8_t * ) & hello , sizeof ( hello ) ) = = 0 ) {
if ( md_send ( md - > inst , TOPO_GROUP_UTUN , node_id , ( const uint8_t * ) & hello , sizeof ( hello ) ) = = 0 ) {
DEBUG_INFO ( DEBUG_CATEGORY_DEBUG , " %s: SUPER_HELLO sent to 0x%016llx last_recv=%lld " ,
DEBUG_INFO ( DEBUG_CATEGORY_MEDIA , " %s: SUPER_HELLO sent to 0x%016llx last_recv=%lld " ,
MD_ID , ( unsigned long long ) node_id , ( long long ) my_last ) ;
MD_ID , ( unsigned long long ) node_id , ( long long ) my_last ) ;
} else {
} else {
DEBUG_ERROR ( DEBUG_CATEGORY_GENERAL , " %s: SUPER_HELLO send failed to 0x%016llx " ,
DEBUG_ERROR ( DEBUG_CATEGORY_GENERAL , " %s: SUPER_HELLO send failed to 0x%016llx " ,
@ -755,7 +755,7 @@ static void stream_send_chunk_cb(struct ll_queue* q, void* arg) {
media_delivery_stream_done ( md - > inst ) ;
media_delivery_stream_done ( md - > inst ) ;
fclose ( sc - > file ) ;
fclose ( sc - > file ) ;
u_free ( sc ) ;
u_free ( sc ) ;
DEBUG_INFO ( DEBUG_CATEGORY_DEBUG , " %s: BLOCK_DONE sent chunk=%d total=%u " ,
DEBUG_INFO ( DEBUG_CATEGORY_MEDIA , " %s: BLOCK_DONE sent chunk=%d total=%u " ,
MD_ID , sc - > chunk , bd - > total_size ) ;
MD_ID , sc - > chunk , bd - > total_size ) ;
} else {
} else {
/* continue streaming — register waiter for backpressure */
/* continue streaming — register waiter for backpressure */
@ -839,7 +839,7 @@ static void md_handle_block_req(struct media_delivery_ctx* md, uint64_t from_nod
struct media_pkt_block_req * req = ( struct media_pkt_block_req * ) data ;
struct media_pkt_block_req * req = ( struct media_pkt_block_req * ) data ;
uint64_t group_id = req - > group_id ? req - > group_id : TOPO_GROUP_UTUN ;
uint64_t group_id = req - > group_id ? req - > group_id : TOPO_GROUP_UTUN ;
DEBUG_INFO ( DEBUG_CATEGORY_DEBUG , " %s: BLOCK_REQ from 0x%016llx group=%016llx block=%02x%02x... active_streams=%d " ,
DEBUG_INFO ( DEBUG_CATEGORY_MEDIA , " %s: BLOCK_REQ from 0x%016llx group=%016llx block=%02x%02x... active_streams=%d " ,
MD_ID , ( unsigned long long ) from_node , ( unsigned long long ) group_id , req - > block_id [ 0 ] , req - > block_id [ 1 ] , md - > active_streams ) ;
MD_ID , ( unsigned long long ) from_node , ( unsigned long long ) group_id , req - > block_id [ 0 ] , req - > block_id [ 1 ] , md - > active_streams ) ;
int limit_reached = md - > active_streams > = MD_MAX_STREAMS ;
int limit_reached = md - > active_streams > = MD_MAX_STREAMS ;
@ -864,7 +864,7 @@ static void md_handle_block_req(struct media_delivery_ctx* md, uint64_t from_nod
struct TOPO_GROUP * grp = topo_groups_find ( md - > inst - > topo_groups , group_id ) ;
struct TOPO_GROUP * grp = topo_groups_find ( md - > inst - > topo_groups , group_id ) ;
if ( ! grp ) grp = topo_groups_get_default ( md - > inst - > topo_groups ) ;
if ( ! grp ) grp = topo_groups_get_default ( md - > inst - > topo_groups ) ;
if ( grp & & grp - > conn_mgr ) {
if ( grp & & grp - > conn_mgr ) {
DEBUG_INFO ( DEBUG_CATEGORY_DEBUG , " %s: no direct conn to 0x%016llx — connecting via conn_mgr " ,
DEBUG_INFO ( DEBUG_CATEGORY_MEDIA , " %s: no direct conn to 0x%016llx — connecting via conn_mgr " ,
MD_ID , ( unsigned long long ) from_node ) ;
MD_ID , ( unsigned long long ) from_node ) ;
conn_mgr_open_invite ( grp - > instance , grp - > group_id , NULL , from_node , NULL , NULL , NULL ) ;
conn_mgr_open_invite ( grp - > instance , grp - > group_id , NULL , from_node , NULL , NULL , NULL ) ;
}
}
@ -889,7 +889,7 @@ static void md_handle_block_req(struct media_delivery_ctx* md, uint64_t from_nod
rc - > downstream [ dsi ] . group_id = group_id ;
rc - > downstream [ dsi ] . group_id = group_id ;
rc - > downstream [ dsi ] . sent_offset = 0 ;
rc - > downstream [ dsi ] . sent_offset = 0 ;
memset ( & rc - > downstream [ dsi ] . waiter , 0 , sizeof ( rc - > downstream [ dsi ] . waiter ) ) ;
memset ( & rc - > downstream [ dsi ] . waiter , 0 , sizeof ( rc - > downstream [ dsi ] . waiter ) ) ;
DEBUG_INFO ( DEBUG_CATEGORY_DEBUG , " %s: relay downstream[%d] added node=0x%016llx file_offset=%llu " ,
DEBUG_INFO ( DEBUG_CATEGORY_MEDIA , " %s: relay downstream[%d] added node=0x%016llx file_offset=%llu " ,
MD_ID , dsi , ( unsigned long long ) from_node , ( unsigned long long ) rc - > file_offset ) ;
MD_ID , dsi , ( unsigned long long ) from_node , ( unsigned long long ) rc - > file_offset ) ;
md_relay_catchup ( md , rc , from_node , group_id , dsi ) ;
md_relay_catchup ( md , rc , from_node , group_id , dsi ) ;
md - > active_streams - - ; return ;
md - > active_streams - - ; return ;
@ -907,7 +907,7 @@ static void md_handle_block_req(struct media_delivery_ctx* md, uint64_t from_nod
memcpy ( rfp + roff , & rc - > downstream [ i ] . node_id , 8 ) ; roff + = 8 ;
memcpy ( rfp + roff , & rc - > downstream [ i ] . node_id , 8 ) ; roff + = 8 ;
}
}
md_send ( md - > inst , group_id , from_node , rfp , ( size_t ) roff ) ;
md_send ( md - > inst , group_id , from_node , rfp , ( size_t ) roff ) ;
DEBUG_INFO ( DEBUG_CATEGORY_DEBUG , " %s: relay full for block=%02x%02x..., sent %d downstream nodes to 0x%016llx " ,
DEBUG_INFO ( DEBUG_CATEGORY_MEDIA , " %s: relay full for block=%02x%02x..., sent %d downstream nodes to 0x%016llx " ,
MD_ID , req - > block_id [ 0 ] , req - > block_id [ 1 ] , rc - > downstream_count , ( unsigned long long ) from_node ) ;
MD_ID , req - > block_id [ 0 ] , req - > block_id [ 1 ] , rc - > downstream_count , ( unsigned long long ) from_node ) ;
} else {
} else {
DEBUG_ERROR ( DEBUG_CATEGORY_GENERAL , " %s: BLOCK_REQ block_id=%02x%02x... not found in media_files " ,
DEBUG_ERROR ( DEBUG_CATEGORY_GENERAL , " %s: BLOCK_REQ block_id=%02x%02x... not found in media_files " ,
@ -968,7 +968,7 @@ static void md_handle_block_req(struct media_delivery_ctx* md, uint64_t from_nod
memcpy ( rfp + roff , & fl - > downloader_ids [ i ] , 8 ) ; roff + = 8 ;
memcpy ( rfp + roff , & fl - > downloader_ids [ i ] , 8 ) ; roff + = 8 ;
}
}
md_send ( md - > inst , group_id , from_node , rfp , ( size_t ) roff ) ;
md_send ( md - > inst , group_id , from_node , rfp , ( size_t ) roff ) ;
DEBUG_INFO ( DEBUG_CATEGORY_DEBUG , " %s: source at capacity (%d/%d) for media=%02x%02x..., redirecting to %d nodes " ,
DEBUG_INFO ( DEBUG_CATEGORY_MEDIA , " %s: source at capacity (%d/%d) for media=%02x%02x..., redirecting to %d nodes " ,
MD_ID , fl - > active_downloads , md - > max_downloads_per_file ,
MD_ID , fl - > active_downloads , md - > max_downloads_per_file ,
req - > media_id [ 0 ] , req - > media_id [ 1 ] , fl - > active_downloads ) ;
req - > media_id [ 0 ] , req - > media_id [ 1 ] , fl - > active_downloads ) ;
fclose ( f ) ;
fclose ( f ) ;
@ -991,7 +991,7 @@ static void md_handle_block_req(struct media_delivery_ctx* md, uint64_t from_nod
sc - > block_start = ( uint64_t ) block_start ;
sc - > block_start = ( uint64_t ) block_start ;
sc - > block_data_len = ( size_t ) block_length ;
sc - > block_data_len = ( size_t ) block_length ;
DEBUG_INFO ( DEBUG_CATEGORY_DEBUG , " %s: streaming file=%s chunk=%d start=%lld len=%lld group=%016llx to 0x%016llx " ,
DEBUG_INFO ( DEBUG_CATEGORY_MEDIA , " %s: streaming file=%s chunk=%d start=%lld len=%lld group=%016llx to 0x%016llx " ,
MD_ID , path , chunk , ( long long ) block_start , ( long long ) block_length , ( unsigned long long ) group_id , ( unsigned long long ) from_node ) ;
MD_ID , path , chunk , ( long long ) block_start , ( long long ) block_length , ( unsigned long long ) group_id , ( unsigned long long ) from_node ) ;
md - > streams_started + + ; /* monotonic — for test admission checks */
md - > streams_started + + ; /* monotonic — for test admission checks */
@ -1009,7 +1009,7 @@ static void md_handle_block_relay_full(struct media_delivery_ctx* md, uint64_t f
uint16_t nrn = rf - > num_relay_nodes ;
uint16_t nrn = rf - > num_relay_nodes ;
if ( nrn > MD_MAX_RELAY_DOWNSTREAM ) nrn = MD_MAX_RELAY_DOWNSTREAM ;
if ( nrn > MD_MAX_RELAY_DOWNSTREAM ) nrn = MD_MAX_RELAY_DOWNSTREAM ;
DEBUG_INFO ( DEBUG_CATEGORY_DEBUG , " %s: RELAY_FULL from 0x%016llx block=%02x%02x... nodes=%u " ,
DEBUG_INFO ( DEBUG_CATEGORY_MEDIA , " %s: RELAY_FULL from 0x%016llx block=%02x%02x... nodes=%u " ,
MD_ID , ( unsigned long long ) from_node , rf - > block_id [ 0 ] , rf - > block_id [ 1 ] , nrn ) ;
MD_ID , ( unsigned long long ) from_node , rf - > block_id [ 0 ] , rf - > block_id [ 1 ] , nrn ) ;
/* forward to media_download layer to retry from one of the listed nodes */
/* forward to media_download layer to retry from one of the listed nodes */
@ -1045,7 +1045,7 @@ static void md_super_connect(struct media_delivery_ctx* md, uint64_t peer_node_i
return ;
return ;
}
}
DEBUG_INFO ( DEBUG_CATEGORY_DEBUG , " %s: connecting to supernode 0x%016llx " ,
DEBUG_INFO ( DEBUG_CATEGORY_MEDIA , " %s: connecting to supernode 0x%016llx " ,
MD_ID , ( unsigned long long ) peer_node_id ) ;
MD_ID , ( unsigned long long ) peer_node_id ) ;
conn_mgr_open_invite ( grp - > instance , grp - > group_id , NULL , peer_node_id , md_super_conn_cb , md , NULL ) ;
conn_mgr_open_invite ( grp - > instance , grp - > group_id , NULL , peer_node_id , md_super_conn_cb , md , NULL ) ;
}
}
@ -1189,7 +1189,7 @@ static void md_etcp_recv(struct ETCP_CONN* conn, struct ll_entry* entry) {
struct UTUN_INSTANCE * inst = conn - > instance ;
struct UTUN_INSTANCE * inst = conn - > instance ;
if ( ! inst ) return ;
if ( ! inst ) return ;
struct media_delivery_ctx * md = & inst - > md ;
struct media_delivery_ctx * md = & inst - > md ;
if ( ! md - > initialized ) { DEBUG_WARN ( DEBUG_CATEGORY_DEBUG , " %s: recv before init " , MD_ID ) ; return ; }
if ( ! md - > initialized ) { DEBUG_WARN ( DEBUG_CATEGORY_MEDIA , " %s: recv before init " , MD_ID ) ; return ; }
const uint8_t * data = entry - > dgram ;
const uint8_t * data = entry - > dgram ;
size_t len = entry - > len ;
size_t len = entry - > len ;
@ -1200,7 +1200,7 @@ static void md_etcp_recv(struct ETCP_CONN* conn, struct ll_entry* entry) {
data + = 1 ; len - = 1 ;
data + = 1 ; len - = 1 ;
uint64_t from_node = conn - > peer_node_id ;
uint64_t from_node = conn - > peer_node_id ;
DEBUG_DEBUG ( DEBUG_CATEGORY_DEBUG , " %s: recv %s(%02x) from 0x%016llx len=%zu " ,
DEBUG_DEBUG ( DEBUG_CATEGORY_MEDIA , " %s: recv %s(%02x) from 0x%016llx len=%zu " ,
MD_ID , md_subcmd_name ( subcmd ) , subcmd , ( unsigned long long ) from_node , len ) ;
MD_ID , md_subcmd_name ( subcmd ) , subcmd , ( unsigned long long ) from_node , len ) ;
switch ( subcmd ) {
switch ( subcmd ) {
@ -1208,7 +1208,7 @@ static void md_etcp_recv(struct ETCP_CONN* conn, struct ll_entry* entry) {
md_handle_serve_reg ( md , from_node , data , len ) ;
md_handle_serve_reg ( md , from_node , data , len ) ;
break ;
break ;
case MEDIA_SUBCMD_SERVE_LEAVE :
case MEDIA_SUBCMD_SERVE_LEAVE :
DEBUG_INFO ( DEBUG_CATEGORY_DEBUG , " %s: SERVE_LEAVE from 0x%016llx " ,
DEBUG_INFO ( DEBUG_CATEGORY_MEDIA , " %s: SERVE_LEAVE from 0x%016llx " ,
MD_ID , ( unsigned long long ) from_node ) ;
MD_ID , ( unsigned long long ) from_node ) ;
if ( md - > served_nodes ) {
if ( md - > served_nodes ) {
struct ll_entry * e = queue_find_data_by_index ( md - > served_nodes , & from_node ) ;
struct ll_entry * e = queue_find_data_by_index ( md - > served_nodes , & from_node ) ;
@ -1223,19 +1223,19 @@ static void md_etcp_recv(struct ETCP_CONN* conn, struct ll_entry* entry) {
break ;
break ;
case MEDIA_SUBCMD_BLOCK_PROCESSING :
case MEDIA_SUBCMD_BLOCK_PROCESSING :
if ( md - > is_supernode ) md_handle_block_processing ( md , from_node , data , len ) ;
if ( md - > is_supernode ) md_handle_block_processing ( md , from_node , data , len ) ;
else DEBUG_WARN ( DEBUG_CATEGORY_DEBUG , " %s: BLOCK_PROCESSING ignored — not supernode " , MD_ID ) ;
else DEBUG_WARN ( DEBUG_CATEGORY_MEDIA , " %s: BLOCK_PROCESSING ignored — not supernode " , MD_ID ) ;
break ;
break ;
case MEDIA_SUBCMD_SUPER_REPL :
case MEDIA_SUBCMD_SUPER_REPL :
if ( md - > is_supernode ) md_handle_super_repl ( md , from_node , data , len ) ;
if ( md - > is_supernode ) md_handle_super_repl ( md , from_node , data , len ) ;
else DEBUG_WARN ( DEBUG_CATEGORY_DEBUG , " %s: SUPER_REPL ignored — not supernode " , MD_ID ) ;
else DEBUG_WARN ( DEBUG_CATEGORY_MEDIA , " %s: SUPER_REPL ignored — not supernode " , MD_ID ) ;
break ;
break ;
case MEDIA_SUBCMD_SUPER_ACK :
case MEDIA_SUBCMD_SUPER_ACK :
if ( md - > is_supernode ) md_handle_super_ack ( md , from_node , data , len ) ;
if ( md - > is_supernode ) md_handle_super_ack ( md , from_node , data , len ) ;
else DEBUG_WARN ( DEBUG_CATEGORY_DEBUG , " %s: SUPER_ACK ignored — not supernode " , MD_ID ) ;
else DEBUG_WARN ( DEBUG_CATEGORY_MEDIA , " %s: SUPER_ACK ignored — not supernode " , MD_ID ) ;
break ;
break ;
case MEDIA_SUBCMD_SUPER_HELLO :
case MEDIA_SUBCMD_SUPER_HELLO :
if ( md - > is_supernode ) md_handle_super_hello ( md , from_node , data , len ) ;
if ( md - > is_supernode ) md_handle_super_hello ( md , from_node , data , len ) ;
else DEBUG_WARN ( DEBUG_CATEGORY_DEBUG , " %s: SUPER_HELLO ignored — not supernode " , MD_ID ) ;
else DEBUG_WARN ( DEBUG_CATEGORY_MEDIA , " %s: SUPER_HELLO ignored — not supernode " , MD_ID ) ;
break ;
break ;
case MEDIA_SUBCMD_QUERY_RESP :
case MEDIA_SUBCMD_QUERY_RESP :
media_download_handle_query_resp ( inst , data , len ) ;
media_download_handle_query_resp ( inst , data , len ) ;
@ -1264,7 +1264,7 @@ static void md_etcp_recv(struct ETCP_CONN* conn, struct ll_entry* entry) {
/* TODO: handle cancel from remote */
/* TODO: handle cancel from remote */
break ;
break ;
default :
default :
DEBUG_WARN ( DEBUG_CATEGORY_DEBUG , " %s: unknown subcmd 0x%02x from 0x%016llx " ,
DEBUG_WARN ( DEBUG_CATEGORY_MEDIA , " %s: unknown subcmd 0x%02x from 0x%016llx " ,
MD_ID , subcmd , ( unsigned long long ) from_node ) ;
MD_ID , subcmd , ( unsigned long long ) from_node ) ;
}
}
}
}