aboutsummaryrefslogtreecommitdiffstats
path: root/skeletons
diff options
context:
space:
mode:
authorLev Walkin <vlm@lionet.info>2004-09-04 04:44:11 +0000
committerLev Walkin <vlm@lionet.info>2004-09-04 04:44:11 +0000
commit60b7cffb93461c32948a3f00ba86c91acbc71992 (patch)
tree88a25fe32510b4f095144b5e7dbb643985ad4828 /skeletons
parent3de5a3ac5cb1d3bb2a259cbc0fd632de8f79c4d7 (diff)
ANY type support, and more logging
Diffstat (limited to 'skeletons')
-rw-r--r--skeletons/constr_SEQUENCE.c14
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;