diff options
author | Stig Bjørlykke <stig@bjorlykke.org> | 2015-05-22 14:18:19 +0200 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2015-05-22 16:11:45 +0000 |
commit | a34d696377afc2b4eaee5710c385292da613510c (patch) | |
tree | fd9bbef36356d0b8de68410b3192982a391f875a | |
parent | 3bc42dbf8e5c63a7a85e6d14d2d2bd3636a6dc81 (diff) |
p1: Fixed do_address for extension attributes
This is not an optimal solution, but fixes the reported problem.
The do_address functionality should probably be rewritten to
only use pinfo for storing data.
Bug: 11210
Ping-Bug: 8515
Change-Id: I2625cc4044ab93b6e943a3c2d2ffd1b26149da29
Reviewed-on: https://code.wireshark.org/review/8585
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
-rw-r--r-- | asn1/p1/p1.cnf | 5 | ||||
-rw-r--r-- | asn1/p1/packet-p1-template.c | 24 | ||||
-rw-r--r-- | epan/dissectors/packet-p1.c | 183 |
3 files changed, 127 insertions, 85 deletions
diff --git a/asn1/p1/p1.cnf b/asn1/p1/p1.cnf index 379430a33b..cc2db23836 100644 --- a/asn1/p1/p1.cnf +++ b/asn1/p1/p1.cnf @@ -576,6 +576,10 @@ MessageToken B "2.6.1.7.36" "id-hat-forwarded-token" #.FN_BODY ExtensionAttribute/extension-attribute-value proto_item_append_text(tree, " (%%s)", val_to_str(actx->external.indirect_reference, p1_ExtensionAttributeType_vals, "extension-attribute-type %%d")); + if (!actx->pinfo->private_table) { + actx->pinfo->private_table = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free); + } + g_hash_table_insert(actx->pinfo->private_table, (gpointer)P1_ADDRESS_CTX, actx->subtree.tree_ctx); if (dissector_try_uint(p1_extension_attribute_dissector_table, actx->external.indirect_reference, tvb, actx->pinfo, tree)) { offset =tvb_reported_length(tvb); } else { @@ -587,6 +591,7 @@ MessageToken B "2.6.1.7.36" "id-hat-forwarded-token" offset = dissect_unknown_ber(actx->pinfo, tvb, offset, next_tree); expert_add_info(actx->pinfo, item, &ei_p1_unknown_extension_attribute_type); } + g_hash_table_steal(actx->pinfo->private_table, (gpointer)P1_ADDRESS_CTX); #.FN_BODY RefusedOperation/refused-argument/refused-extension diff --git a/asn1/p1/packet-p1-template.c b/asn1/p1/packet-p1-template.c index 49b4fee2dc..75054ea736 100644 --- a/asn1/p1/packet-p1-template.c +++ b/asn1/p1/packet-p1-template.c @@ -86,6 +86,7 @@ static dissector_table_t p1_tokendata_dissector_table; #include "packet-p1-table.c" /* operation and error codes */ +#define P1_ADDRESS_CTX "p1-address-ctx" typedef struct p1_address_ctx { gboolean do_address; const char *content_type_id; @@ -105,9 +106,25 @@ static void set_do_address(asn1_ctx_t* actx, gboolean do_address) ctx->do_address = do_address; } +static p1_address_ctx_t *get_do_address_ctx(asn1_ctx_t* actx) +{ + p1_address_ctx_t* ctx = NULL; + + if (actx->pinfo->private_table) { + /* First check if called from an extension attribute */ + ctx = g_hash_table_lookup(actx->pinfo->private_table, (gpointer)P1_ADDRESS_CTX); + } + + if (!ctx) { + ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx; + } + + return ctx; +} + static void do_address(const char* addr, tvbuff_t* tvb_string, asn1_ctx_t* actx) { - p1_address_ctx_t* ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx; + p1_address_ctx_t* ctx = get_do_address_ctx(actx); if (ctx && ctx->do_address) { if (addr) { @@ -117,13 +134,12 @@ static void do_address(const char* addr, tvbuff_t* tvb_string, asn1_ctx_t* actx) wmem_strbuf_append(ctx->oraddress, tvb_format_text(tvb_string, 0, tvb_captured_length(tvb_string))); } } - } static void do_address_str(const char* addr, tvbuff_t* tvb_string, asn1_ctx_t* actx) { wmem_strbuf_t *ddatype = (wmem_strbuf_t *)actx->value_ptr; - p1_address_ctx_t* ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx; + p1_address_ctx_t* ctx = get_do_address_ctx(actx); do_address(addr, tvb_string, actx); @@ -134,7 +150,7 @@ static void do_address_str(const char* addr, tvbuff_t* tvb_string, asn1_ctx_t* a static void do_address_str_tree(const char* addr, tvbuff_t* tvb_string, asn1_ctx_t* actx, proto_tree* tree) { wmem_strbuf_t *ddatype = (wmem_strbuf_t *)actx->value_ptr; - p1_address_ctx_t* ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx; + p1_address_ctx_t* ctx = get_do_address_ctx(actx); do_address(addr, tvb_string, actx); diff --git a/epan/dissectors/packet-p1.c b/epan/dissectors/packet-p1.c index a65ed0ee01..6d27ef299b 100644 --- a/epan/dissectors/packet-p1.c +++ b/epan/dissectors/packet-p1.c @@ -894,6 +894,7 @@ static const value_string p3_err_code_string_vals[] = { /*--- End of included file: packet-p1-table.c ---*/ #line 88 "../../asn1/p1/packet-p1-template.c" +#define P1_ADDRESS_CTX "p1-address-ctx" typedef struct p1_address_ctx { gboolean do_address; const char *content_type_id; @@ -913,9 +914,25 @@ static void set_do_address(asn1_ctx_t* actx, gboolean do_address) ctx->do_address = do_address; } +static p1_address_ctx_t *get_do_address_ctx(asn1_ctx_t* actx) +{ + p1_address_ctx_t* ctx = NULL; + + if (actx->pinfo->private_table) { + /* First check if called from an extension attribute */ + ctx = g_hash_table_lookup(actx->pinfo->private_table, (gpointer)P1_ADDRESS_CTX); + } + + if (!ctx) { + ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx; + } + + return ctx; +} + static void do_address(const char* addr, tvbuff_t* tvb_string, asn1_ctx_t* actx) { - p1_address_ctx_t* ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx; + p1_address_ctx_t* ctx = get_do_address_ctx(actx); if (ctx && ctx->do_address) { if (addr) { @@ -925,13 +942,12 @@ static void do_address(const char* addr, tvbuff_t* tvb_string, asn1_ctx_t* actx) wmem_strbuf_append(ctx->oraddress, tvb_format_text(tvb_string, 0, tvb_captured_length(tvb_string))); } } - } static void do_address_str(const char* addr, tvbuff_t* tvb_string, asn1_ctx_t* actx) { wmem_strbuf_t *ddatype = (wmem_strbuf_t *)actx->value_ptr; - p1_address_ctx_t* ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx; + p1_address_ctx_t* ctx = get_do_address_ctx(actx); do_address(addr, tvb_string, actx); @@ -942,7 +958,7 @@ static void do_address_str(const char* addr, tvbuff_t* tvb_string, asn1_ctx_t* a static void do_address_str_tree(const char* addr, tvbuff_t* tvb_string, asn1_ctx_t* actx, proto_tree* tree) { wmem_strbuf_t *ddatype = (wmem_strbuf_t *)actx->value_ptr; - p1_address_ctx_t* ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx; + p1_address_ctx_t* ctx = get_do_address_ctx(actx); do_address(addr, tvb_string, actx); @@ -969,7 +985,7 @@ dissect_p1_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, as static int dissect_p1_MTAName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 695 "../../asn1/p1/p1.cnf" +#line 700 "../../asn1/p1/p1.cnf" tvbuff_t *mtaname = NULL; p1_address_ctx_t* ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx; @@ -1047,7 +1063,7 @@ dissect_p1_TokenTypeIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int static int dissect_p1_TokenTypeData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1155 "../../asn1/p1/p1.cnf" +#line 1160 "../../asn1/p1/p1.cnf" if(actx->external.direct_reference) call_ber_oid_callback(actx->external.direct_reference, tvb, offset, actx->pinfo, tree, actx->private_data); @@ -1158,7 +1174,7 @@ static const ber_choice_t Credentials_choice[] = { int dissect_p1_Credentials(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1163 "../../asn1/p1/p1.cnf" +#line 1168 "../../asn1/p1/p1.cnf" gint credentials = -1; offset = dissect_ber_choice(actx, tree, tvb, offset, @@ -1417,7 +1433,7 @@ static const value_string p1_MTABindError_vals[] = { static int dissect_p1_MTABindError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1146 "../../asn1/p1/p1.cnf" +#line 1151 "../../asn1/p1/p1.cnf" int error = -1; offset = dissect_ber_constrained_integer(implicit_tag, actx, tree, tvb, offset, 0U, ub_integer_options, hf_index, &error); @@ -1434,7 +1450,7 @@ dissect_p1_MTABindError(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset static int dissect_p1_T_x121_dcc_code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 843 "../../asn1/p1/p1.cnf" +#line 848 "../../asn1/p1/p1.cnf" tvbuff_t *nstring = NULL; offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString, @@ -1453,7 +1469,7 @@ dissect_p1_T_x121_dcc_code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off static int dissect_p1_T_iso_3166_alpha2_code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 801 "../../asn1/p1/p1.cnf" +#line 806 "../../asn1/p1/p1.cnf" tvbuff_t *nstring = NULL; offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString, @@ -1494,7 +1510,7 @@ dissect_p1_CountryName_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse static int dissect_p1_CountryName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 596 "../../asn1/p1/p1.cnf" +#line 601 "../../asn1/p1/p1.cnf" do_address("/C=", NULL, actx); offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, @@ -1510,7 +1526,7 @@ dissect_p1_CountryName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset static int dissect_p1_T_numeric(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 850 "../../asn1/p1/p1.cnf" +#line 855 "../../asn1/p1/p1.cnf" tvbuff_t *nstring = NULL; offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString, @@ -1529,7 +1545,7 @@ dissect_p1_T_numeric(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U static int dissect_p1_T_printable(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 808 "../../asn1/p1/p1.cnf" +#line 813 "../../asn1/p1/p1.cnf" tvbuff_t *nstring = NULL; offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString, @@ -1570,7 +1586,7 @@ dissect_p1_AdministrationDomainName_U(gboolean implicit_tag _U_, tvbuff_t *tvb _ static int dissect_p1_AdministrationDomainName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 601 "../../asn1/p1/p1.cnf" +#line 606 "../../asn1/p1/p1.cnf" do_address("/A=", NULL, actx); offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset, @@ -1586,7 +1602,7 @@ dissect_p1_AdministrationDomainName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_ static int dissect_p1_T_numeric_private_domain_identifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 864 "../../asn1/p1/p1.cnf" +#line 869 "../../asn1/p1/p1.cnf" tvbuff_t *nstring = NULL; offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString, @@ -1605,7 +1621,7 @@ dissect_p1_T_numeric_private_domain_identifier(gboolean implicit_tag _U_, tvbuff static int dissect_p1_T_printable_private_domain_identifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 822 "../../asn1/p1/p1.cnf" +#line 827 "../../asn1/p1/p1.cnf" tvbuff_t *nstring = NULL; offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString, @@ -1635,7 +1651,7 @@ static const ber_choice_t PrivateDomainIdentifier_choice[] = { static int dissect_p1_PrivateDomainIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 735 "../../asn1/p1/p1.cnf" +#line 740 "../../asn1/p1/p1.cnf" do_address("/P=", NULL, actx); @@ -1669,7 +1685,7 @@ dissect_p1_GlobalDomainIdentifier_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_ static int dissect_p1_GlobalDomainIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1025 "../../asn1/p1/p1.cnf" +#line 1030 "../../asn1/p1/p1.cnf" p1_address_ctx_t* ctx; if (actx->subtree.tree_ctx == NULL) { @@ -1703,7 +1719,7 @@ dissect_p1_GlobalDomainIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, static int dissect_p1_LocalIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1051 "../../asn1/p1/p1.cnf" +#line 1056 "../../asn1/p1/p1.cnf" tvbuff_t *id = NULL; p1_address_ctx_t* ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx; @@ -1744,7 +1760,7 @@ dissect_p1_MTSIdentifier_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off static int dissect_p1_MTSIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1065 "../../asn1/p1/p1.cnf" +#line 1070 "../../asn1/p1/p1.cnf" set_do_address(actx, TRUE); @@ -1763,7 +1779,7 @@ dissect_p1_MTSIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse static int dissect_p1_MessageIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1020 "../../asn1/p1/p1.cnf" +#line 1025 "../../asn1/p1/p1.cnf" actx->subtree.tree = NULL; offset = dissect_p1_MTSIdentifier(implicit_tag, tvb, offset, actx, tree, hf_index); @@ -1778,7 +1794,7 @@ dissect_p1_MessageIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o static int dissect_p1_X121Address(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 712 "../../asn1/p1/p1.cnf" +#line 717 "../../asn1/p1/p1.cnf" tvbuff_t *string = NULL; offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString, @@ -1806,7 +1822,7 @@ dissect_p1_NetworkAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs static int dissect_p1_TerminalIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 722 "../../asn1/p1/p1.cnf" +#line 727 "../../asn1/p1/p1.cnf" tvbuff_t *string = NULL; offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString, @@ -1825,7 +1841,7 @@ dissect_p1_TerminalIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int static int dissect_p1_T_numeric_private_domain_name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 857 "../../asn1/p1/p1.cnf" +#line 862 "../../asn1/p1/p1.cnf" tvbuff_t *nstring = NULL; offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString, @@ -1844,7 +1860,7 @@ dissect_p1_T_numeric_private_domain_name(gboolean implicit_tag _U_, tvbuff_t *tv static int dissect_p1_T_printable_private_domain_name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 815 "../../asn1/p1/p1.cnf" +#line 820 "../../asn1/p1/p1.cnf" tvbuff_t *nstring = NULL; offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString, @@ -1874,7 +1890,7 @@ static const ber_choice_t PrivateDomainName_choice[] = { static int dissect_p1_PrivateDomainName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 729 "../../asn1/p1/p1.cnf" +#line 734 "../../asn1/p1/p1.cnf" do_address("/P=", NULL, actx); @@ -1892,7 +1908,7 @@ dissect_p1_PrivateDomainName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o static int dissect_p1_OrganizationName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 744 "../../asn1/p1/p1.cnf" +#line 749 "../../asn1/p1/p1.cnf" tvbuff_t *string = NULL; offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString, @@ -1922,7 +1938,7 @@ dissect_p1_NumericUserIdentifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i static int dissect_p1_T_printable_surname(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 905 "../../asn1/p1/p1.cnf" +#line 910 "../../asn1/p1/p1.cnf" tvbuff_t *pstring = NULL; offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString, @@ -1941,7 +1957,7 @@ dissect_p1_T_printable_surname(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int static int dissect_p1_T_printable_given_name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 912 "../../asn1/p1/p1.cnf" +#line 917 "../../asn1/p1/p1.cnf" tvbuff_t *pstring = NULL; offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString, @@ -1960,7 +1976,7 @@ dissect_p1_T_printable_given_name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, static int dissect_p1_T_printable_initials(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 919 "../../asn1/p1/p1.cnf" +#line 924 "../../asn1/p1/p1.cnf" tvbuff_t *pstring = NULL; offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString, @@ -1979,7 +1995,7 @@ dissect_p1_T_printable_initials(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in static int dissect_p1_T_printable_generation_qualifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 926 "../../asn1/p1/p1.cnf" +#line 931 "../../asn1/p1/p1.cnf" tvbuff_t *pstring = NULL; offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString, @@ -2015,7 +2031,7 @@ dissect_p1_PersonalName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset static int dissect_p1_OrganizationalUnitName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 764 "../../asn1/p1/p1.cnf" +#line 769 "../../asn1/p1/p1.cnf" tvbuff_t *string = NULL; offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString, @@ -2059,7 +2075,7 @@ static const ber_sequence_t BuiltInStandardAttributes_sequence[] = { static int dissect_p1_BuiltInStandardAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1082 "../../asn1/p1/p1.cnf" +#line 1087 "../../asn1/p1/p1.cnf" actx->subtree.tree = tree; offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, @@ -2075,7 +2091,7 @@ dissect_p1_BuiltInStandardAttributes(gboolean implicit_tag _U_, tvbuff_t *tvb _U static int dissect_p1_T_printable_type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 961 "../../asn1/p1/p1.cnf" +#line 966 "../../asn1/p1/p1.cnf" tvbuff_t *pstring = NULL; offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString, @@ -2094,7 +2110,7 @@ dissect_p1_T_printable_type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of static int dissect_p1_T_printable_value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 968 "../../asn1/p1/p1.cnf" +#line 973 "../../asn1/p1/p1.cnf" tvbuff_t *pstring = NULL; offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString, @@ -2118,7 +2134,7 @@ static const ber_sequence_t BuiltInDomainDefinedAttribute_sequence[] = { static int dissect_p1_BuiltInDomainDefinedAttribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 975 "../../asn1/p1/p1.cnf" +#line 980 "../../asn1/p1/p1.cnf" actx->value_ptr = wmem_strbuf_new(wmem_packet_scope(), ""); offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, @@ -2204,6 +2220,10 @@ dissect_p1_T_extension_attribute_value(gboolean implicit_tag _U_, tvbuff_t *tvb #line 577 "../../asn1/p1/p1.cnf" proto_item_append_text(tree, " (%s)", val_to_str(actx->external.indirect_reference, p1_ExtensionAttributeType_vals, "extension-attribute-type %d")); + if (!actx->pinfo->private_table) { + actx->pinfo->private_table = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free); + } + g_hash_table_insert(actx->pinfo->private_table, (gpointer)P1_ADDRESS_CTX, actx->subtree.tree_ctx); if (dissector_try_uint(p1_extension_attribute_dissector_table, actx->external.indirect_reference, tvb, actx->pinfo, tree)) { offset =tvb_reported_length(tvb); } else { @@ -2215,6 +2235,7 @@ dissect_p1_T_extension_attribute_value(gboolean implicit_tag _U_, tvbuff_t *tvb offset = dissect_unknown_ber(actx->pinfo, tvb, offset, next_tree); expert_add_info(actx->pinfo, item, &ei_p1_unknown_extension_attribute_type); } + g_hash_table_steal(actx->pinfo->private_table, (gpointer)P1_ADDRESS_CTX); @@ -2271,7 +2292,7 @@ dissect_p1_ORName_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_ int dissect_p1_ORName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1001 "../../asn1/p1/p1.cnf" +#line 1006 "../../asn1/p1/p1.cnf" p1_address_ctx_t* ctx; if (actx->subtree.tree_ctx == NULL) { @@ -2487,7 +2508,7 @@ static const value_string p1_BuiltInContentType_U_vals[] = { static int dissect_p1_BuiltInContentType_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 643 "../../asn1/p1/p1.cnf" +#line 648 "../../asn1/p1/p1.cnf" static guint32 ict = -1; p1_address_ctx_t* ctx; @@ -2532,7 +2553,7 @@ dissect_p1_BuiltInContentType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int int dissect_p1_ExtendedContentType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 622 "../../asn1/p1/p1.cnf" +#line 627 "../../asn1/p1/p1.cnf" const char *name = NULL; p1_address_ctx_t* ctx; @@ -2663,7 +2684,7 @@ dissect_p1_PerMessageIndicators(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in static int dissect_p1_Time(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1124 "../../asn1/p1/p1.cnf" +#line 1129 "../../asn1/p1/p1.cnf" tvbuff_t *arrival = NULL; p1_address_ctx_t* ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx; @@ -2728,7 +2749,7 @@ dissect_p1_T_bilateral_domain(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int static int dissect_p1_T_bilateral_information(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1190 "../../asn1/p1/p1.cnf" +#line 1195 "../../asn1/p1/p1.cnf" proto_item *item = NULL; int loffset = 0; guint32 len = 0; @@ -2796,7 +2817,7 @@ static const value_string p1_RoutingAction_vals[] = { static int dissect_p1_RoutingAction(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1136 "../../asn1/p1/p1.cnf" +#line 1141 "../../asn1/p1/p1.cnf" int action = 0; offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, @@ -2857,7 +2878,7 @@ static const ber_sequence_t DomainSuppliedInformation_set[] = { static int dissect_p1_DomainSuppliedInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1103 "../../asn1/p1/p1.cnf" +#line 1108 "../../asn1/p1/p1.cnf" set_do_address(actx, FALSE); @@ -2882,7 +2903,7 @@ static const ber_sequence_t TraceInformationElement_sequence[] = { static int dissect_p1_TraceInformationElement(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1087 "../../asn1/p1/p1.cnf" +#line 1092 "../../asn1/p1/p1.cnf" set_do_address(actx, TRUE); @@ -2973,7 +2994,7 @@ static const value_string p1_StandardExtension_vals[] = { static int dissect_p1_StandardExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 608 "../../asn1/p1/p1.cnf" +#line 613 "../../asn1/p1/p1.cnf" actx->external.indirect_ref_present = TRUE; actx->external.direct_ref_present = FALSE; offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index, @@ -2989,7 +3010,7 @@ dissect_p1_StandardExtension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o static int dissect_p1_T_private_extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 613 "../../asn1/p1/p1.cnf" +#line 618 "../../asn1/p1/p1.cnf" actx->external.indirect_ref_present = FALSE; actx->external.direct_reference = NULL; offset = dissect_ber_object_identifier_str(implicit_tag, actx, tree, tvb, offset, hf_index, &actx->external.direct_reference); @@ -3226,7 +3247,7 @@ dissect_p1_MessageTransferEnvelope(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int dissect_p1_Content(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 667 "../../asn1/p1/p1.cnf" +#line 672 "../../asn1/p1/p1.cnf" tvbuff_t *next_tvb; p1_address_ctx_t* ctx = (p1_address_ctx_t*)actx->subtree.tree_ctx; @@ -3640,7 +3661,7 @@ static const ber_choice_t ReportType_choice[] = { static int dissect_p1_ReportType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1222 "../../asn1/p1/p1.cnf" +#line 1227 "../../asn1/p1/p1.cnf" gint report = -1; offset = dissect_ber_choice(actx, tree, tvb, offset, @@ -3780,7 +3801,7 @@ static const ber_choice_t MTS_APDU_choice[] = { static int dissect_p1_MTS_APDU(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1208 "../../asn1/p1/p1.cnf" +#line 1213 "../../asn1/p1/p1.cnf" gint apdu = -1; offset = dissect_ber_choice(actx, tree, tvb, offset, @@ -3837,7 +3858,7 @@ static const ber_sequence_t MTASuppliedInformation_set[] = { static int dissect_p1_MTASuppliedInformation(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1112 "../../asn1/p1/p1.cnf" +#line 1117 "../../asn1/p1/p1.cnf" set_do_address(actx, FALSE); @@ -3863,7 +3884,7 @@ static const ber_sequence_t InternalTraceInformationElement_sequence[] = { static int dissect_p1_InternalTraceInformationElement(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1095 "../../asn1/p1/p1.cnf" +#line 1100 "../../asn1/p1/p1.cnf" set_do_address(actx, TRUE); @@ -3997,7 +4018,7 @@ static const ber_sequence_t MTSBindResult_set[] = { static int dissect_p1_MTSBindResult(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1246 "../../asn1/p1/p1.cnf" +#line 1251 "../../asn1/p1/p1.cnf" /* TODO: there may be other entry points where this global should be initialized... */ actx->subtree.tree = NULL; @@ -4130,7 +4151,7 @@ static const ber_sequence_t MessageSubmissionArgument_sequence[] = { static int dissect_p1_MessageSubmissionArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1231 "../../asn1/p1/p1.cnf" +#line 1236 "../../asn1/p1/p1.cnf" p1_initialize_content_globals(actx, tree, TRUE); offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, MessageSubmissionArgument_sequence, hf_index, ett_p1_MessageSubmissionArgument); @@ -4704,7 +4725,7 @@ static const ber_sequence_t MessageDeliveryArgument_sequence[] = { static int dissect_p1_MessageDeliveryArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1236 "../../asn1/p1/p1.cnf" +#line 1241 "../../asn1/p1/p1.cnf" p1_initialize_content_globals(actx, tree, TRUE); offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, MessageDeliveryArgument_sequence, hf_index, ett_p1_MessageDeliveryArgument); @@ -4814,7 +4835,7 @@ static const ber_sequence_t ReportDeliveryArgument_set[] = { static int dissect_p1_ReportDeliveryArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1241 "../../asn1/p1/p1.cnf" +#line 1246 "../../asn1/p1/p1.cnf" p1_initialize_content_globals(actx, tree, TRUE); offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset, ReportDeliveryArgument_set, hf_index, ett_p1_ReportDeliveryArgument); @@ -4952,7 +4973,7 @@ dissect_p1_RefusedArgument(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off static int dissect_p1_T_refused_extension(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 593 "../../asn1/p1/p1.cnf" +#line 598 "../../asn1/p1/p1.cnf" /*XXX not implemented yet */ @@ -5027,7 +5048,7 @@ dissect_p1_UserName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_ static int dissect_p1_T_x121_address(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 836 "../../asn1/p1/p1.cnf" +#line 841 "../../asn1/p1/p1.cnf" tvbuff_t *nstring = NULL; offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString, @@ -5732,7 +5753,7 @@ static const ber_sequence_t ORAddress_sequence[] = { int dissect_p1_ORAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 980 "../../asn1/p1/p1.cnf" +#line 985 "../../asn1/p1/p1.cnf" p1_address_ctx_t* ctx; if (actx->subtree.tree_ctx == NULL) { @@ -6228,7 +6249,7 @@ dissect_p1_CertificateSelectors(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in static int dissect_p1_CommonName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 784 "../../asn1/p1/p1.cnf" +#line 789 "../../asn1/p1/p1.cnf" tvbuff_t *string = NULL; offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString, @@ -6247,7 +6268,7 @@ dissect_p1_CommonName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _ static int dissect_p1_TeletexCommonName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 794 "../../asn1/p1/p1.cnf" +#line 799 "../../asn1/p1/p1.cnf" tvbuff_t *string = NULL; offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString, @@ -6345,7 +6366,7 @@ dissect_p1_UniversalCommonName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int static int dissect_p1_TeletexOrganizationName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 754 "../../asn1/p1/p1.cnf" +#line 759 "../../asn1/p1/p1.cnf" tvbuff_t *string = NULL; offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString, @@ -6373,7 +6394,7 @@ dissect_p1_UniversalOrganizationName(gboolean implicit_tag _U_, tvbuff_t *tvb _U static int dissect_p1_T_teletex_surname(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 933 "../../asn1/p1/p1.cnf" +#line 938 "../../asn1/p1/p1.cnf" tvbuff_t *tstring = NULL; offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString, @@ -6392,7 +6413,7 @@ dissect_p1_T_teletex_surname(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o static int dissect_p1_T_teletex_given_name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 940 "../../asn1/p1/p1.cnf" +#line 945 "../../asn1/p1/p1.cnf" tvbuff_t *tstring = NULL; offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString, @@ -6411,7 +6432,7 @@ dissect_p1_T_teletex_given_name(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in static int dissect_p1_T_teletex_initials(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 947 "../../asn1/p1/p1.cnf" +#line 952 "../../asn1/p1/p1.cnf" tvbuff_t *tstring = NULL; offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString, @@ -6430,7 +6451,7 @@ dissect_p1_T_teletex_initials(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int static int dissect_p1_T_teletex_generation_qualifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 954 "../../asn1/p1/p1.cnf" +#line 959 "../../asn1/p1/p1.cnf" tvbuff_t *tstring = NULL; offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString, @@ -6483,7 +6504,7 @@ dissect_p1_UniversalPersonalName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i static int dissect_p1_TeletexOrganizationalUnitName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 774 "../../asn1/p1/p1.cnf" +#line 779 "../../asn1/p1/p1.cnf" tvbuff_t *string = NULL; offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString, @@ -6548,7 +6569,7 @@ dissect_p1_PDSName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, static int dissect_p1_T_x121_dcc_code_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 871 "../../asn1/p1/p1.cnf" +#line 876 "../../asn1/p1/p1.cnf" tvbuff_t *nstring = NULL; offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString, @@ -6567,7 +6588,7 @@ dissect_p1_T_x121_dcc_code_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int static int dissect_p1_T_iso_3166_alpha2_code_01(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 829 "../../asn1/p1/p1.cnf" +#line 834 "../../asn1/p1/p1.cnf" tvbuff_t *nstring = NULL; offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString, @@ -6608,7 +6629,7 @@ dissect_p1_PhysicalDeliveryCountryName(gboolean implicit_tag _U_, tvbuff_t *tvb static int dissect_p1_T_numeric_code(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 878 "../../asn1/p1/p1.cnf" +#line 883 "../../asn1/p1/p1.cnf" tvbuff_t *nstring = NULL; offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_NumericString, @@ -7032,7 +7053,7 @@ dissect_p1_TerminalType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset static int dissect_p1_T_type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 886 "../../asn1/p1/p1.cnf" +#line 891 "../../asn1/p1/p1.cnf" tvbuff_t *tstring = NULL; offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString, @@ -7051,7 +7072,7 @@ dissect_p1_T_type(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, static int dissect_p1_T_teletex_value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 893 "../../asn1/p1/p1.cnf" +#line 898 "../../asn1/p1/p1.cnf" tvbuff_t *tstring = NULL; offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_TeletexString, @@ -7075,7 +7096,7 @@ static const ber_sequence_t TeletexDomainDefinedAttribute_sequence[] = { static int dissect_p1_TeletexDomainDefinedAttribute(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 900 "../../asn1/p1/p1.cnf" +#line 905 "../../asn1/p1/p1.cnf" actx->value_ptr = wmem_strbuf_new(wmem_packet_scope(), ""); offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset, @@ -7138,7 +7159,7 @@ static const ber_sequence_t MTANameAndOptionalGDI_sequence[] = { static int dissect_p1_MTANameAndOptionalGDI(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1073 "../../asn1/p1/p1.cnf" +#line 1078 "../../asn1/p1/p1.cnf" set_do_address(actx, TRUE); @@ -7198,7 +7219,7 @@ dissect_p1_TokenDataType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse static int dissect_p1_T_value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { -#line 1175 "../../asn1/p1/p1.cnf" +#line 1180 "../../asn1/p1/p1.cnf" proto_item_append_text(tree, " (%s)", val_to_str(actx->external.indirect_reference, p1_TokenDataType_vals, "tokendata-type %d")); if (dissector_try_uint(p1_tokendata_dissector_table, actx->external.indirect_reference, tvb, actx->pinfo, tree)) { @@ -8423,7 +8444,7 @@ static int dissect_SecurityClassification_PDU(tvbuff_t *tvb _U_, packet_info *pi /*--- End of included file: packet-p1-fn.c ---*/ -#line 149 "../../asn1/p1/packet-p1-template.c" +#line 165 "../../asn1/p1/packet-p1-template.c" /*--- Included file: packet-p1-table11.c ---*/ @@ -8455,7 +8476,7 @@ static const ros_opr_t p3_opr_tab[] = { /*--- End of included file: packet-p1-table11.c ---*/ -#line 151 "../../asn1/p1/packet-p1-template.c" +#line 167 "../../asn1/p1/packet-p1-template.c" /*--- Included file: packet-p1-table21.c ---*/ #line 1 "../../asn1/p1/packet-p1-table21.c" @@ -8500,7 +8521,7 @@ static const ros_err_t p3_err_tab[] = { /*--- End of included file: packet-p1-table21.c ---*/ -#line 152 "../../asn1/p1/packet-p1-template.c" +#line 168 "../../asn1/p1/packet-p1-template.c" static const ros_info_t p3_ros_info = { "P3", @@ -10929,7 +10950,7 @@ void proto_register_p1(void) { NULL, HFILL }}, /*--- End of included file: packet-p1-hfarr.c ---*/ -#line 320 "../../asn1/p1/packet-p1-template.c" +#line 336 "../../asn1/p1/packet-p1-template.c" }; /* List of subtrees */ @@ -11128,7 +11149,7 @@ void proto_register_p1(void) { &ett_p1_SEQUENCE_SIZE_1_ub_recipients_OF_PerRecipientProbeSubmissionFields, /*--- End of included file: packet-p1-ettarr.c ---*/ -#line 333 "../../asn1/p1/packet-p1-template.c" +#line 349 "../../asn1/p1/packet-p1-template.c" }; static ei_register_info ei[] = { @@ -11177,7 +11198,7 @@ void proto_register_p1(void) { new_register_ber_syntax_dissector("ORName", proto_p1, dissect_ORName_PDU); /*--- End of included file: packet-p1-syn-reg.c ---*/ -#line 374 "../../asn1/p1/packet-p1-template.c" +#line 390 "../../asn1/p1/packet-p1-template.c" } @@ -11343,7 +11364,7 @@ void proto_reg_handoff_p1(void) { /*--- End of included file: packet-p1-dis-tab.c ---*/ -#line 382 "../../asn1/p1/packet-p1-template.c" +#line 398 "../../asn1/p1/packet-p1-template.c" /* APPLICATION CONTEXT */ |