diff --git a/dap_stream_ch_chain.c b/dap_stream_ch_chain.c index fe3e49372e18228dd22a6a3f9dc55dad9d4888af..7acd51cc4c5c73fb42be3ea050be3847fbe8fd61 100755 --- a/dap_stream_ch_chain.c +++ b/dap_stream_ch_chain.c @@ -113,6 +113,15 @@ void s_stream_ch_packet_in(dap_stream_ch_t* a_ch , void* a_arg) size_t l_chain_pkt_data_size = l_ch_pkt->hdr.size - sizeof (l_chain_pkt->hdr); if( l_chain_pkt ){ switch ( l_ch_pkt->hdr.type ) { + case DAP_STREAM_CH_CHAIN_PKT_TYPE_SYNCED_ALL:{ + log_it(L_INFO, "In: SYNCED_ALL pkt"); + }break; + case DAP_STREAM_CH_CHAIN_PKT_TYPE_SYNCED_GLOBAL_DB:{ + log_it(L_INFO, "In: SYNCED_GLOBAL_DB pkt"); + }break; + case DAP_STREAM_CH_CHAIN_PKT_TYPE_SYNCED_CHAINS:{ + log_it(L_INFO, "In: SYNCED_CHAINS pkt"); + }break; case DAP_STREAM_CH_CHAIN_PKT_TYPE_SYNC_CHAINS:{ log_it(L_INFO, "In: SYNC_CHAINS pkt"); dap_chain_t * l_chain = dap_chain_find_by_id(l_chain_pkt->hdr.net_id, l_chain_pkt->hdr.chain_id); @@ -174,14 +183,17 @@ void s_stream_ch_packet_in(dap_stream_ch_t* a_ch , void* a_arg) dap_list_t *l_last = dap_list_last(l_list); if ( l_last) l_last->next = l_ch_chain->request_global_db_trs; - l_ch_chain->request_global_db_trs = l_list; l_ch_chain->request_global_db_trs = l_list; + l_ch_chain->request_global_db_trs = l_list; l_ch_chain->state = CHAIN_STATE_SYNC_GLOBAL_DB; }else { dap_stream_ch_chain_sync_request_t l_request = {{0}}; l_request.ts_start = dap_db_log_get_last_timestamp_remote(l_ch_chain->request.node_addr.uint64); - dap_stream_ch_pkt_write(a_ch, DAP_STREAM_CH_CHAIN_PKT_TYPE_SYNCED_GLOBAL_DB ,&l_request, - sizeof (l_request)); + dap_stream_ch_chain_pkt_write(a_ch, DAP_STREAM_CH_CHAIN_PKT_TYPE_SYNCED_GLOBAL_DB, + l_ch_chain->request_net_id, l_ch_chain->request_chain_id, + l_ch_chain->request_cell_id, &l_request, sizeof(l_request)); +// dap_stream_ch_pkt_write(a_ch, DAP_STREAM_CH_CHAIN_PKT_TYPE_SYNCED_GLOBAL_DB ,&l_request, +// sizeof (l_request)); l_ch_chain->state = CHAIN_STATE_IDLE; if (l_ch_chain->callback_notify_packet_out ) l_ch_chain->callback_notify_packet_out(l_ch_chain,DAP_STREAM_CH_CHAIN_PKT_TYPE_SYNCED_GLOBAL_DB, @@ -266,7 +278,7 @@ void s_stream_ch_packet_in(dap_stream_ch_t* a_ch , void* a_arg) default: log_it(L_INFO, "Get %s packet", c_dap_stream_ch_chain_pkt_type_str[l_ch_pkt->hdr.type ]); } if (l_ch_chain->callback_notify_packet_in ) - l_ch_chain->callback_notify_packet_in(l_ch_chain, l_ch_pkt->hdr.type,l_chain_pkt,l_ch_pkt->hdr.size, + l_ch_chain->callback_notify_packet_in(l_ch_chain, l_ch_pkt->hdr.type, l_chain_pkt, l_chain_pkt_data_size,//l_ch_pkt->hdr.size, l_ch_chain->callback_notify_arg) ; } } @@ -334,8 +346,11 @@ void s_stream_ch_packet_out(dap_stream_ch_t* a_ch , void* a_arg) // last message dap_stream_ch_chain_sync_request_t l_request = {{0}}; l_request.ts_start = dap_db_log_get_last_timestamp_remote(l_ch_chain->request.node_addr.uint64); - dap_stream_ch_pkt_write(a_ch, DAP_STREAM_CH_CHAIN_PKT_TYPE_SYNCED_GLOBAL_DB ,&l_request, - sizeof (l_request)); + dap_stream_ch_chain_pkt_write(a_ch, DAP_STREAM_CH_CHAIN_PKT_TYPE_SYNCED_GLOBAL_DB, + l_ch_chain->request_net_id, l_ch_chain->request_chain_id, + l_ch_chain->request_cell_id, &l_request, sizeof(l_request)); +// dap_stream_ch_pkt_write(a_ch, DAP_STREAM_CH_CHAIN_PKT_TYPE_SYNCED_GLOBAL_DB ,&l_request, +// sizeof (l_request)); l_ch_chain->state = CHAIN_STATE_IDLE; if (l_ch_chain->callback_notify_packet_out ) l_ch_chain->callback_notify_packet_out(l_ch_chain,DAP_STREAM_CH_CHAIN_PKT_TYPE_SYNCED_GLOBAL_DB, @@ -405,7 +420,10 @@ void s_stream_ch_packet_out(dap_stream_ch_t* a_ch , void* a_arg) }break; } if ( l_ch_chain->state == CHAIN_STATE_SYNC_ALL) { - dap_stream_ch_pkt_write(a_ch, DAP_STREAM_CH_CHAIN_PKT_TYPE_SYNCED_GLOBAL_DB ,NULL,0); + dap_stream_ch_chain_pkt_write(a_ch, DAP_STREAM_CH_CHAIN_PKT_TYPE_SYNCED_GLOBAL_DB, + l_ch_chain->request_net_id, l_ch_chain->request_chain_id, + l_ch_chain->request_cell_id, NULL,0); +// dap_stream_ch_pkt_write(a_ch, DAP_STREAM_CH_CHAIN_PKT_TYPE_SYNCED_GLOBAL_DB ,NULL,0); dap_stream_ch_set_ready_to_write(a_ch, true); l_ch_chain->state = CHAIN_STATE_IDLE; if (l_ch_chain->callback_notify_packet_out ) diff --git a/dap_stream_ch_chain_pkt.h b/dap_stream_ch_chain_pkt.h index f50fe50e7f0fee4e44b83a9156f2e706a1df5ba3..122ae958471d7dfa2ae32d95aa2da1dbb6ae86e0 100755 --- a/dap_stream_ch_chain_pkt.h +++ b/dap_stream_ch_chain_pkt.h @@ -47,7 +47,7 @@ #define DAP_STREAM_CH_CHAIN_PKT_TYPE_ERROR 0xff -typedef union dap_stream_ch_chain_sync_request{ +typedef struct dap_stream_ch_chain_sync_request{ dap_chain_node_addr_t node_addr; // Requesting node's address dap_chain_hash_fast_t hash_from; dap_chain_hash_fast_t hash_to;