aboutsummaryrefslogtreecommitdiffstats
path: root/epan
diff options
context:
space:
mode:
authorguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>2002-10-31 07:12:42 +0000
committerguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>2002-10-31 07:12:42 +0000
commitf6dd69a024735819009d1847f3ac010ff5c025c5 (patch)
tree7e11961398633886725fb3b33b3a254666a04af2 /epan
parent009338e1b0e87f5b800e3e2b5ac8f504c39924ab (diff)
Discard the WTAP_ENCAP_LAPD encapsulation type in favor of a
WTAP_ENCAP_ISDN encapsulation type, which includes a pseudo-header giving the direction (user-to-network or network-to-user) and the channel number. Add a new circuit type, using the ISDN channel number as the circuit ID. Add an ISDN dissector to put the direction and channel number into the protocol tree and to call the appropriate dissector for the payload based on the channel (LAPD for the D channel; V.120, PPP, or data for B channels, based on some heuristics). git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@6521 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan')
-rw-r--r--epan/circuit.c11
-rw-r--r--epan/circuit.h3
-rw-r--r--epan/packet_info.h5
3 files changed, 13 insertions, 6 deletions
diff --git a/epan/circuit.c b/epan/circuit.c
index f4a180a813..3f8a192159 100644
--- a/epan/circuit.c
+++ b/epan/circuit.c
@@ -1,7 +1,7 @@
/* circuit.c
* Routines for building lists of packets that are part of a "circuit"
*
- * $Id: circuit.c,v 1.2 2002/10/29 07:22:55 guy Exp $
+ * $Id: circuit.c,v 1.3 2002/10/31 07:12:38 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@@ -235,12 +235,17 @@ circuit_delete_proto_data(circuit_t *conv, int proto)
}
void
-circuit_set_dissector(circuit_t *circuit,
- dissector_handle_t handle)
+circuit_set_dissector(circuit_t *circuit, dissector_handle_t handle)
{
circuit->dissector_handle = handle;
}
+dissector_handle_t
+circuit_get_dissector(circuit_t *circuit)
+{
+ return circuit->dissector_handle;
+}
+
/*
* Given a circuit type and ID for a packet, search for a matching
* circuit and, if found and it has a circuit dissector,
diff --git a/epan/circuit.h b/epan/circuit.h
index 87a04eceac..0aa2e8c0ec 100644
--- a/epan/circuit.h
+++ b/epan/circuit.h
@@ -1,7 +1,7 @@
/* circuit.h
* Routines for building lists of packets that are part of a "circuit"
*
- * $Id: circuit.h,v 1.1 2002/10/22 08:43:44 guy Exp $
+ * $Id: circuit.h,v 1.2 2002/10/31 07:12:38 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@@ -58,6 +58,7 @@ extern void circuit_delete_proto_data(circuit_t *conv, int proto);
extern void circuit_set_dissector(circuit_t *circuit,
dissector_handle_t handle);
+extern dissector_handle_t circuit_get_dissector(circuit_t *circuit);
extern gboolean
try_circuit_dissector(circuit_type ctype, guint32 circuit_id, tvbuff_t *tvb,
packet_info *pinfo, proto_tree *tree);
diff --git a/epan/packet_info.h b/epan/packet_info.h
index 50c62155b0..2bb6c9654b 100644
--- a/epan/packet_info.h
+++ b/epan/packet_info.h
@@ -1,7 +1,7 @@
/* packet_info.h
* Definitions for packet info structures and routines
*
- * $Id: packet_info.h,v 1.23 2002/10/22 08:22:07 guy Exp $
+ * $Id: packet_info.h,v 1.24 2002/10/31 07:12:38 guy Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@@ -102,7 +102,8 @@ typedef enum {
/* Types of circuit IDs Ethereal knows about. */
typedef enum {
CT_NONE, /* no port number */
- CT_DLCI /* Frame Relay DLCI */
+ CT_DLCI, /* Frame Relay DLCI */
+ CT_ISDN /* ISDN channel number */
/* Could also have X.25 logical channel and ATM VPI/VCI pairs */
} circuit_type;