-#if 0
- print_words(0, (uint32_t *)base, len/(sizeof(uint32_t)));
- return 0;
-#else
- const uint32_t *payload;
- size_t n32_bit_words;
- expanded_header hdr;
- if (!expanded_header::parse((const uint32_t*) base, len/(sizeof(uint32_t)),
- &hdr, &payload, &n32_bit_words)){
- if (1){
- fprintf(stderr, "vrt_data_handler: malformed VRT packet!\n");
- print_words(stderr, 0, (uint32_t *)base, len/(sizeof(uint32_t)));
+ const uint32_t *word_base = (const uint32_t *) base;
+ size_t word_len = len/(sizeof(uint32_t));
+
+ bool want_more = true;
+ while (word_len > 0 && want_more){
+ const uint32_t *payload;
+ size_t n32_bit_words;
+ expanded_header hdr;
+ if (!expanded_header::parse(word_base, word_len,
+ &hdr, &payload, &n32_bit_words)){
+ if (1){
+ fprintf(stderr, "vrt_data_handler: malformed VRT packet!\n");
+ print_words(stderr, 0, word_base, word_len);
+ }
+ return 0;