diff options
author | Lev Walkin <vlm@lionet.info> | 2004-09-04 04:44:11 +0000 |
---|---|---|
committer | Lev Walkin <vlm@lionet.info> | 2004-09-04 04:44:11 +0000 |
commit | 60b7cffb93461c32948a3f00ba86c91acbc71992 (patch) | |
tree | 88a25fe32510b4f095144b5e7dbb643985ad4828 /skeletons | |
parent | 3de5a3ac5cb1d3bb2a259cbc0fd632de8f79c4d7 (diff) |
ANY type support, and more logging
Diffstat (limited to 'skeletons')
-rw-r--r-- | skeletons/constr_SEQUENCE.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/skeletons/constr_SEQUENCE.c b/skeletons/constr_SEQUENCE.c index d1eb0297..67c916e6 100644 --- a/skeletons/constr_SEQUENCE.c +++ b/skeletons/constr_SEQUENCE.c @@ -303,6 +303,15 @@ SEQUENCE_decode_ber(asn1_TYPE_descriptor_t *td, */ if(!IN_EXTENSION_GROUP(specs, edx)) { + if(elements[edx].tag == (ber_tlv_tag_t)-1 + && elements[edx].optional == 0) { + /* + * This must be the ANY type. + */ + ctx->step |= 1; + goto microphase2; + } + ASN_DEBUG("Unexpected tag %s", ber_tlv_tag_string(tlv_tag)); ASN_DEBUG("Expected tag %s (%s)%s", @@ -384,9 +393,10 @@ SEQUENCE_decode_ber(asn1_TYPE_descriptor_t *td, elements[edx].type, memb_ptr2, ptr, LEFT, elements[edx].tag_mode); - ASN_DEBUG("In %s SEQUENCE decoded %d %s in %d bytes code %d", + ASN_DEBUG("In %s SEQUENCE decoded %d %s of %d " + "in %d bytes rval.code %d", td->name, edx, elements[edx].type->name, - (int)rval.consumed, rval.code); + (int)LEFT, (int)rval.consumed, rval.code); switch(rval.code) { case RC_OK: break; |