From bc4b6481b473f64f20cb5d1c013b79eced4ddef5 Mon Sep 17 00:00:00 2001 From: Anders Broman Date: Sun, 4 Sep 2005 09:00:01 +0000 Subject: From Graeme Lunt: Basically the changes are: a) [pres] make the find_oid_by_[pres_]ctx_id (I changed the name to make it more specific) non-static so it can be called from other dissectors (see acse.cnf changes). I also call it from RTSE and ROS dissectors b) [acse] remove (#ifdef NOT_NEEDED) the oid lookup table and any reference to acse_handle - as these are no longer needed c) [acse] register the acse dissector on 2.2.1.0.1 with some modifications: -#ifdef:ed code removed - renamed aco -> pco svn path=/trunk/; revision=15678 --- asn1/pres/packet-pres-template.c | 45 ++++++++++++++++++++-------------------- asn1/pres/packet-pres-template.h | 2 ++ asn1/pres/pres.cnf | 2 +- 3 files changed, 26 insertions(+), 23 deletions(-) (limited to 'asn1/pres') diff --git a/asn1/pres/packet-pres-template.c b/asn1/pres/packet-pres-template.c index 82b5e4aae2..bddc97f1a0 100644 --- a/asn1/pres/packet-pres-template.c +++ b/asn1/pres/packet-pres-template.c @@ -53,9 +53,9 @@ static struct SESSION_DATA_STRUCTURE* session = NULL; /* pointers for acse dissector */ proto_tree *global_tree = NULL; packet_info *global_pinfo = NULL; + /* dissector for data */ static dissector_handle_t data_handle; -static dissector_handle_t acse_handle; static char abstract_syntax_name_oid[BER_MAX_OID_STR_LEN]; static guint32 presentation_context_identifier; @@ -79,16 +79,16 @@ static gint ett_pres = -1; static guint pres_ctx_oid_hash(gconstpointer k) { - pres_ctx_oid_t *aco=(pres_ctx_oid_t *)k; - return aco->ctx_id; + pres_ctx_oid_t *pco=(pres_ctx_oid_t *)k; + return pco->ctx_id; } /* XXX this one should be made ADDRESS/PORT aware */ static gint pres_ctx_oid_equal(gconstpointer k1, gconstpointer k2) { - pres_ctx_oid_t *aco1=(pres_ctx_oid_t *)k1; - pres_ctx_oid_t *aco2=(pres_ctx_oid_t *)k2; - return aco1->ctx_id==aco2->ctx_id; + pres_ctx_oid_t *pco1=(pres_ctx_oid_t *)k1; + pres_ctx_oid_t *pco2=(pres_ctx_oid_t *)k2; + return pco1->ctx_id==pco2->ctx_id; } static void @@ -106,26 +106,27 @@ pres_init(void) static void register_ctx_id_and_oid(packet_info *pinfo _U_, guint32 idx, char *oid) { - pres_ctx_oid_t *aco, *tmpaco; - aco=se_alloc(sizeof(pres_ctx_oid_t)); - aco->ctx_id=idx; - aco->oid=se_strdup(oid); + pres_ctx_oid_t *pco, *tmppco; + pco=se_alloc(sizeof(pres_ctx_oid_t)); + pco->ctx_id=idx; + pco->oid=se_strdup(oid); /* if this ctx already exists, remove the old one first */ - tmpaco=(pres_ctx_oid_t *)g_hash_table_lookup(pres_ctx_oid_table, aco); - if(tmpaco){ - g_hash_table_remove(pres_ctx_oid_table, tmpaco); + tmppco=(pres_ctx_oid_t *)g_hash_table_lookup(pres_ctx_oid_table, pco); + if(tmppco){ + g_hash_table_remove(pres_ctx_oid_table, tmppco); + } - g_hash_table_insert(pres_ctx_oid_table, aco, aco); + g_hash_table_insert(pres_ctx_oid_table, pco, pco); } -static char * -find_oid_by_ctx_id(packet_info *pinfo _U_, guint32 idx) +char * +find_oid_by_pres_ctx_id(packet_info *pinfo _U_, guint32 idx) { - pres_ctx_oid_t aco, *tmpaco; - aco.ctx_id=idx; - tmpaco=(pres_ctx_oid_t *)g_hash_table_lookup(pres_ctx_oid_table, &aco); - if(tmpaco){ - return tmpaco->oid; + pres_ctx_oid_t pco, *tmppco; + pco.ctx_id=idx; + tmppco=(pres_ctx_oid_t *)g_hash_table_lookup(pres_ctx_oid_table, &pco); + if(tmppco){ + return tmppco->oid; } return NULL; } @@ -261,5 +262,5 @@ void proto_reg_handoff_pres(void) { "itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) abstractSyntax(1) pres(1) version1(1)"); */ data_handle = find_dissector("data"); - acse_handle = find_dissector("acse"); + } diff --git a/asn1/pres/packet-pres-template.h b/asn1/pres/packet-pres-template.h index 0f65aa1b03..00590f3a03 100644 --- a/asn1/pres/packet-pres-template.h +++ b/asn1/pres/packet-pres-template.h @@ -27,4 +27,6 @@ /*#include "packet-pres-exp.h"*/ +extern char *find_oid_by_pres_ctx_id(packet_info *pinfo _U_, guint32 idx); + #endif /* PACKET_PRES_H */ diff --git a/asn1/pres/pres.cnf b/asn1/pres/pres.cnf index 6daf4a42d2..120e85362f 100644 --- a/asn1/pres/pres.cnf +++ b/asn1/pres/pres.cnf @@ -36,7 +36,7 @@ CPR-PPDU/normal-mode-parameters/provider-reason cPR_PPDU__provider-reason tvbuff_t *next_tvb; char *oid; - oid=find_oid_by_ctx_id(pinfo, presentation_context_identifier); + oid=find_oid_by_pres_ctx_id(pinfo, presentation_context_identifier); if(oid){ next_tvb = tvb_new_subset(tvb, offset, -1, -1); call_ber_oid_callback(oid, next_tvb, offset, pinfo, global_tree); -- cgit v1.2.3