Ethereal-dev: [Ethereal-dev] patch packet-bssgp.c

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: <jkor@xxxxxxxx>
Date: Mon, 15 Sep 2003 13:54:31 +0200
I am sending patch to packet-bssgp.c. 
This patch adds call the data dissector on 
remaining portion of  packet. Due to it adds 
variable k into i/o structure for message 
decoding functions. This variable contains 
starting offset for creating next_tvb. The call 
is made only if ie:LLC-PDU is present. 
   Regards 
                      Josef

--- /usr/local/src/ethereal-2003-09-15/packet-bssgp.c	2003-09-15 16:32:12.000000000 +0200
+++ ./packet-bssgp.c	2003-09-15 16:26:51.000000000 +0200
@@ -317,8 +317,8 @@
 /*static int hf_bssgp_FIELDABBREV = -1;*/
 
 static dissector_handle_t data_handle;
-/*static dissector_handle_t llcgprs_handle;
-*/
+static dissector_handle_t llcgprs_handle;
+
 /* Initialize the subtree pointers */
 static gint ett_bssgp = -1;
 static gint ett_bssgp_tlli = -1;
@@ -350,7 +350,6 @@
 	int type;
 	packet_info *pinfo;
 	proto_tree *tree;
-	int k;
 } dec_fu_param_stru_t;	
 static int dcd_bssgp_algn	( tvbuff_t *tvb, int offset, dec_fu_param_stru_t *dprm );
 static int dcd_bssgp_bmaxms	( tvbuff_t *tvb, int offset, dec_fu_param_stru_t *dprm );
@@ -1092,7 +1091,6 @@
 		proto_tree_add_text(b_llc_tree,tvb,offset+1,k-1,"Length:%u",llen);
 	}
 	
-dprm_p->k=offset+k;	
 return llen+k;	
 };
 
@@ -1430,7 +1428,6 @@
 static dec_fu_param_stru_t decp , *decodeparam=&decp;
 guint8 pdutype, i, j , iele , stay;
 guint16 offset=1;
-tvbuff_t *next_tvb;
 
 /* Set up structures needed to add the protocol subtree and manage it */
         proto_item *ti=NULL;
@@ -1518,12 +1515,6 @@
 				  }
 			          if (bssgp_pdu[i].infe[j].presence){
 				      offset=offset+( *bssgp_pdu[i].infe[j].decode)(tvb, offset, decodeparam );     
-				      if (iele == 0x0e ){
-					      next_tvb = tvb_new_subset(tvb, decodeparam->k, -1, -1);
-/*					      call_dissector(llcgprs_handle, next_tvb, pinfo, tree);
-*/
-					      call_dissector(data_handle, next_tvb, pinfo, tree);
-				      }
 				      j++;
 				  }
 				break;  
@@ -1676,8 +1667,5 @@
 /*        dissector_add("fr.ietf", 0x0, bssgp_handle);
 */	  
         data_handle = find_dissector("data");
-
-/*
-    	  llcgprs_handle = find_dissector ("llcgprs");
-*/	  
+	llcgprs_handle = find_dissector ("llcgprs");
 }