diff options
author | Guy Harris <guy@alum.mit.edu> | 2017-12-03 19:18:38 -0800 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2017-12-04 03:20:45 +0000 |
commit | 02944c412b4d9d7661c0a2b3eb9df44d632878ee (patch) | |
tree | 9921ef1a3789198a8c9834e093aaf53c0da661a6 | |
parent | 461c8a7b44a2853d2ad3ae3d0586b4f21b9feab8 (diff) | |
download | wireshark-02944c412b4d9d7661c0a2b3eb9df44d632878ee.tar.gz wireshark-02944c412b4d9d7661c0a2b3eb9df44d632878ee.tar.bz2 wireshark-02944c412b4d9d7661c0a2b3eb9df44d632878ee.zip |
Use cfile fields for some frame_data pointers.
Those fields weren't being used in TShark/TFShark/rawshark/sharkd, so we
can use them, instead of defining our own static variables.
This makes the non-Wireshark code paths a bit more like the Wireshark
code paths.
Change-Id: I55da4cf525e37598f314efca22f20d3e80cb547c
Reviewed-on: https://code.wireshark.org/review/24691
Reviewed-by: Guy Harris <guy@alum.mit.edu>
-rw-r--r-- | rawshark.c | 36 | ||||
-rw-r--r-- | sharkd.c | 37 | ||||
-rw-r--r-- | tfshark.c | 57 | ||||
-rw-r--r-- | tshark.c | 57 |
4 files changed, 88 insertions, 99 deletions
diff --git a/rawshark.c b/rawshark.c index b84f191eb7..5f8030ee7f 100644 --- a/rawshark.c +++ b/rawshark.c @@ -117,12 +117,11 @@ static const gchar decode_as_arg_template[] = "<layer_type>==<selector>,<decode_ #define OPEN_ERROR 2 #define FORMAT_ERROR 2 +capture_file cfile; + static guint32 cum_bytes; -static const frame_data *ref; static frame_data ref_frame; -static frame_data *prev_dis; static frame_data prev_dis_frame; -static frame_data *prev_cap; static frame_data prev_cap_frame; /* @@ -167,7 +166,6 @@ typedef struct string_fmt_s { string_fmt_e format; /* Valid if plain is NULL */ } string_fmt_t; -capture_file cfile; int n_rfilters; int n_rfcodes; dfilter_t *rfcodes[64]; @@ -1030,11 +1028,11 @@ process_packet(capture_file *cf, epan_dissect_t *edt, gint64 offset, printf("%lu", (unsigned long int) cf->count); frame_data_set_before_dissect(&fdata, &cf->elapsed_time, - &ref, prev_dis); + &cf->ref, cf->prev_dis); - if (ref == &fdata) { + if (cf->ref == &fdata) { ref_frame = fdata; - ref = &ref_frame; + cf->ref = &ref_frame; } /* We only need the columns if we're printing packet info but we're @@ -1044,10 +1042,10 @@ process_packet(capture_file *cf, epan_dissect_t *edt, gint64 offset, frame_data_set_after_dissect(&fdata, &cum_bytes); prev_dis_frame = fdata; - prev_dis = &prev_dis_frame; + cf->prev_dis = &prev_dis_frame; prev_cap_frame = fdata; - prev_cap = &prev_cap_frame; + cf->prev_cap = &prev_cap_frame; for(i = 0; i < n_rfilters; i++) { /* Run the read filter if we have one. */ @@ -1466,16 +1464,16 @@ open_failure_message(const char *filename, int err, gboolean for_writing) } static const nstime_t * -raw_get_frame_ts(capture_file *cf _U_, guint32 frame_num) +raw_get_frame_ts(capture_file *cf, guint32 frame_num) { - if (ref && ref->num == frame_num) - return &ref->abs_ts; + if (cf->ref && cf->ref->num == frame_num) + return &cf->ref->abs_ts; - if (prev_dis && prev_dis->num == frame_num) - return &prev_dis->abs_ts; + if (cf->prev_dis && cf->prev_dis->num == frame_num) + return &cf->prev_dis->abs_ts; - if (prev_cap && prev_cap->num == frame_num) - return &prev_cap->abs_ts; + if (cf->prev_cap && cf->prev_cap->num == frame_num) + return &cf->prev_cap->abs_ts; return NULL; } @@ -1527,9 +1525,9 @@ raw_cf_open(capture_file *cf, const char *fname) cf->drops = 0; cf->snap = 0; nstime_set_zero(&cf->elapsed_time); - ref = NULL; - prev_dis = NULL; - prev_cap = NULL; + cf->ref = NULL; + cf->prev_dis = NULL; + cf->prev_cap = NULL; return CF_OK; } @@ -70,11 +70,10 @@ #define INIT_FAILED 1 #define EPAN_INIT_FAIL 2 +capture_file cfile; + static guint32 cum_bytes; -static const frame_data *ref; static frame_data ref_frame; -static frame_data *prev_dis; -static frame_data *prev_cap; static void failure_warning_message(const char *msg_format, va_list ap); static void open_failure_message(const char *filename, int err, @@ -83,8 +82,6 @@ static void read_failure_message(const char *filename, int err); static void write_failure_message(const char *filename, int err); static void failure_message_cont(const char *msg_format, va_list ap); -capture_file cfile; - static void print_current_user(void) { gchar *cur_user, *cur_group; @@ -226,14 +223,14 @@ clean_exit: static const nstime_t * sharkd_get_frame_ts(capture_file *cf, guint32 frame_num) { - if (ref && ref->num == frame_num) - return &ref->abs_ts; + if (cf->ref && cf->ref->num == frame_num) + return &cf->ref->abs_ts; - if (prev_dis && prev_dis->num == frame_num) - return &prev_dis->abs_ts; + if (cf->prev_dis && cf->prev_dis->num == frame_num) + return &cf->prev_dis->abs_ts; - if (prev_cap && prev_cap->num == frame_num) - return &prev_cap->abs_ts; + if (cf->prev_cap && cf->prev_cap->num == frame_num) + return &cf->prev_cap->abs_ts; if (cf->frames) { frame_data *fd = frame_data_sequence_find(cf->frames, frame_num); @@ -300,10 +297,10 @@ process_packet(capture_file *cf, epan_dissect_t *edt, prime_epan_dissect_with_postdissector_wanted_hfids(edt); frame_data_set_before_dissect(&fdlocal, &cf->elapsed_time, - &ref, prev_dis); - if (ref == &fdlocal) { + &cf->ref, cf->prev_dis); + if (cf->ref == &fdlocal) { ref_frame = fdlocal; - ref = &ref_frame; + cf->ref = &ref_frame; } epan_dissect_run(edt, cf->cd_t, whdr, frame_tvbuff_new(&fdlocal, pd), &fdlocal, NULL); @@ -315,7 +312,7 @@ process_packet(capture_file *cf, epan_dissect_t *edt, if (passed) { frame_data_set_after_dissect(&fdlocal, &cum_bytes); - prev_cap = prev_dis = frame_data_sequence_add(cf->frames, &fdlocal); + cf->prev_cap = cf->prev_dis = frame_data_sequence_add(cf->frames, &fdlocal); /* If we're not doing dissection then there won't be any dependent frames. * More importantly, edt.pi.dependent_frames won't be initialized because @@ -404,8 +401,8 @@ load_cap_file(capture_file *cf, int max_packet_count, gint64 max_byte_count) * don't need after the sequential run-through of the packets. */ postseq_cleanup_all_protocols(); - prev_dis = NULL; - prev_cap = NULL; + cf->prev_dis = NULL; + cf->prev_cap = NULL; } if (err != 0) { @@ -452,9 +449,9 @@ cf_open(capture_file *cf, const char *fname, unsigned int type, gboolean is_temp cf->drops = 0; cf->snap = wtap_snapshot_length(cf->wth); nstime_set_zero(&cf->elapsed_time); - ref = NULL; - prev_dis = NULL; - prev_cap = NULL; + cf->ref = NULL; + cf->prev_dis = NULL; + cf->prev_cap = NULL; cf->state = FILE_READ_IN_PROGRESS; @@ -87,12 +87,11 @@ #define INVALID_FILTER 2 #define OPEN_ERROR 2 +capture_file cfile; + static guint32 cum_bytes; -static const frame_data *ref; static frame_data ref_frame; -static frame_data *prev_dis; static frame_data prev_dis_frame; -static frame_data *prev_cap; static frame_data prev_cap_frame; static gboolean prefs_loaded = FALSE; @@ -144,8 +143,6 @@ static void read_failure_message(const char *filename, int err); static void write_failure_message(const char *filename, int err); static void failure_message_cont(const char *msg_format, va_list ap); -capture_file cfile; - static GHashTable *output_only_tables = NULL; #if 0 @@ -1028,14 +1025,14 @@ clean_exit: static const nstime_t * tfshark_get_frame_ts(capture_file *cf, guint32 frame_num) { - if (ref && ref->num == frame_num) - return &ref->abs_ts; + if (cf->ref && cf->ref->num == frame_num) + return &cf->ref->abs_ts; - if (prev_dis && prev_dis->num == frame_num) - return &prev_dis->abs_ts; + if (cf->prev_dis && cf->prev_dis->num == frame_num) + return &cf->prev_dis->abs_ts; - if (prev_cap && prev_cap->num == frame_num) - return &prev_cap->abs_ts; + if (cf->prev_cap && cf->prev_cap->num == frame_num) + return &cf->prev_cap->abs_ts; if (cf->frames) { frame_data *fd = frame_data_sequence_find(cf->frames, frame_num); @@ -1099,10 +1096,10 @@ process_packet_first_pass(capture_file *cf, epan_dissect_t *edt, prime_epan_dissect_with_postdissector_wanted_hfids(edt); frame_data_set_before_dissect(&fdlocal, &cf->elapsed_time, - &ref, prev_dis); - if (ref == &fdlocal) { + &cf->ref, cf->prev_dis); + if (cf->ref == &fdlocal) { ref_frame = fdlocal; - ref = &ref_frame; + cf->ref = &ref_frame; } epan_dissect_file_run(edt, whdr, file_tvbuff_new(&fdlocal, pd), &fdlocal, NULL); @@ -1114,7 +1111,7 @@ process_packet_first_pass(capture_file *cf, epan_dissect_t *edt, if (passed) { frame_data_set_after_dissect(&fdlocal, &cum_bytes); - prev_cap = prev_dis = frame_data_sequence_add(cf->frames, &fdlocal); + cf->prev_cap = cf->prev_dis = frame_data_sequence_add(cf->frames, &fdlocal); /* If we're not doing dissection then there won't be any dependent frames. * More importantly, edt.pi.dependent_frames won't be initialized because @@ -1178,10 +1175,10 @@ process_packet_second_pass(capture_file *cf, epan_dissect_t *edt, cinfo = NULL; frame_data_set_before_dissect(fdata, &cf->elapsed_time, - &ref, prev_dis); - if (ref == fdata) { + &cf->ref, cf->prev_dis); + if (cf->ref == fdata) { ref_frame = *fdata; - ref = &ref_frame; + cf->ref = &ref_frame; } epan_dissect_file_run_with_taps(edt, phdr, file_tvbuff_new_buffer(fdata, buf), fdata, cinfo); @@ -1210,9 +1207,9 @@ process_packet_second_pass(capture_file *cf, epan_dissect_t *edt, return FALSE; } } - prev_dis = fdata; + cf->prev_dis = fdata; } - prev_cap = fdata; + cf->prev_cap = fdata; if (edt) { epan_dissect_reset(edt); @@ -1377,8 +1374,8 @@ process_file(capture_file *cf, int max_packet_count, gint64 max_byte_count) * don't need after the sequential run-through of the packets. */ postseq_cleanup_all_protocols(); - prev_dis = NULL; - prev_cap = NULL; + cf->prev_dis = NULL; + cf->prev_cap = NULL; ws_buffer_init(&buf, 1500); if (do_dissection) { @@ -1621,10 +1618,10 @@ process_packet_single_pass(capture_file *cf, epan_dissect_t *edt, gint64 offset, cinfo = NULL; frame_data_set_before_dissect(&fdata, &cf->elapsed_time, - &ref, prev_dis); - if (ref == &fdata) { + &cf->ref, cf->prev_dis); + if (cf->ref == &fdata) { ref_frame = fdata; - ref = &ref_frame; + cf->ref = &ref_frame; } epan_dissect_file_run_with_taps(edt, whdr, frame_tvbuff_new(&fdata, pd), &fdata, cinfo); @@ -1657,11 +1654,11 @@ process_packet_single_pass(capture_file *cf, epan_dissect_t *edt, gint64 offset, /* this must be set after print_packet() [bug #8160] */ prev_dis_frame = fdata; - prev_dis = &prev_dis_frame; + cf->prev_dis = &prev_dis_frame; } prev_cap_frame = fdata; - prev_cap = &prev_cap_frame; + cf->prev_cap = &prev_cap_frame; if (edt) { epan_dissect_reset(edt); @@ -2090,9 +2087,9 @@ cf_open(capture_file *cf, const char *fname, unsigned int type, gboolean is_temp cf->drops = 0; cf->snap = 0; /**** XXX - DOESN'T WORK RIGHT NOW!!!! */ nstime_set_zero(&cf->elapsed_time); - ref = NULL; - prev_dis = NULL; - prev_cap = NULL; + cf->ref = NULL; + cf->prev_dis = NULL; + cf->prev_cap = NULL; cf->state = FILE_READ_IN_PROGRESS; @@ -153,12 +153,11 @@ #define tshark_debug(...) #endif +capture_file cfile; + static guint32 cum_bytes; -static const frame_data *ref; static frame_data ref_frame; -static frame_data *prev_dis; static frame_data prev_dis_frame; -static frame_data *prev_cap; static frame_data prev_cap_frame; static gboolean perform_two_pass_analysis; @@ -253,8 +252,6 @@ static void read_failure_message(const char *filename, int err); static void write_failure_message(const char *filename, int err); static void failure_message_cont(const char *msg_format, va_list ap); -capture_file cfile; - static GHashTable *output_only_tables = NULL; struct string_elem { @@ -2348,14 +2345,14 @@ pipe_input_set_handler(gint source, gpointer user_data, ws_process_id *child_pro static const nstime_t * tshark_get_frame_ts(capture_file *cf, guint32 frame_num) { - if (ref && ref->num == frame_num) - return &ref->abs_ts; + if (cf->ref && cf->ref->num == frame_num) + return &cf->ref->abs_ts; - if (prev_dis && prev_dis->num == frame_num) - return &prev_dis->abs_ts; + if (cf->prev_dis && cf->prev_dis->num == frame_num) + return &cf->prev_dis->abs_ts; - if (prev_cap && prev_cap->num == frame_num) - return &prev_cap->abs_ts; + if (cf->prev_cap && cf->prev_cap->num == frame_num) + return &cf->prev_cap->abs_ts; if (cf->frames) { frame_data *fd = frame_data_sequence_find(cf->frames, frame_num); @@ -2911,10 +2908,10 @@ process_packet_first_pass(capture_file *cf, epan_dissect_t *edt, prime_epan_dissect_with_postdissector_wanted_hfids(edt); frame_data_set_before_dissect(&fdlocal, &cf->elapsed_time, - &ref, prev_dis); - if (ref == &fdlocal) { + &cf->ref, cf->prev_dis); + if (cf->ref == &fdlocal) { ref_frame = fdlocal; - ref = &ref_frame; + cf->ref = &ref_frame; } epan_dissect_run(edt, cf->cd_t, whdr, frame_tvbuff_new(&fdlocal, pd), &fdlocal, NULL); @@ -2926,7 +2923,7 @@ process_packet_first_pass(capture_file *cf, epan_dissect_t *edt, if (passed) { frame_data_set_after_dissect(&fdlocal, &cum_bytes); - prev_cap = prev_dis = frame_data_sequence_add(cf->frames, &fdlocal); + cf->prev_cap = cf->prev_dis = frame_data_sequence_add(cf->frames, &fdlocal); /* If we're not doing dissection then there won't be any dependent frames. * More importantly, edt.pi.dependent_frames won't be initialized because @@ -2996,10 +2993,10 @@ process_packet_second_pass(capture_file *cf, epan_dissect_t *edt, cinfo = NULL; frame_data_set_before_dissect(fdata, &cf->elapsed_time, - &ref, prev_dis); - if (ref == fdata) { + &cf->ref, cf->prev_dis); + if (cf->ref == fdata) { ref_frame = *fdata; - ref = &ref_frame; + cf->ref = &ref_frame; } if (dissect_color) { @@ -3033,9 +3030,9 @@ process_packet_second_pass(capture_file *cf, epan_dissect_t *edt, exit(2); } } - prev_dis = fdata; + cf->prev_dis = fdata; } - prev_cap = fdata; + cf->prev_cap = fdata; if (edt) { epan_dissect_reset(edt); @@ -3224,8 +3221,8 @@ process_cap_file(capture_file *cf, char *save_file, int out_file_type, * don't need after the sequential run-through of the packets. */ postseq_cleanup_all_protocols(); - prev_dis = NULL; - prev_cap = NULL; + cf->prev_dis = NULL; + cf->prev_cap = NULL; ws_buffer_init(&buf, 1500); tshark_debug("tshark: done with first pass"); @@ -3511,10 +3508,10 @@ process_packet_single_pass(capture_file *cf, epan_dissect_t *edt, gint64 offset, cinfo = NULL; frame_data_set_before_dissect(&fdata, &cf->elapsed_time, - &ref, prev_dis); - if (ref == &fdata) { + &cf->ref, cf->prev_dis); + if (cf->ref == &fdata) { ref_frame = fdata; - ref = &ref_frame; + cf->ref = &ref_frame; } if (dissect_color) { @@ -3553,11 +3550,11 @@ process_packet_single_pass(capture_file *cf, epan_dissect_t *edt, gint64 offset, /* this must be set after print_packet() [bug #8160] */ prev_dis_frame = fdata; - prev_dis = &prev_dis_frame; + cf->prev_dis = &prev_dis_frame; } prev_cap_frame = fdata; - prev_cap = &prev_cap_frame; + cf->prev_cap = &prev_cap_frame; if (edt) { epan_dissect_reset(edt); @@ -4055,9 +4052,9 @@ cf_open(capture_file *cf, const char *fname, unsigned int type, gboolean is_temp cf->drops = 0; cf->snap = wtap_snapshot_length(cf->wth); nstime_set_zero(&cf->elapsed_time); - ref = NULL; - prev_dis = NULL; - prev_cap = NULL; + cf->ref = NULL; + cf->prev_dis = NULL; + cf->prev_cap = NULL; cf->state = FILE_READ_IN_PROGRESS; |