aboutsummaryrefslogtreecommitdiffstats
path: root/file.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2000-08-24 06:19:53 +0000
committerGuy Harris <guy@alum.mit.edu>2000-08-24 06:19:53 +0000
commit47d5cfab522706c1cadfb1598325a44e77f56815 (patch)
tree954b178ae3a1d9966988474fe8b176a519a470e3 /file.c
parentd93c1854b85b5484797cb97e884604a268b6573f (diff)
Instead of keeping in the information about an RPC call a count of the
number of replies seen, keep the frame number of the first request seen for that call and the first reply seen for that call. Use that to determine whether a request or reply is a duplicate or not. That means that we don't have to reset the table of RPC calls on a rescan of the capture (which didn't even fix all the cases where we'd have misreported the original call or reply as a duplicate due to having seen it once on the initial pass through the file and once again when, for example, the user clicked on the packet); doing so causes plenty of other problems, so don't do that - and don't clear the "visited" flag on frames on a rescan, either, as that's only done because we were clearing out conversations and calling all protocols' "init" routines. As a free bonus, this means that, for a reply, we know what frame the request was in; put that information into the protocol tree for the reply, snoop-style. Make the table of RPC call information, and the routines that manipulate it, static to "packet-rpc.c"; nobody outside "packet-rpc.c" uses them. svn path=/trunk/; revision=2358
Diffstat (limited to 'file.c')
-rw-r--r--file.c15
1 files changed, 1 insertions, 14 deletions
diff --git a/file.c b/file.c
index b521d3e220..e569562dfa 100644
--- a/file.c
+++ b/file.c
@@ -1,7 +1,7 @@
/* file.c
* File I/O routines
*
- * $Id: file.c,v 1.209 2000/08/21 21:24:01 deniel Exp $
+ * $Id: file.c,v 1.210 2000/08/24 06:19:51 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@@ -892,15 +892,6 @@ rescan_packets(capture_file *cf, const char *action, gboolean refilter)
rebuild the clist, however. */
selected_row = -1;
- /* We need to re-initialize all the state information that protocols
- keep, because we're making a fresh pass through all the packets. */
-
- /* Initialize the table of conversations. */
- conversation_init();
-
- /* Initialize protocol-specific variables */
- init_all_protocols();
-
/* Freeze the packet list while we redo it, so we don't get any
screen updates while it happens. */
gtk_clist_freeze(GTK_CLIST(packet_list));
@@ -966,10 +957,6 @@ rescan_packets(capture_file *cf, const char *action, gboolean refilter)
count++;
- /* Since all state for the frame was destroyed, mark the frame
- * as not visited. */
- fdata->flags.visited = 0;
-
wtap_seek_read (cf->wth, fdata->file_off, &cf->pseudo_header,
cf->pd, fdata->cap_len);