summaryrefslogtreecommitdiff
path: root/packet-range.c
diff options
context:
space:
mode:
Diffstat (limited to 'packet-range.c')
-rw-r--r--packet-range.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/packet-range.c b/packet-range.c
index ed9955e094..6e0e49fd54 100644
--- a/packet-range.c
+++ b/packet-range.c
@@ -66,6 +66,7 @@ static void packet_range_calc(packet_range_t *range) {
range->displayed_cnt = 0L;
range->displayed_marked_cnt = 0L;
range->displayed_mark_range_cnt=0L;
+ range->displayed_plus_dependents_cnt = 0L;
range->displayed_ignored_cnt = 0L;
range->displayed_ignored_marked_cnt = 0L;
range->displayed_ignored_mark_range_cnt = 0L;
@@ -95,6 +96,10 @@ static void packet_range_calc(packet_range_t *range) {
if (packet->flags.passed_dfilter) {
range->displayed_cnt++;
}
+ if (packet->flags.passed_dfilter ||
+ packet->flags.dependent_of_displayed) {
+ range->displayed_plus_dependents_cnt++;
+ }
if (packet->flags.marked) {
if (packet->flags.ignored) {
range->ignored_marked_cnt++;
@@ -292,8 +297,12 @@ range_process_e packet_range_process_packet(packet_range_t *range, frame_data *f
g_assert_not_reached();
}
- /* this packet has to pass the display filter but didn't? -> try next */
- if (range->process_filtered && fdata->flags.passed_dfilter == FALSE) {
+ /* This packet has to pass the display filter but didn't?
+ * Try next, but only if we're not including dependent packets and this
+ * packet happens to be a dependency on something that is displayed.
+ */
+ if ((range->process_filtered && fdata->flags.passed_dfilter == FALSE) &&
+ !(range->include_dependents && fdata->flags.dependent_of_displayed)) {
return range_process_next;
}