aboutsummaryrefslogtreecommitdiffstats
path: root/packet-isdn.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2002-11-08 01:00:07 +0000
committerGuy Harris <guy@alum.mit.edu>2002-11-08 01:00:07 +0000
commit8181a836572de0193701944662c539b38b375bca (patch)
treef95fffed05a1b3f410df72ed2330c88e5f8324fd /packet-isdn.c
parent45d9642e5228177b4690e47effaecd7691d5c0be (diff)
downloadwireshark-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.c9
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);
}