/* adds IDB to merged file info, returns its index */ static guint add_idb_to_merged_file(wtapng_iface_descriptions_t *merged_idb_list, const wtap_optionblock_t input_file_idb) { wtap_optionblock_t idb = wtap_optionblock_create(WTAP_OPTION_BLOCK_IF_DESCR); wtapng_if_descr_mandatory_t* idb_mand; wtapng_if_descr_filter_t if_filter; g_assert(merged_idb_list != NULL); g_assert(merged_idb_list->interface_data != NULL); g_assert(input_file_idb != NULL); wtap_optionblock_copy_options(idb, input_file_idb); idb_mand = (wtapng_if_descr_mandatory_t*)wtap_optionblock_get_mandatory_data(idb); /* Don't copy filter or stat information */ memset(&if_filter, 0, sizeof(if_filter)); wtap_optionblock_set_option_custom(idb, OPT_IDB_FILTER, &if_filter); idb_mand->num_stat_entries = 0; /* Number of ISB:s */ idb_mand->interface_statistics = NULL; g_array_append_val(merged_idb_list->interface_data, idb); return merged_idb_list->interface_data->len - 1; }
GArray* wtap_file_get_nrb_for_new_file(wtap *wth) { guint nrb_count; wtap_optionblock_t nrb_hdr_src, nrb_hdr_dest; GArray* nrb_hdrs; if ((wth == NULL || wth->nrb_hdrs == NULL) || (wth->nrb_hdrs->len == 0)) return NULL; nrb_hdrs = g_array_new(FALSE, FALSE, sizeof(wtap_optionblock_t)); for (nrb_count = 0; nrb_count < wth->nrb_hdrs->len; nrb_count++) { nrb_hdr_src = g_array_index(wth->nrb_hdrs, wtap_optionblock_t, nrb_count); nrb_hdr_dest = wtap_optionblock_create(WTAP_OPTION_BLOCK_NG_NRB); wtap_optionblock_copy_options(nrb_hdr_dest, nrb_hdr_src); g_array_append_val(nrb_hdrs, nrb_hdr_dest); } return nrb_hdrs; }
GArray* wtap_file_get_shb_for_new_file(wtap *wth) { guint shb_count; wtap_optionblock_t shb_hdr_src, shb_hdr_dest; GArray* shb_hdrs; if ((wth == NULL) || (wth->shb_hdrs == NULL) || (wth->shb_hdrs->len == 0)) return NULL; shb_hdrs = g_array_new(FALSE, FALSE, sizeof(wtap_optionblock_t)); for (shb_count = 0; shb_count < wth->shb_hdrs->len; shb_count++) { shb_hdr_src = g_array_index(wth->shb_hdrs, wtap_optionblock_t, shb_count); shb_hdr_dest = wtap_optionblock_create(WTAP_OPTION_BLOCK_NG_SECTION); wtap_optionblock_copy_options(shb_hdr_dest, shb_hdr_src); g_array_append_val(shb_hdrs, shb_hdr_dest); } return shb_hdrs; }