diff options
-rw-r--r-- | file.c | 10 | ||||
-rw-r--r-- | sharkd.c | 8 | ||||
-rw-r--r-- | tshark.c | 8 |
3 files changed, 12 insertions, 14 deletions
@@ -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); @@ -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); @@ -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); |