static tap_packet_status mtp3_summary_packet( void *tapdata, packet_info *, epan_dissect_t *, const void *data) { mtp3_stat_t (*stat_p)[MTP3_MAX_NUM_OPC_DPC] = (mtp3_stat_t(*)[MTP3_MAX_NUM_OPC_DPC])tapdata; const mtp3_tap_rec_t *data_p = (const mtp3_tap_rec_t *)data; size_t i; if (data_p->mtp3_si_code >= MTP3_NUM_SI_CODE) { /* * we thought this si_code was not used ? * is MTP3_NUM_SI_CODE out of date ? * XXX - if this is an error, report it and return TAP_PACKET_FAILED. */ return(TAP_PACKET_DONT_REDRAW); } /* * look for opc/dpc pair */ i = 0; while (i < mtp3_num_used) { if (memcmp(&data_p->addr_opc, &(*stat_p)[i].addr_opc, sizeof(mtp3_addr_pc_t)) == 0) { if (memcmp(&data_p->addr_dpc, &(*stat_p)[i].addr_dpc, sizeof(mtp3_addr_pc_t)) == 0) { break; } } i++; } if (i == mtp3_num_used) { if (mtp3_num_used == MTP3_MAX_NUM_OPC_DPC) { /* * too many * XXX - report an error and return TAP_PACKET_FAILED? */ return(TAP_PACKET_DONT_REDRAW); } mtp3_num_used++; } (*stat_p)[i].addr_opc = data_p->addr_opc; (*stat_p)[i].addr_dpc = data_p->addr_dpc; (*stat_p)[i].mtp3_si_code[data_p->mtp3_si_code].num_msus++; (*stat_p)[i].mtp3_si_code[data_p->mtp3_si_code].size += data_p->size; return(TAP_PACKET_REDRAW); }
static gboolean mtp3_summary_packet( void *tapdata, packet_info *, epan_dissect_t *, const void *data) { mtp3_stat_t (*stat_p)[MTP3_MAX_NUM_OPC_DPC] = (mtp3_stat_t(*)[MTP3_MAX_NUM_OPC_DPC])tapdata; const mtp3_tap_rec_t *data_p = (const mtp3_tap_rec_t *)data; size_t i; if (data_p->mtp3_si_code >= MTP3_NUM_SI_CODE) { /* * we thought this si_code was not used ? * is MTP3_NUM_SI_CODE out of date ? */ return(FALSE); } /* * look for opc/dpc pair */ i = 0; while (i < mtp3_num_used) { if (memcmp(&data_p->addr_opc, &(*stat_p)[i].addr_opc, sizeof(mtp3_addr_pc_t)) == 0) { if (memcmp(&data_p->addr_dpc, &(*stat_p)[i].addr_dpc, sizeof(mtp3_addr_pc_t)) == 0) { break; } } i++; } if (i == mtp3_num_used) { if (mtp3_num_used == MTP3_MAX_NUM_OPC_DPC) { /* * too many */ return(FALSE); } mtp3_num_used++; } (*stat_p)[i].addr_opc = data_p->addr_opc; (*stat_p)[i].addr_dpc = data_p->addr_dpc; (*stat_p)[i].mtp3_si_code[data_p->mtp3_si_code].num_msus++; (*stat_p)[i].mtp3_si_code[data_p->mtp3_si_code].size += data_p->size; return(TRUE); }
static void mtp3_summary_reset( void *tapdata) { mtp3_stat_t (*stat_p)[MTP3_MAX_NUM_OPC_DPC] = (mtp3_stat_t(*)[MTP3_MAX_NUM_OPC_DPC])tapdata; mtp3_num_used = 0; memset(stat_p, 0, MTP3_MAX_NUM_OPC_DPC * sizeof(mtp3_stat_t)); }
static void mtp3_stat_reset( void *tapdata) { mtp3_stat_t (*stat_p)[MTP3_MAX_NUM_OPC_DPC] = (mtp3_stat_t(*)[MTP3_MAX_NUM_OPC_DPC])tapdata; mtp3_num_used = 0; memset(stat_p, 0, MTP3_MAX_NUM_OPC_DPC * sizeof(mtp3_stat_t)); if (dlg.win != NULL) { gtk_list_store_clear(GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(dlg.table)))); } }