# pres.cnf # pres conformation file # $Id$ #.IMPORT ../rtse/rtse-exp.cnf #.EXPORTS #.PDU UD-type UDC-type #.NO_EMIT #.TYPE_RENAME CPA-PPDU/normal-mode-parameters T_CPA_PPDU_normal_mode_parameters CPR-PPDU/normal-mode-parameters T_CPR_PPDU_normal_mode_parameters ARU-PPDU/normal-mode-parameters T_ARU_PPDU_normal_mode_parameters #.FIELD_RENAME ARU-PPDU/normal-mode-parameters aRU_PPDU_normal_mode_parameters CPA-PPDU/normal-mode-parameters cPU_PPDU_normal_mode_parameters CPR-PPDU/normal-mode-parameters cPR_PPDU_normal_mode_parameters ARU-PPDU/x400-mode-parameters aRU_PPDU_x400_mode_parameters CPR-PPDU/x400-mode-parameters cPU_PPDU_x400_mode_parameters CPA-PPDU/x410-mode-parameters cPR_PPDU_x400_mode_parameters ARP-PPDU/provider-reason aRU_PPDU_provider-reason CPR-PPDU/normal-mode-parameters/provider-reason cPR_PPDU__provider-reason #.FN_BODY PDV-list/presentation-data-values/single-ASN1-type tvbuff_t *next_tvb; char *oid; oid=find_oid_by_pres_ctx_id(actx->pinfo, presentation_context_identifier); if(oid){ next_tvb = tvb_new_subset_remaining(tvb, offset); call_ber_oid_callback(oid, next_tvb, offset, actx->pinfo, global_tree); } else { if (!pres_try_users_table(presentation_context_identifier, tvb, offset, actx->pinfo)) { proto_item *ti = proto_tree_add_text(tree, tvb, offset, -1,"dissector is not available"); expert_add_info_format(actx->pinfo, ti, PI_UNDECODED, PI_WARN, "Dissector is not available"); } } #.FN_BODY PDV-list/presentation-data-values/octet-aligned tvbuff_t *next_tvb; char *oid; oid=find_oid_by_pres_ctx_id(actx->pinfo, presentation_context_identifier); if(oid){ dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index, &next_tvb); call_ber_oid_callback(oid, next_tvb, offset, actx->pinfo, global_tree); } else { if (!pres_try_users_table(presentation_context_identifier, tvb, offset, actx->pinfo)) { proto_item *ti = proto_tree_add_text(tree, tvb, offset, -1,"dissector is not available"); expert_add_info_format(actx->pinfo, ti, PI_UNDECODED, PI_WARN, "Dissector is not available"); } %(DEFAULT_BODY)s } #.FN_PARS Abstract-syntax-name FN_VARIANT = _str VAL_PTR = &abstract_syntax_name_oid #.FN_PARS Presentation-context-identifier VAL_PTR = &presentation_context_identifier #.FN_BODY Presentation-context-identifier const char *name; char *oid; %(DEFAULT_BODY)s if(session) session->pres_ctx_id = presentation_context_identifier; oid = find_oid_by_pres_ctx_id(actx->pinfo, presentation_context_identifier); if(oid && (name = oid_resolved_from_string(oid))) { proto_item_append_text(actx->created_item, " (%%s)", name); } #.FN_PARS Abort-reason VAL_PTR = &reason #.FN_BODY Abort-reason guint32 reason; %(DEFAULT_BODY)s col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%%s)", val_to_str(reason, pres_Abort_reason_vals, "unknown: %%d")); #.FN_HDR Context-list/_item abstract_syntax_name_oid=NULL; #.END #.FN_FTR Context-list/_item register_ctx_id_and_oid(actx->pinfo, presentation_context_identifier, abstract_syntax_name_oid); #.END