printf("HandleSegmentStartsBeforeListSegment: starts before list seg, ends before list end: seg->seq %"PRIu32", list_seg->seq %"PRIu32", list_seg->payload_len %"PRIu32" overlap is %"PRIu32"\n",seg->seq,list_seg->seq,list_seg->payload_len,overlap);
printf("HandleSegmentStartsBeforeListSegment: starts before list seg, ends before list end: seg->seq %"PRIu32", list_seg->seq %"PRIu32", list_seg->payload_len %"PRIu16" overlap is %"PRIu32", overlap point %"PRIu32"\n",seg->seq,list_seg->seq,list_seg->payload_len,overlap,overlap_point);
#endif
/* seg fully overlaps list_seg, starts before, at end point */
/* seg fully overlaps list_seg, starts before, at end point
*[aaa[ababab]]wherea=seg,b=list_seg
*overlapis[ababab],whichislist_seg->payload_len*/
overlap=list_seg->payload_len;
end_same=TRUE;
overlap_point=list_seg->seq;
@ -329,8 +334,10 @@ static int HandleSegmentStartsBeforeListSegment(TcpStream *stream, TcpSegment *l
printf("HandleSegmentStartsBeforeListSegment: starts before list seg, ends at list end: list prev %p seg->seq %"PRIu32", list_seg->seq %"PRIu32", list_seg->payload_len %"PRIu32" overlap is %"PRIu32"\n",list_seg->prev,seg->seq,list_seg->seq,list_seg->payload_len,overlap);
#endif
/* seg fully overlaps list_seg, starts before, ends after list endpoint */
/* seg fully overlaps list_seg, starts before, ends after list endpoint
*[aaa[ababab]aaa]wherea=seg,b=list_seg
*overlapis[ababab]whichislist_seg->payload_len*/
overlap=list_seg->payload_len;
end_after=TRUE;
overlap_point=list_seg->seq;
@ -338,12 +345,15 @@ static int HandleSegmentStartsBeforeListSegment(TcpStream *stream, TcpSegment *l
printf("HandleSegmentStartsBeforeListSegment: starts before list seg, ends after list end: seg->seq %"PRIu32", list_seg->seq %"PRIu32", list_seg->payload_len %"PRIu32" overlap is %"PRIu32"\n",seg->seq,list_seg->seq,list_seg->payload_len,overlap);
#endif
}
if(overlap>0){
/* Handling case when the packet starts before the first packet in the list */
printf("HandleSegmentStartsAtSameListSegment: starts at list seq, ends before list end: seg->seq %"PRIu32", list_seg->seq %"PRIu32", list_seg->payload_len %"PRIu32" overlap is%"PRIu32"\n",seg->seq,list_seg->seq,list_seg->payload_len,overlap);
#endif
/* seg starts at seq, ends at seq, retransmission. */
/* seg starts at seq, ends at seq, retransmission.
*bothsegmentsarethesame,sooverlapiseither
*seg->payload_lenorlist_seg->payload_len*/
/* check csum, ack, other differences? */
overlap=seg->payload_len;
end_same=TRUE;
#ifdef DEBUG
printf("HandleSegmentStartsAtSameListSegment: (retransmission) starts at list seq, ends at list end: seg->seq %"PRIu32", list_seg->seq %"PRIu32", list_seg->payload_len %"PRIu32" overlap is%"PRIu32"\n",seg->seq,list_seg->seq,list_seg->payload_len,overlap);
#endif
/* seg starts at seq, ends beyond seq. */
}elseif(SEQ_GT((seg->seq+seg->payload_len),
(list_seg->seq+list_seg->payload_len))){
/* seg starts at seq, ends beyond seq. */
/* seg->seg == list_seg->seq and seg->payload_len > list_seg->payload_len
printf("HandleSegmentStartsAfterListSegment: starts beyond list seq, ends before list end: seg->seq %"PRIu32", list_seg->seq %"PRIu32", list_seg->payload_len %"PRIu32" overlap is %"PRIu32"\n",seg->seq,list_seg->seq,list_seg->payload_len,overlap);
#endif
/* seg starts after seq, before end, ends at seq. */
printf("HandleSegmentStartsAfterListSegment: starts beyond list seq, ends at list end: seg->seq %"PRIu32", list_seg->seq %"PRIu32", list_seg->payload_len %"PRIu32" overlap is %"PRIu32"\n",seg->seq,list_seg->seq,list_seg->payload_len,overlap);
#endif
/* seg starts after seq, before end, ends beyond seq. */
printf("HandleSegmentStartsAfterListSegment: starts beyond list seq, before list end, ends at list end: seg->seq %"PRIu32", list_seg->seq %"PRIu32", list_seg->payload_len %"PRIu32" overlap is %"PRIu32"\n",seg->seq,list_seg->seq,list_seg->payload_len,overlap);