aboutsummaryrefslogtreecommitdiffstats
path: root/epan
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2005-07-08 02:31:45 +0000
committerGuy Harris <guy@alum.mit.edu>2005-07-08 02:31:45 +0000
commitf64a0aa20bfb5664dcea1ba1627c632b26ac5afb (patch)
treee009314894c7bb807f0c39418ef1b55eb0845400 /epan
parent782847092387a4b32ed5cc35b957260674843d05 (diff)
Get rid of most unused arguments and variables (including some that are
set but not used). (Leave "pi" around so the warning acts as a reminder that the tap structure stuff needs a cleanup - currently, the tap structures aren't freed; perhaps the new memory allocation scheme proposed by Ronnie could be used for tap structures.) Have "ac_istrace()" return NOT_ACTRACE for apparently non-actrace packets and return the packet type for actrace packets, so that we don't need a global variable for the packet type. Make "actrace_udp_port" unsigned to squelch a signed vs. unsigned warning. Use "col_set_str()" rather than "col_add_str()" when setting the Protocol column. We don't recognized packets as CAS packets unless they're 48 bytes long, so we don't need to test whether they're 48 bytes long in the CAS packet dissection code. Use the reported length, not the captured length, when doing length checks. svn path=/trunk/; revision=14874
Diffstat (limited to 'epan')
-rw-r--r--epan/dissectors/packet-actrace.c80
1 files changed, 32 insertions, 48 deletions
diff --git a/epan/dissectors/packet-actrace.c b/epan/dissectors/packet-actrace.c
index a4ec398c4e..4241947818 100644
--- a/epan/dissectors/packet-actrace.c
+++ b/epan/dissectors/packet-actrace.c
@@ -36,6 +36,7 @@
#include "packet-actrace.h"
#define UDP_PORT_ACTRACE 2428
+#define NOT_ACTRACE 0
#define ACTRACE_CAS 1
#define ACTRACE_ISDN 2
@@ -414,11 +415,9 @@ static const value_string actrace_isdn_direction_vals[] = {
};
/*
- * Define the trees for actrace
- * We need one for actrace itself, and one for the trunk protocol (CAS, ISDN, SS7)
+ * Define the tree for actrace
*/
static int ett_actrace = -1;
-static int ett_actrace_proto = -1;
/*
* Define the tap for actrace
@@ -430,50 +429,42 @@ static actrace_info_t *actrace_pi;
* Here are the global variable associated with
* the user definable characteristics of the dissection
*/
-static int global_actrace_udp_port = UDP_PORT_ACTRACE;
-static int global_actrace_protocol = ACTRACE_CAS;
+static guint global_actrace_udp_port = UDP_PORT_ACTRACE;
/*
* Variables to allow for proper deletion of dissector registration when
* the user changes port from the gui.
*/
-static int actrace_udp_port = 0;
+static guint actrace_udp_port = 0;
/* Some basic utility functions that are specific to this dissector */
-static gboolean is_actrace(tvbuff_t *tvb, gint offset);
+static int is_actrace(tvbuff_t *tvb, gint offset);
/*
* The dissect functions
*/
-static void dissect_actrace_cas(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
- proto_tree *actrace_tree, proto_tree *ti);
+static void dissect_actrace_cas(tvbuff_t *tvb, packet_info *pinfo, proto_tree *actrace_tree);
static void dissect_actrace_isdn(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
- proto_tree *actrace_tree, proto_tree *ti);
+ proto_tree *actrace_tree);
/************************************************************************
* dissect_actrace - The dissector for the AudioCodes Trace prtocol
************************************************************************/
static void dissect_actrace(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
- gint sectionlen;
- gint tvb_sectionend,tvb_sectionbegin, tvb_len, tvb_current_len;
- proto_tree *actrace_tree, *ti;
+ proto_tree *actrace_tree;
+ proto_item *ti;
+ int actrace_protocol;
/* Initialize variables */
- tvb_sectionend = 0;
- tvb_sectionbegin = tvb_sectionend;
- sectionlen = 0;
- tvb_len = tvb_length(tvb);
- tvb_current_len = tvb_len;
actrace_tree = NULL;
- ti = NULL;
/*
* Set the columns now, so that they'll be set correctly if we throw
* an exception. We can set them later as well....
*/
if (check_col(pinfo->cinfo, COL_PROTOCOL))
- col_add_str(pinfo->cinfo, COL_PROTOCOL, "AC_TRACE");
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "AC_TRACE");
if (check_col(pinfo->cinfo, COL_INFO))
col_clear(pinfo->cinfo, COL_INFO);
@@ -482,7 +473,8 @@ static void dissect_actrace(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
* for a valid "source" and fixed len for CAS; and the direction for ISDN.
* This isn't infallible, but its cheap and its better than nothing.
*/
- if (is_actrace(tvb, 0))
+ actrace_protocol = is_actrace(tvb, 0);
+ if (actrace_protocol != NOT_ACTRACE)
{
if (tree)
{
@@ -491,13 +483,13 @@ static void dissect_actrace(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
actrace_tree = proto_item_add_subtree(ti, ett_actrace);
}
- switch (global_actrace_protocol)
+ switch (actrace_protocol)
{
case ACTRACE_CAS:
- dissect_actrace_cas(tvb, pinfo, tree, actrace_tree,ti);
+ dissect_actrace_cas(tvb, pinfo, actrace_tree);
break;
case ACTRACE_ISDN:
- dissect_actrace_isdn(tvb, pinfo, tree, actrace_tree,ti);
+ dissect_actrace_isdn(tvb, pinfo, tree, actrace_tree);
break;
}
} else {
@@ -509,12 +501,11 @@ static void dissect_actrace(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
static actrace_info_t pi;
/* Dissect an individual actrace CAS message */
-static void dissect_actrace_cas(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
- proto_tree *actrace_tree, proto_tree *ti)
+static void dissect_actrace_cas(tvbuff_t *tvb, packet_info *pinfo, proto_tree *actrace_tree)
{
/* Declare variables */
gint sectionlen;
- gint tvb_sectionend,tvb_sectionbegin, tvb_len, tvb_current_len;
+ gint tvb_sectionend,tvb_sectionbegin;
gint32 value, function, trunk, bchannel, source, event, curr_state, next_state;
gint32 par0, par1, par2;
gchar *frame_label = NULL;
@@ -525,15 +516,10 @@ static void dissect_actrace_cas(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
tvb_sectionend = 0;
tvb_sectionbegin = tvb_sectionend;
sectionlen = 0;
- tvb_len = tvb_length(tvb);
- tvb_current_len = tvb_len;
value = 0;
- /* the CAS masages are 48 byte fixed */
- if (tvb_len != 48) return;
-
if (check_col(pinfo->cinfo, COL_PROTOCOL))
- col_add_str(pinfo->cinfo, COL_PROTOCOL, "AC_CAS");
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "AC_CAS");
value = tvb_get_ntohl(tvb, offset);
proto_tree_add_int(actrace_tree, hf_actrace_cas_time, tvb, offset, 4, value);
@@ -678,7 +664,7 @@ static void dissect_actrace_cas(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
/* Initialise packet info for passing to tap */
actrace_pi = g_malloc(sizeof(actrace_info_t));
- actrace_pi->type = ACTRACE_CAS;
+ actrace_pi->type = ACTRACE_CAS;
actrace_pi->direction = direction;
actrace_pi->trunk = trunk;
actrace_pi->cas_bchannel = bchannel;
@@ -690,7 +676,7 @@ static void dissect_actrace_cas(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t
/* Dissect an individual actrace ISDN message */
static void dissect_actrace_isdn(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
- proto_tree *actrace_tree, proto_tree *ti)
+ proto_tree *actrace_tree)
{
/* Declare variables */
gint len;
@@ -730,7 +716,7 @@ static void dissect_actrace_isdn(tvbuff_t *tvb, packet_info *pinfo, proto_tree *
call_dissector(lapd_handle, next_tvb, pinfo, tree);
if (check_col(pinfo->cinfo, COL_PROTOCOL))
- col_add_str(pinfo->cinfo, COL_PROTOCOL, "AC_ISDN");
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "AC_ISDN");
if (check_col(pinfo->cinfo, COL_INFO))
col_prepend_fstr(pinfo->cinfo, COL_INFO, "Trunk:%d Blade %s PSTN "
, trunk, value==PSTN_TO_BLADE?"<--":"-->");
@@ -852,31 +838,29 @@ void proto_reg_handoff_actrace(void)
* tvb - The tvbuff in which we are looking for
* offset - The offset in tvb at which we are looking for
*
- * Return: TRUE if there is an AudioCode trace packet at offset in tvb, otherwise FALSE
+ * Return: NOT_ACTRACE if there isn't an AutioCode trace packet at offset
+ * in tvb, ACTRACE_CAS if there's a CAS packet there, ACTRACE_ISDN if
+ * there's an ISDN packet there.
*/
-static gboolean is_actrace(tvbuff_t *tvb, gint offset)
+static int is_actrace(tvbuff_t *tvb, gint offset)
{
gint tvb_len;
gint32 source, isdn_header;
- tvb_len = tvb_length(tvb);
+ tvb_len = tvb_reported_length(tvb);
/* is a CAS packet?
* the CAS masages are 48 byte fixed and the sorce should be 0,1 or 2 (DSP, User or Table)
*/
source = tvb_get_ntohl(tvb, offset+4);
- if ( (tvb_len == 48) && ((source > -1) && (source <3)) ) {
- global_actrace_protocol = ACTRACE_CAS;
- return TRUE;
- }
+ if ( (tvb_len == 48) && ((source > -1) && (source <3)) )
+ return ACTRACE_CAS;
/* is ISDN packet?
* the ISDN packets have 0x49446463 for packets from PSTN to the Blade and
* 0x49644443 for packets from the Blade to the PSTN at offset 4
*/
isdn_header = tvb_get_ntohl(tvb, offset+4);
- if ( (tvb_len >= 50) && ( (isdn_header == PSTN_TO_BLADE) || (isdn_header == BLADE_TO_PSTN)) ){
- global_actrace_protocol = ACTRACE_ISDN;
- return TRUE;
- }
- return FALSE;
+ if ( (tvb_len >= 50) && ( (isdn_header == PSTN_TO_BLADE) || (isdn_header == BLADE_TO_PSTN)) )
+ return ACTRACE_ISDN;
+ return NOT_ACTRACE;
}