diff --git a/lib/c/experimental/labcomm_sig_parser.c b/lib/c/experimental/labcomm_sig_parser.c index 23e3758a91fcfc150d1817911c8625110489bef2..7c95b652a96bedee7fda683fbecf007fa89a87e7 100644 --- a/lib/c/experimental/labcomm_sig_parser.c +++ b/lib/c/experimental/labcomm_sig_parser.c @@ -401,11 +401,13 @@ int accept_packet(labcomm_sig_parser_t *d) { advancen(d, nbytes); d->current_decl_is_varsize = FALSE; // <-- a conveniance flag in labcomm_sig_parser_t VERBOSE_PRINTF("type_decl "); + get_varint(d); //ignore length field accept_signature(d); } else if (type == SAMPLE_DECL) { d->current_decl_is_varsize = FALSE; // <-- a conveniance flag in labcomm_sig_parser_t advancen(d, nbytes); VERBOSE_PRINTF("sample_decl "); + get_varint(d); //ignore length field accept_signature(d); } else if(type >= LABCOMM_USER) { #ifdef EXIT_WHEN_RECEIVING_DATA @@ -603,14 +605,19 @@ static int accept_sample_data(labcomm_sig_parser_t *d){ accept_user_id(d); unsigned int uid = pop_val(d); printf("sample data... uid=0x%x\n", uid); + int len = get_varint(d); //length field #ifdef DEBUG dump_signature(d, uid); #endif +#ifdef SKIP_BY_PARSING labcomm_signature_t *sigt = get_sig_t(d, uid); int encoded_size = sigt->encoded_size(sigt, NULL); INFO_PRINTF("encoded_size from sig: %d\n", encoded_size); labcomm_signature_t *sig = get_sig_t(d, uid); skip_packed_sample_data(d, sig); +#else + advancen(d, len); +#endif return TRUE; }