diff options
author | Guy Harris <guy@alum.mit.edu> | 2002-11-08 01:00:07 +0000 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2002-11-08 01:00:07 +0000 |
commit | 8181a836572de0193701944662c539b38b375bca (patch) | |
tree | f95fffed05a1b3f410df72ed2330c88e5f8324fd /packet-isdn.c | |
parent | 45d9642e5228177b4690e47effaecd7691d5c0be (diff) | |
download | wireshark-8181a836572de0193701944662c539b38b375bca.tar.gz wireshark-8181a836572de0193701944662c539b38b375bca.tar.bz2 wireshark-8181a836572de0193701944662c539b38b375bca.zip |
Allow more than one circuit with the same circuit ID; a circuit has a
starting and ending frame number, and circuits with the same circuit ID
are sorted by the starting frame number (the last circuit can have 0 as
the ending frame number, meaning "unknown"), and, when looking up a
circuit, we take a frame number as an argument and return the circuit
that includes that frame.
Add a new circuit ID type for X.25 virtual circuits, and use the circuit
mechanism to keep track of the dissector for an X.25 virtual circuit
rather than having a private mechanism.
svn path=/trunk/; revision=6580
Diffstat (limited to 'packet-isdn.c')
-rw-r--r-- | packet-isdn.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/packet-isdn.c b/packet-isdn.c index cf8bb0108b..d57198a25e 100644 --- a/packet-isdn.c +++ b/packet-isdn.c @@ -1,7 +1,7 @@ /* packet-isdn.c * Routines for ISDN packet disassembly * - * $Id: packet-isdn.c,v 1.2 2002/11/01 05:39:36 guy Exp $ + * $Id: packet-isdn.c,v 1.3 2002/11/08 01:00:04 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -114,9 +114,10 @@ dissect_isdn(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) /* * Set up a circuit for this channel, and assign it a dissector. */ - circuit = find_circuit(pinfo->ctype, pinfo->circuit_id); + circuit = find_circuit(pinfo->ctype, pinfo->circuit_id, pinfo->fd->num); if (circuit == NULL) - circuit = circuit_new(pinfo->ctype, pinfo->circuit_id); + circuit = circuit_new(pinfo->ctype, pinfo->circuit_id, + pinfo->fd->num); if (circuit_get_dissector(circuit) == NULL) { /* @@ -178,7 +179,7 @@ dissect_isdn(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) } if (!try_circuit_dissector(pinfo->ctype, pinfo->circuit_id, - tvb, pinfo, tree)) + pinfo->fd->num, tvb, pinfo, tree)) call_dissector(data_handle, tvb, pinfo, tree); } |