Changeset 7ebf768
- Timestamp:
- 02/14/18 15:51:27 (3 years ago)
- Branches:
- cachetimestamps, develop, etsilive, master, rc-4.0.3, rc-4.0.4, ringdecrementfix, ringperformance
- Children:
- 3004d6c
- Parents:
- 6445c52
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
lib/format_ndag.c
r6445c52 r7ebf768 87 87 int nextwriteind; 88 88 int savedsize[ENCAP_BUFFERS]; 89 uint64_t nextts; 89 90 uint32_t startidle; 90 91 uint64_t recordcount; … … 587 588 uint16_t ndag_reccount = 0; 588 589 int nr; 590 uint16_t rlen; 589 591 590 592 if ((flags & TRACE_PREP_OWN_BUFFER) == TRACE_PREP_OWN_BUFFER) { … … 629 631 if ((ndag_reccount & 0x8000) != 0) { 630 632 /* Record was truncated -- update rlen appropriately */ 631 erfptr->rlen = htons(ssock->savedsize[nr] - 632 (ssock->nextread - ssock->saved[nr])); 633 } 634 ssock->nextread += ntohs(erfptr->rlen); 633 rlen = ssock->savedsize[nr] - 634 (ssock->nextread - ssock->saved[nr]); 635 erfptr->rlen = htons(rlen); 636 } else { 637 rlen = ntohs(erfptr->rlen); 638 } 639 ssock->nextread += rlen; 640 ssock->nextts = 0; 635 641 636 642 assert(ssock->nextread - ssock->saved[nr] <= ssock->savedsize[nr]); … … 652 658 653 659 packet->order = erf_get_erf_timestamp(packet); 654 packet->error = packet->payload ? ntohs(erfptr->rlen) : 655 erf_get_framing_length(packet); 656 return ntohs(erfptr->rlen); 660 packet->error = rlen; 661 return rlen; 657 662 } 658 663 … … 734 739 ssock->bufwaiting = 0; 735 740 ssock->startidle = 0; 741 ssock->nextts = 0; 736 742 737 743 for (i = 0; i < ENCAP_BUFFERS; i++) { … … 876 882 877 883 assert(ssock->bufavail >= 0); 878 879 if (ssock->nextwriteind >= ENCAP_BUFFERS) { 884 if (ssock->nextwriteind >= ENCAP_BUFFERS) { 880 885 ssock->nextwriteind = 0; 881 886 } … … 1112 1117 dag_record_t *daghdr; 1113 1118 1119 /* If we only have one source, then no need to do any 1120 * timestamp parsing or byteswapping. 1121 */ 1122 if (rt->sourcecount == 1) { 1123 if (readable_data(&(rt->sources[0]))) { 1124 return &(rt->sources[0]); 1125 } 1126 return NULL; 1127 } 1128 1129 1114 1130 for (i = 0; i < rt->sourcecount; i ++) { 1115 1131 if (!readable_data(&(rt->sources[i]))) { … … 1117 1133 } 1118 1134 1119 daghdr = (dag_record_t *)(rt->sources[i].nextread); 1120 currentts = bswap_le_to_host64(daghdr->ts); 1135 if (rt->sources[i].nextts == 0) { 1136 daghdr = (dag_record_t *)(rt->sources[i].nextread); 1137 currentts = bswap_le_to_host64(daghdr->ts); 1138 rt->sources[i].nextts = currentts; 1139 } else { 1140 currentts = rt->sources[i].nextts; 1141 } 1121 1142 1122 1143 if (earliest == 0 || earliest > currentts) {
Note: See TracChangeset
for help on using the changeset viewer.