wireshark/asn1/rtse/rtse.cnf

165 lines
4.4 KiB
INI

#.EXPORTS
RTORQapdu
RTOACapdu
RTORJapdu
RTABapdu
EXTERNAL
#.FN_BODY RTORJapdu/userDataRJ
char *oid = NULL;
switch(app_proto) {
case 1: /* mts-transfer-protocol-1984 */
oid = "applicationProtocol.1";
break;
case 12: /* mts-transfer-protocol */
oid = "applicationProtocol.12";
break;
default:
if(session && session->pres_ctx_id)
oid = find_oid_by_pres_ctx_id(pinfo, session->pres_ctx_id);
break;
}
if(!oid) /* XXX: problem here is we haven't decoded the applicationProtocol yet - so we make assumptions! */
oid = "applicationProtocol.12";
if(oid) {
if((session = (struct SESSION_DATA_STRUCTURE*)(pinfo->private_data)) != NULL)
session->ros_op = (ROS_OP_BIND | ROS_OP_ERROR);
offset = call_rtse_oid_callback(oid, tvb, offset, pinfo, top_tree ? top_tree : tree);
}
#.FN_BODY RTABapdu/userdataAB
/*XXX not implemented yet */
#.FN_BODY RTORQapdu
if((session = (struct SESSION_DATA_STRUCTURE*)(pinfo->private_data)) != NULL)
session->ros_op = (ROS_OP_BIND | ROS_OP_ARGUMENT);
open_request=TRUE;
%(DEFAULT_BODY)s
open_request=FALSE;
#.FN_BODY RTOACapdu
if((session = (struct SESSION_DATA_STRUCTURE*)(pinfo->private_data)) != NULL)
session->ros_op = (ROS_OP_BIND | ROS_OP_RESULT);
%(DEFAULT_BODY)s
#.FN_BODY T_open
char *oid = NULL;
switch(app_proto) {
case 1: /* mts-transfer-protocol-1984 */
oid = "applicationProtocol.1";
break;
case 12: /* mts-transfer-protocol */
oid = "applicationProtocol.12";
break;
default:
if(session && session->pres_ctx_id)
oid = find_oid_by_pres_ctx_id(pinfo, session->pres_ctx_id);
break;
}
if(!oid) /* XXX: problem here is we haven't decoded the applicationProtocol yet - so we make assumptions! */
oid = "applicationProtocol.12";
if(oid) {
offset = call_rtse_oid_callback(oid, tvb, offset, pinfo, top_tree ? top_tree : tree);
}
/* else XXX: need to flag we can't find the presentation context */
#.FN_BODY RTTRapdu
tvbuff_t *next_tvb = NULL;
offset = dissect_ber_octet_string(FALSE, pinfo, tree, tvb, offset, hf_index, &next_tvb);
if(next_tvb) {
/* XXX: we should check is this is an EXTERNAL first */
/* ROS won't do this for us */
if(session)
session->ros_op = (ROS_OP_INVOKE | ROS_OP_ARGUMENT);
offset = dissect_rtse_EXTERNAL(FALSE, next_tvb, 0, pinfo, tree, -1);
}
#.FN_BODY EXTERNAL
gint8 class;
gboolean pc, ind_field;
gint32 tag;
guint32 len1;
if(!implicit_tag) {
/* XXX asn2eth can not yet handle tagged assignment so for the
* time being just remove this tag manually inside the EXTERNAL
* dissector.
*/
offset = get_ber_identifier(tvb, offset, &class, &pc, &tag);
offset = get_ber_length(tree, tvb, offset, &len1, &ind_field);
}
offset = dissect_ber_sequence(TRUE, pinfo, tree, tvb, offset,
EXTERNAL_sequence, hf_index, ett_rtse_EXTERNAL);
#.FN_BODY EXTERNAL/indirect-reference
char *oid;
offset = dissect_ber_integer(FALSE, pinfo, tree, tvb, offset,
hf_rtse_indirect_reference,
&indir_ref);
/* look up the indirect reference */
if((oid = find_oid_by_pres_ctx_id(pinfo, indir_ref)) != NULL) {
g_snprintf(object_identifier_id, MAX_OID_STR_LEN, "%%s", oid);
}
#.FN_BODY EXTERNAL/encoding/single-ASN1-type
offset=call_rtse_oid_callback(object_identifier_id, tvb, offset, pinfo, top_tree);
#.FN_BODY T_applicationProtocol
offset = dissect_ber_integer(TRUE, pinfo, tree, tvb, offset, hf_index, &app_proto);
#.FN_BODY SessionConnectionIdentifier
if(open_request && check_col(pinfo->cinfo, COL_INFO))
col_append_fstr(pinfo->cinfo, COL_INFO, "Recover");
%(DEFAULT_BODY)s
#.FN_PARS T61String
VAL_PTR=&string
#.FN_BODY T61String
tvbuff_t *string = NULL;
%(DEFAULT_BODY)s
if(open_request && string && check_col(pinfo->cinfo, COL_INFO))
col_append_fstr(pinfo->cinfo, COL_INFO, " %%s", tvb_format_text(string, 0, tvb_length(string)));
#.FN_PARS CommonReference
VAL_PTR=&string
#.FN_BODY CommonReference
tvbuff_t *string = NULL;
%(DEFAULT_BODY)s
if(open_request && string && check_col(pinfo->cinfo, COL_INFO))
col_append_fstr(pinfo->cinfo, COL_INFO, " %%s", tvb_format_text(string, 0, tvb_length(string)));
#.FN_PARS OCTET_STRING
VAL_PTR=&string
#.FN_BODY OCTET_STRING
tvbuff_t *string = NULL;
%(DEFAULT_BODY)s
if(open_request && string && check_col(pinfo->cinfo, COL_INFO))
col_append_fstr(pinfo->cinfo, COL_INFO, " %%s", tvb_format_text(string, 0, tvb_length(string)));
#.END