diff options
author | Guy Harris <guy@alum.mit.edu> | 2015-04-06 12:14:25 -0700 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2015-04-06 19:15:24 +0000 |
commit | 1871fb2b0d9628707661776cfa1b35f210e5e58e (patch) | |
tree | 36a23e755ae887fb26e47af67645b2ac454ca32e /capchild/capture_sync.c | |
parent | b23ab904e728022340f139701626a06851562b1d (diff) | |
download | wireshark-1871fb2b0d9628707661776cfa1b35f210e5e58e.tar.gz |
Keep a captured-packet count in a capture_session and use that.
Have the count in a cfile_t structure always reflect the actual number
of packets that have been read from the file, rather than, when doing a
non-update-list-of-packets-in-real-time capture, falsely increasing the
count in the cfile_t to reflect the number of packets captured but not
yet read.
Have the status bar base its captured-packet count on the count in the
capture_session structure, and base the "sorry, no packets were
captured" message on the count in the capture_session structure, as
we're no longer using the count in the cfile_t structure to count
anything in the process of a non-update-list-of-packets-in-real-time
capture.
That way, we preserve the invariant that the "frames" member of a
cfile_t will be non-null if the "count" member is non-zero, fixing bug
6217.
It also means we can get rid of cf_set_packet_count(), as we only set
the count in the capture-file-reading code.
Bug: 6217
Change-Id: I72c0e2c07c30782bad777995370b7c19e1460cc2
Reviewed-on: https://code.wireshark.org/review/7950
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Diffstat (limited to 'capchild/capture_sync.c')
-rw-r--r-- | capchild/capture_sync.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/capchild/capture_sync.c b/capchild/capture_sync.c index ed6ecd638d..d2c2fc51aa 100644 --- a/capchild/capture_sync.c +++ b/capchild/capture_sync.c @@ -139,6 +139,7 @@ capture_session_init(capture_session *cap_session, struct _capture_file *cf) cap_session->owner = getuid(); cap_session->group = getgid(); #endif + cap_session->count = 0; cap_session->session_started = FALSE; } @@ -1814,6 +1815,7 @@ sync_pipe_input_cb(gint source, gpointer user_data) case SP_PACKET_COUNT: npackets = atoi(buffer); g_log(LOG_DOMAIN_CAPTURE, G_LOG_LEVEL_DEBUG, "sync_pipe_input_cb: new packets %u", npackets); + cap_session->count += npackets; capture_input_new_packets(cap_session, npackets); break; case SP_ERROR_MSG: |