}
/* read in the packet data */
- switch (cf_read(capture_opts->cf)) {
+ switch (cf_read(capture_opts->cf, FALSE)) {
case CF_READ_OK:
case CF_READ_ERROR:
}
cf_read_status_t
-cf_read(capture_file *cf)
+cf_read(capture_file *cf, gboolean from_save)
{
int err;
gchar *err_info;
reset_tap_listeners();
- cf_callback_invoke(cf_cb_file_read_start, cf);
-
name_ptr = get_basename(cf->filename);
+ if (from_save == FALSE)
+ cf_callback_invoke(cf_cb_file_read_started, cf);
+ else
+ cf_callback_invoke(cf_cb_file_save_started, (gpointer)name_ptr);
+
/* Find the size of the file. */
size = wtap_file_size(cf->wth, NULL);
*/
if ((progbar == NULL) && !(count % MIN_NUMBER_OF_PACKET)){
progbar_val = calc_progbar_val( cf, size, data_offset);
- progbar = delayed_create_progress_dlg("Loading", name_ptr,
- TRUE, &stop_flag, &start_time, progbar_val);
+ if (from_save == FALSE)
+ progbar = delayed_create_progress_dlg("Loading", name_ptr,
+ TRUE, &stop_flag, &start_time, progbar_val);
+ else
+ progbar = delayed_create_progress_dlg("Saving", name_ptr,
+ TRUE, &stop_flag, &start_time, progbar_val);
}
/* Update the progress bar, but do it only N_PROGBAR_UPDATES times;
#else
packet_list_thaw();
#endif
-
- cf_callback_invoke(cf_cb_file_read_finished, cf);
+ if (from_save == FALSE)
+ cf_callback_invoke(cf_cb_file_read_finished, cf);
+ else
+ cf_callback_invoke(cf_cb_file_save_finished, cf);
/* If we have any displayed packets to select, select the first of those
packets by making the first row the selected row. */
wtap_dumper *pdh;
save_callback_args_t callback_args;
- cf_callback_invoke(cf_cb_file_safe_started, (gpointer) fname);
+ cf_callback_invoke(cf_cb_file_save_started, (gpointer)fname);
/* don't write over an existing file. */
/* this should've been already checked by our caller, just to be sure... */
packet_range_process_init(range);
-
if (packet_range_process_all(range) && save_format == cf->cd_t) {
/* We're not filtering packets, and we're saving it in the format
it's already in, so we can just move or copy the raw data. */
}
}
- cf_callback_invoke(cf_cb_file_safe_finished, NULL);
+ cf_callback_invoke(cf_cb_file_save_finished, NULL);
if (packet_range_process_all(range)) {
/* We saved the entire capture, not just some packets from it.
if ((cf_open(cf, fname, FALSE, &err)) == CF_OK) {
/* XXX - report errors if this fails?
What should we return if it fails or is aborted? */
- switch (cf_read(cf)) {
+
+ switch (cf_read(cf, TRUE)) {
case CF_READ_OK:
case CF_READ_ERROR:
correctly for the "no capture file open" state). */
break;
}
- cf_callback_invoke(cf_cb_file_safe_reload_finished, NULL);
+ cf_callback_invoke(cf_cb_file_save_reload_finished, NULL);
}
}
return CF_OK;
fail:
- cf_callback_invoke(cf_cb_file_safe_failed, NULL);
+ cf_callback_invoke(cf_cb_file_save_failed, NULL);
return CF_ERROR;
}
is_tempfile = cf->is_tempfile;
cf->is_tempfile = FALSE;
if (cf_open(cf, filename, is_tempfile, &err) == CF_OK) {
- switch (cf_read(cf)) {
+ switch (cf_read(cf, FALSE)) {
case CF_READ_OK:
case CF_READ_ERROR:
typedef enum {
cf_cb_file_closing,
cf_cb_file_closed,
- cf_cb_file_read_start,
+ cf_cb_file_read_started,
cf_cb_file_read_finished,
cf_cb_packet_selected,
cf_cb_packet_unselected,
cf_cb_field_unselected,
- cf_cb_file_safe_started,
- cf_cb_file_safe_finished,
- cf_cb_file_safe_reload_finished,
- cf_cb_file_safe_failed
+ cf_cb_file_save_started,
+ cf_cb_file_save_finished,
+ cf_cb_file_save_reload_finished,
+ cf_cb_file_save_failed
} cf_cbs;
typedef void (*cf_callback_t) (gint event, gpointer data, gpointer user_data);
* Read all packets of a capture file into the internal structures.
*
* @param cf the capture file to be read
+ * @param from_save reread asked from cf_save
* @return one of cf_read_status_t
*/
-cf_read_status_t cf_read(capture_file *cf);
+cf_read_status_t cf_read(capture_file *cf, gboolean from_save);
/**
* Start reading from the end of a capture file.
/* We've crossed the Rubicon; get rid of the file selection box. */
window_destroy(GTK_WIDGET (fs));
- switch (cf_read(&cfile)) {
+ switch (cf_read(&cfile, FALSE)) {
case CF_READ_OK:
case CF_READ_ERROR:
previous read filter attached to "cf"). */
cfile.rfcode = rfcode;
- switch (cf_read(&cfile)) {
+ switch (cf_read(&cfile, FALSE)) {
case CF_READ_OK:
case CF_READ_ERROR:
}
g_free(tmpname);
- switch (cf_read(&cfile)) {
+ switch (cf_read(&cfile, FALSE)) {
case CF_READ_OK:
case CF_READ_ERROR:
/* open and read the capture file (this will close an existing file) */
if (cf_open(&cfile, in_filenames[0], FALSE, &err) == CF_OK) {
/* XXX - add this to the menu if the read fails? */
- cf_read(&cfile);
+ cf_read(&cfile, FALSE);
add_menu_recent_capture_file(in_filenames[0]);
} else {
/* the capture file couldn't be read (doesn't exist, file format unknown, ...) */
cf_set_rfcode(&cfile, dfp);
}
- switch (cf_read(&cfile)) {
+ switch (cf_read(&cfile, FALSE)) {
case CF_READ_OK:
case CF_READ_ERROR:
dirname = get_dirname(utf_16to8(file_name));
cf_set_rfcode(&cfile, dfp);
}
- switch (cf_read(&cfile)) {
+ switch (cf_read(&cfile, FALSE)) {
case CF_READ_OK:
case CF_READ_ERROR:
dirname = get_dirname(utf_16to8(file_name));
/* close the old and open the new file */
cf_close(&cfile);
if (cf_open(&cfile, fname, FALSE, &err) == CF_OK) {
- cf_read(&cfile);
+ cf_read(&cfile, FALSE);
}
g_free(fname);
cfile.rfcode = rfcode;
- switch (cf_read(&cfile)) {
+ switch (cf_read(&cfile, FALSE)) {
case CF_READ_OK:
case CF_READ_ERROR:
break;
static void
-main_cf_cb_file_read_start(capture_file *cf _U_)
+main_cf_cb_file_read_started(capture_file *cf _U_)
{
tap_dfilter_dlg_update();
}
static void
-main_cf_cb_file_safe_reload_finished(gpointer data _U_)
+main_cf_cb_file_save_reload_finished(gpointer data _U_)
{
set_menus_for_capture_file(&cfile);
}
g_log(LOG_DOMAIN_MAIN, G_LOG_LEVEL_DEBUG, "Callback: Closed");
main_cf_cb_file_closed(data);
break;
- case(cf_cb_file_read_start):
- g_log(LOG_DOMAIN_MAIN, G_LOG_LEVEL_DEBUG, "Callback: Read start");
- main_cf_cb_file_read_start(data);
+ case(cf_cb_file_read_started):
+ g_log(LOG_DOMAIN_MAIN, G_LOG_LEVEL_DEBUG, "Callback: Read started");
+ main_cf_cb_file_read_started(data);
break;
case(cf_cb_file_read_finished):
g_log(LOG_DOMAIN_MAIN, G_LOG_LEVEL_DEBUG, "Callback: Read finished");
case(cf_cb_field_unselected):
main_cf_cb_field_unselected(data);
break;
- case(cf_cb_file_safe_started):
- g_log(LOG_DOMAIN_MAIN, G_LOG_LEVEL_DEBUG, "Callback: safe started");
+ case(cf_cb_file_save_started):
+ g_log(LOG_DOMAIN_MAIN, G_LOG_LEVEL_DEBUG, "Callback: Save started");
break;
- case(cf_cb_file_safe_finished):
- g_log(LOG_DOMAIN_MAIN, G_LOG_LEVEL_DEBUG, "Callback: safe finished");
+ case(cf_cb_file_save_finished):
+ g_log(LOG_DOMAIN_MAIN, G_LOG_LEVEL_DEBUG, "Callback: Save finished");
break;
- case(cf_cb_file_safe_reload_finished):
- g_log(LOG_DOMAIN_MAIN, G_LOG_LEVEL_DEBUG, "Callback: reload finished");
- main_cf_cb_file_safe_reload_finished(data);
+ case(cf_cb_file_save_reload_finished):
+ g_log(LOG_DOMAIN_MAIN, G_LOG_LEVEL_DEBUG, "Callback: Reload finished");
+ main_cf_cb_file_save_reload_finished(data);
break;
- case(cf_cb_file_safe_failed):
- g_log(LOG_DOMAIN_MAIN, G_LOG_LEVEL_DEBUG, "Callback: safe failed");
+ case(cf_cb_file_save_failed):
+ g_log(LOG_DOMAIN_MAIN, G_LOG_LEVEL_DEBUG, "Callback: Save failed");
break;
default:
g_warning("main_cf_callback: event %u unknown", event);
start_requested_stats();
/* Read the capture file. */
- switch (cf_read(&cfile)) {
+ switch (cf_read(&cfile, FALSE)) {
case CF_READ_OK:
case CF_READ_ERROR:
static void
-statusbar_cf_file_read_start_cb(capture_file *cf)
+statusbar_cf_file_read_started_cb(capture_file *cf)
{
const gchar *name_ptr;
gchar *load_msg;
}
static void
-statusbar_cf_file_safe_started_cb(gchar * filename)
+statusbar_cf_file_save_started_cb(gchar *filename)
{
gchar *save_msg;
+ statusbar_pop_file_msg();
save_msg = g_strdup_printf(" Saving: %s...", get_basename(filename));
statusbar_push_file_msg(save_msg);
g_free(save_msg);
}
static void
-statusbar_cf_file_safe_finished_cb(gpointer data _U_)
+statusbar_cf_file_save_finished_cb(gpointer data _U_)
{
/* Pop the "Saving:" message off the status bar. */
statusbar_pop_file_msg();
}
static void
-statusbar_cf_file_safe_failed_cb(gpointer data _U_)
+statusbar_cf_file_save_failed_cb(gpointer data _U_)
{
/* Pop the "Saving:" message off the status bar. */
statusbar_pop_file_msg();
case(cf_cb_file_closed):
statusbar_cf_file_closed_cb(data);
break;
- case(cf_cb_file_read_start):
- statusbar_cf_file_read_start_cb(data);
+ case(cf_cb_file_read_started):
+ statusbar_cf_file_read_started_cb(data);
break;
case(cf_cb_file_read_finished):
statusbar_cf_file_read_finished_cb(data);
case(cf_cb_field_unselected):
statusbar_cf_field_unselected_cb(data);
break;
- case(cf_cb_file_safe_started):
- statusbar_cf_file_safe_started_cb(data);
+ case(cf_cb_file_save_started):
+ statusbar_cf_file_save_started_cb(data);
break;
- case(cf_cb_file_safe_finished):
- statusbar_cf_file_safe_finished_cb(data);
+ case(cf_cb_file_save_finished):
+ statusbar_cf_file_save_finished_cb(data);
break;
- case(cf_cb_file_safe_reload_finished):
+ case(cf_cb_file_save_reload_finished):
break;
- case(cf_cb_file_safe_failed):
- statusbar_cf_file_safe_failed_cb(data);
+ case(cf_cb_file_save_failed):
+ statusbar_cf_file_save_failed_cb(data);
break;
default:
g_warning("statusbar_cf_callback: event %u unknown", event);
/* open and read the capture file (this will close an existing file) */
if (cf_open(&cfile, cf_name, FALSE, &err) == CF_OK) {
- cf_read(&cfile);
+ cf_read(&cfile, FALSE);
} else {
/* the capture file apparently no longer exists; remove menu item */
/* XXX: ask user to remove item, it's maybe only a temporary problem */
/* open and read the capture file (this will close an existing file) */
if (cf_open(&cfile, cf_name, FALSE, &err) == CF_OK) {
- cf_read(&cfile);
+ cf_read(&cfile, FALSE);
} else {
/* the capture file apparently no longer exists; remove menu item */
/* XXX: ask user to remove item, it's maybe only a temporary problem */