aboutsummaryrefslogtreecommitdiffstats
path: root/asn1/pres
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2005-09-04 09:00:01 +0000
committerAnders Broman <anders.broman@ericsson.com>2005-09-04 09:00:01 +0000
commitbc4b6481b473f64f20cb5d1c013b79eced4ddef5 (patch)
tree152a1b64148ecf3fcafc4ba2c62b3d2995bb278e /asn1/pres
parent60eb171f7a761439d460096853dcb0a9d91b535a (diff)
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
Diffstat (limited to 'asn1/pres')
-rw-r--r--asn1/pres/packet-pres-template.c45
-rw-r--r--asn1/pres/packet-pres-template.h2
-rw-r--r--asn1/pres/pres.cnf2
3 files changed, 26 insertions, 23 deletions
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);