aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--file.c10
-rw-r--r--sharkd.c8
-rw-r--r--tshark.c8
3 files changed, 12 insertions, 14 deletions
diff --git a/file.c b/file.c
index 6768395303..a61f709bce 100644
--- a/file.c
+++ b/file.c
@@ -267,11 +267,6 @@ cf_open(capture_file *cf, const char *fname, unsigned int type, gboolean is_temp
the packets, so we know how much we'll ultimately need. */
ws_buffer_init(&cf->buf, 1500);
- /* Create new epan session for dissection.
- * (The old one was freed in cf_close().)
- */
- cf->epan = ws_epan_new(cf);
-
/* We're about to start reading the file. */
cf->state = FILE_READ_IN_PROGRESS;
@@ -313,6 +308,11 @@ cf_open(capture_file *cf, const char *fname, unsigned int type, gboolean is_temp
cf->provider.prev_cap = NULL;
cf->cum_bytes = 0;
+ /* Create new epan session for dissection.
+ * (The old one was freed in cf_close().)
+ */
+ cf->epan = ws_epan_new(cf);
+
packet_list_queue_draw();
cf_callback_invoke(cf_cb_file_opened, cf);
diff --git a/sharkd.c b/sharkd.c
index fcc6160f1d..98ce2fc603 100644
--- a/sharkd.c
+++ b/sharkd.c
@@ -413,10 +413,6 @@ cf_open(capture_file *cf, const char *fname, unsigned int type, gboolean is_temp
/* The open succeeded. Fill in the information for this file. */
- /* Create new epan session for dissection. */
- epan_free(cf->epan);
- cf->epan = sharkd_epan_new(cf);
-
cf->provider.wth = wth;
cf->f_datalen = 0; /* not used, but set it anyway */
@@ -442,6 +438,10 @@ cf_open(capture_file *cf, const char *fname, unsigned int type, gboolean is_temp
cf->provider.prev_dis = NULL;
cf->provider.prev_cap = NULL;
+ /* Create new epan session for dissection. */
+ epan_free(cf->epan);
+ cf->epan = sharkd_epan_new(cf);
+
cf->state = FILE_READ_IN_PROGRESS;
wtap_set_cb_new_ipv4(cf->provider.wth, add_ipv4_name);
diff --git a/tshark.c b/tshark.c
index bcbe68530d..4b5f451653 100644
--- a/tshark.c
+++ b/tshark.c
@@ -4064,10 +4064,6 @@ cf_open(capture_file *cf, const char *fname, unsigned int type, gboolean is_temp
/* The open succeeded. Fill in the information for this file. */
- /* Create new epan session for dissection. */
- epan_free(cf->epan);
- cf->epan = tshark_epan_new(cf);
-
cf->provider.wth = wth;
cf->f_datalen = 0; /* not used, but set it anyway */
@@ -4093,7 +4089,9 @@ cf_open(capture_file *cf, const char *fname, unsigned int type, gboolean is_temp
cf->provider.prev_dis = NULL;
cf->provider.prev_cap = NULL;
- cf->state = FILE_READ_IN_PROGRESS;
+ /* Create new epan session for dissection. */
+ epan_free(cf->epan);
+ cf->epan = tshark_epan_new(cf);
wtap_set_cb_new_ipv4(cf->provider.wth, add_ipv4_name);
wtap_set_cb_new_ipv6(cf->provider.wth, (wtap_new_ipv6_callback_t) add_ipv6_name);