Ethereal-dev: [Ethereal-dev] yet another mgcp patch
Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.
From: Ed Warnicke <hagbard@xxxxxxxxxxxxxxxxxxx>
Date: Sat, 3 Mar 2001 22:22:29 -0500 (EST)
Added a mgcp.messagecount tag to allow filtering by the number of MGCP messages in a frame. Please check in the patch. Ed
Index: plugins/mgcp/moduleinfo.h
===================================================================
RCS file: /cvsroot/ethereal/plugins/mgcp/moduleinfo.h,v
retrieving revision 1.4
diff -u -r1.4 moduleinfo.h
--- moduleinfo.h 2001/03/04 00:43:56 1.4
+++ moduleinfo.h 2001/03/04 03:19:55
@@ -13,5 +13,5 @@
#endif
/* Version number of package */
-#define VERSION "0.0.4"
+#define VERSION "0.0.5"
Index: plugins/mgcp/packet-mgcp.c
===================================================================
RCS file: /cvsroot/ethereal/plugins/mgcp/packet-mgcp.c,v
retrieving revision 1.17
diff -u -r1.17 packet-mgcp.c
--- packet-mgcp.c 2001/03/04 00:43:56 1.17
+++ packet-mgcp.c 2001/03/04 03:19:56
@@ -2,7 +2,7 @@
* Routines for mgcp packet disassembly
* RFC 2705
*
- * $Id: packet-mgcp.c,v 1.17 2001/03/04 00:43:56 guy Exp $
+ * $Id: packet-mgcp.c,v 1.16 2001/01/26 06:14:53 guy Exp $
*
* Copyright (c) 2000 by Ed Warnicke <hagbard@xxxxxxxxxxxxxxxxxxx>
*
@@ -163,7 +163,7 @@
* are written in the same style.
*/
static void dissect_mgcp_message(tvbuff_t *tvb, packet_info *pinfo,
- proto_tree *tree);
+ proto_tree *tree,proto_tree *mgcp_tree, proto_tree *ti);
static void dissect_mgcp_firstline(tvbuff_t *tvb,
packet_info* pinfo,
proto_tree *tree);
@@ -198,6 +198,7 @@
gint sectionlen;
guint32 num_messages;
gint tvb_sectionend,tvb_sectionbegin, tvb_len, tvb_current_len;
+ proto_tree *mgcp_tree, *ti;
/* Initialize variables */
tvb_sectionend = 0;
@@ -206,7 +207,9 @@
tvb_len = tvb_length(tvb);
tvb_current_len = tvb_len;
num_messages = 0;
-
+ mgcp_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....
@@ -231,20 +234,28 @@
*/
do{
num_messages++;
+ if(tree){
+ /* Create out mgcp subtree */
+ ti = proto_tree_add_item(tree,proto_mgcp,tvb,0,0, FALSE);
+ mgcp_tree = proto_item_add_subtree(ti, ett_mgcp);
+ }
+
sectionlen = tvb_find_dot_line(tvb, tvb_sectionbegin, -1,
&tvb_sectionend);
if( sectionlen != -1){
dissect_mgcp_message(tvb_new_subset(tvb, tvb_sectionbegin,
sectionlen, -1),
- pinfo, tree);
+ pinfo, tree, mgcp_tree,ti);
tvb_sectionbegin = tvb_sectionend;
}
else {
break;
}
} while(tvb_sectionend < tvb_len );
- proto_tree_add_uint_hidden(tree, hf_mgcp_messagecount,NullTVB,0,0,
- num_messages);
+ if(mgcp_tree){
+ proto_tree_add_uint_hidden(mgcp_tree, hf_mgcp_messagecount, tvb,
+ 0 ,0 , num_messages);
+ }
}
/*
@@ -276,10 +287,10 @@
}
static void
-dissect_mgcp_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree){
+dissect_mgcp_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
+ proto_tree *mgcp_tree, proto_tree *ti){
/* Declare variables */
- proto_tree *mgcp_tree, *ti;
gint sectionlen;
gint tvb_sectionend,tvb_sectionbegin, tvb_len, tvb_current_len;
tvbuff_t *next_tvb;
@@ -300,11 +311,7 @@
if(is_mgcp_verb(tvb,0,tvb_len) || is_mgcp_rspcode(tvb,0,tvb_len)){
/* Build the info tree if we've been given a root */
- if (tree) {
-
- /* Create out mgcp subtree */
- ti = proto_tree_add_item(tree,proto_mgcp,tvb,0,0, FALSE);
- mgcp_tree = proto_item_add_subtree(ti, ett_mgcp);
+ if (tree && mgcp_tree) {
/* dissect first line */
tvb_sectionbegin = 0;
- Follow-Ups:
- Re: [Ethereal-dev] yet another mgcp patch
- From: Guy Harris
- Re: [Ethereal-dev] yet another mgcp patch
- Prev by Date: Re: [Ethereal-dev] dfilter and FT_UINT32
- Next by Date: Re: [Ethereal-dev] yet another mgcp patch
- Previous by thread: Re: [Ethereal-dev] mgcp plugin patch
- Next by thread: Re: [Ethereal-dev] yet another mgcp patch
- Index(es):