X-Git-Url: http://git.samba.org/?a=blobdiff_plain;f=packet-range.c;h=e6838f62f7ca810f67854db7c90b4f8dd4f0a656;hb=4d3d029e09eecfd034d8cb04bbe7045446854944;hp=b39c6fce8fa5c0ac30dc961106dd41ad05ff49a3;hpb=727ad67453a879a58ab46adeee058d2acbbe5c13;p=metze%2Fwireshark%2Fwip.git diff --git a/packet-range.c b/packet-range.c index b39c6fce8f..e6838f62f7 100644 --- a/packet-range.c +++ b/packet-range.c @@ -6,8 +6,8 @@ * Dick Gooris * Ulf Lamping * - * Ethereal - Network traffic analyzer - * By Gerald Combs + * Wireshark - Network traffic analyzer + * By Gerald Combs * Copyright 1998 Gerald Combs * * This program is free software; you can redistribute it and/or @@ -29,6 +29,7 @@ #include "config.h" #endif +#include #include #include @@ -41,7 +42,7 @@ #include "packet-range.h" /* (re-)calculate the packet counts (except the user specified range) */ -void packet_range_calc(packet_range_t *range) { +static void packet_range_calc(packet_range_t *range) { guint32 current_count; guint32 mark_low; guint32 mark_high; @@ -55,23 +56,31 @@ void packet_range_calc(packet_range_t *range) { mark_low = 0L; mark_high = 0L; range->mark_range_cnt = 0L; + range->ignored_cnt = 0L; + range->ignored_marked_cnt = 0L; + range->ignored_mark_range_cnt = 0L; + range->ignored_user_range_cnt = 0L; displayed_mark_low = 0L; displayed_mark_high = 0L; range->displayed_cnt = 0L; range->displayed_marked_cnt = 0L; range->displayed_mark_range_cnt=0L; + range->displayed_ignored_cnt = 0L; + range->displayed_ignored_marked_cnt = 0L; + range->displayed_ignored_mark_range_cnt = 0L; + range->displayed_ignored_user_range_cnt = 0L; /* The next for-loop is used to obtain the amount of packets to be processed * and is used to present the information in the Save/Print As widget. * We have different types of ranges: All the packets, the number - * of packets of a marked range, a single packet, and a user specified + * of packets of a marked range, a single packet, and a user specified * packet range. The last one is not calculated here since this * data must be entered in the widget by the user. */ current_count = 0; - for(packet = cfile.plist; packet != NULL; packet = packet->next) { + for(packet = cfile.plist_start; packet != NULL; packet = packet->next) { current_count++; if (cfile.current_frame == packet) { range->selected_packet = current_count; @@ -80,8 +89,14 @@ void packet_range_calc(packet_range_t *range) { range->displayed_cnt++; } if (packet->flags.marked) { + if (packet->flags.ignored) { + range->ignored_marked_cnt++; + } if (packet->flags.passed_dfilter) { range->displayed_marked_cnt++; + if (packet->flags.ignored) { + range->displayed_ignored_marked_cnt++; + } if (displayed_mark_low == 0) { displayed_mark_low = current_count; } @@ -97,23 +112,35 @@ void packet_range_calc(packet_range_t *range) { mark_high = current_count; } } + if (packet->flags.ignored) { + range->ignored_cnt++; + if (packet->flags.passed_dfilter) { + range->displayed_ignored_cnt++; + } + } } - + current_count = 0; - for(packet = cfile.plist; packet != NULL; packet = packet->next) { + for(packet = cfile.plist_start; packet != NULL; packet = packet->next) { current_count++; - if (current_count >= mark_low && + if (current_count >= mark_low && current_count <= mark_high) { range->mark_range_cnt++; + if (packet->flags.ignored) { + range->ignored_mark_range_cnt++; + } } - if (current_count >= displayed_mark_low && + if (current_count >= displayed_mark_low && current_count <= displayed_mark_high) { if (packet->flags.passed_dfilter) { range->displayed_mark_range_cnt++; + if (packet->flags.ignored) { + range->displayed_ignored_mark_range_cnt++; + } } } } @@ -122,7 +149,7 @@ void packet_range_calc(packet_range_t *range) { /*if (cfile.marked_count != 0) { range->mark_range = mark_high - mark_low + 1; }*/ - + /* in case we marked just one packet, we add 1. */ /*if (range->displayed_marked_cnt != 0) { range->displayed_mark_range = displayed_mark_high - displayed_mark_low + 1; @@ -136,16 +163,24 @@ static void packet_range_calc_user(packet_range_t *range) { frame_data *packet; range->user_range_cnt = 0L; + range->ignored_user_range_cnt = 0L; range->displayed_user_range_cnt = 0L; + range->displayed_ignored_user_range_cnt = 0L; current_count = 0; - for(packet = cfile.plist; packet != NULL; packet = packet->next) { + for(packet = cfile.plist_start; packet != NULL; packet = packet->next) { current_count++; if (value_is_in_range(range->user_range, current_count)) { range->user_range_cnt++; + if (packet->flags.ignored) { + range->ignored_user_range_cnt++; + } if (packet->flags.passed_dfilter) { range->displayed_user_range_cnt++; + if (packet->flags.ignored) { + range->displayed_ignored_user_range_cnt++; + } } } } @@ -157,6 +192,7 @@ void packet_range_init(packet_range_t *range) { range->process = range_process_all; range->process_filtered = FALSE; + range->remove_ignored = FALSE; range->user_range = range_empty(); /* calculate all packet range counters */ @@ -189,12 +225,16 @@ void packet_range_process_init(packet_range_t *range) { /* do we have to process all packets? */ gboolean packet_range_process_all(packet_range_t *range) { - return range->process == range_process_all && !range->process_filtered; + return range->process == range_process_all && !range->process_filtered && !range->remove_ignored; } /* do we have to process this packet? */ range_process_e packet_range_process_packet(packet_range_t *range, frame_data *fdata) { + if (range->remove_ignored && fdata->flags.ignored) { + return range_process_next; + } + switch(range->process) { case(range_process_all): break; @@ -267,7 +307,9 @@ void packet_range_convert_str(packet_range_t *range, const gchar *es) range->user_range = NULL; range->user_range_status = ret; range->user_range_cnt = 0L; + range->ignored_user_range_cnt = 0L; range->displayed_user_range_cnt = 0L; + range->displayed_ignored_user_range_cnt = 0L; return; } range->user_range = new_range;