printf("ReassembleInsertSegment: before list seg: seg->seq %u, list_seg->seq %u, list_seg->payload_len %u\n",seg->seq,list_seg->seq,list_seg->payload_len);
printf("ReassembleInsertSegment: starts before list seg, ends before list end: seg->seq %u, list_seg->seq %u, list_seg->payload_len %u overlap is %u\n",seg->seq,list_seg->seq,list_seg->payload_len,overlap);
#endif
/* seg fully overlaps list_seg, starts before, at end point */
}elseif(SEQ_EQ((seg->seq+seg->payload_len),
(list_seg->seq+list_seg->payload_len))){
overlap=list_seg->payload_len;
end_same=TRUE;
overlap_point=list_seg->seq;
#ifdef DEBUG
printf("ReassembleInsertSegment: starts before list seg, ends at list end: list prev %p seg->seq %u, list_seg->seq %u, list_seg->payload_len %u overlap is %u\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 */
}elseif(SEQ_GT((seg->seq+seg->payload_len),
(list_seg->seq+list_seg->payload_len))){
overlap=list_seg->payload_len;
end_after=TRUE;
overlap_point=list_seg->seq;
#ifdef DEBUG
printf("ReassembleInsertSegment: starts before list seg, ends after list end: seg->seq %u, list_seg->seq %u, list_seg->payload_len %u overlap is %u\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*/
@ -379,7 +391,9 @@ static int HandleSegmentStartsBeforeListSegment(TcpStream *stream, TcpSegment *l
caseOS_POLICY_LINUX:
caseOS_POLICY_MACOS:
caseOS_POLICY_LAST:
#ifdef DEBUG
printf("Replacing Old Data in starts before list seg list_seg->seq %u policy %u overlap %u\n",list_seg->seq,os_policy,overlap);
printf("ReassembleInsertSegment: starts at list seq, ends before list end: seg->seq %u, list_seg->seq %u, list_seg->payload_len %u overlap is%u\n",seg->seq,list_seg->seq,list_seg->payload_len,overlap);
#endif
/* seg starts at seq, ends at seq, retransmission. */
}elseif(SEQ_EQ((seg->seq+seg->payload_len),
@ -442,14 +462,17 @@ static int HandleSegmentStartsAtSameListSegment(TcpStream *stream, TcpSegment *l
/* check csum, ack, other differences? */
overlap=seg->payload_len;
end_same=TRUE;
#ifdef DEBUG
printf("ReassembleInsertSegment: (retransmission) starts at list seq, ends at list end: seg->seq %u, list_seg->seq %u, list_seg->payload_len %u overlap is%u\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))){
overlap=list_seg->payload_len;
end_after=TRUE;
#ifdef DEBUG
printf("ReassembleInsertSegment: starts at list seq, ends beyond list end: seg->seq %u, list_seg->seq %u, list_seg->payload_len %u overlap is%u\n",seg->seq,list_seg->seq,list_seg->payload_len,overlap);
#endif
}
if(overlap>0){
/*Handle the case when newly arrived segment ends after original
@ -491,13 +514,17 @@ static int HandleSegmentStartsAtSameListSegment(TcpStream *stream, TcpSegment *l
caseOS_POLICY_VISTA:
caseOS_POLICY_MACOS:
caseOS_POLICY_FIRST:
#ifdef DEBUG
printf("Using Old Data in starts at list case, list_seg->seq %u policy %u overlap %u\n",list_seg->seq,os_policy,overlap);
printf("ReassembleInsertSegment: starts beyond list seq, ends before list end: seg->seq %u, list_seg->seq %u, list_seg->payload_len %u overlap is %u\n",seg->seq,list_seg->seq,list_seg->payload_len,overlap);
#endif
/* seg starts after seq, before end, ends at seq. */
printf("ReassembleInsertSegment: starts beyond list seq, ends at list end: seg->seq %u, list_seg->seq %u, list_seg->payload_len %u overlap is %u\n",seg->seq,list_seg->seq,list_seg->payload_len,overlap);
#endif
/* seg starts after seq, before end, ends beyond seq. */
printf("ReassembleInsertSegment: starts beyond list seq, before list end, ends at list end: seg->seq %u, list_seg->seq %u, list_seg->payload_len %u overlap is %u\n",seg->seq,list_seg->seq,list_seg->payload_len,overlap);
#endif
}
if(overlap>0){
/*Handle the case when newly arrived segment ends after original
@ -610,7 +643,9 @@ static int HandleSegmentStartsAfterListSegment(TcpStream *stream, TcpSegment *li
caseOS_POLICY_LINUX:
caseOS_POLICY_MACOS:
caseOS_POLICY_FIRST:
#ifdef DEBUG
printf("Using Old Data in starts beyond list case, list_seg->seq %u policy %u overlap %u\n",list_seg->seq,os_policy,overlap);
#endif
break;
caseOS_POLICY_SOLARIS:
caseOS_POLICY_HPUX11:
@ -618,7 +653,9 @@ static int HandleSegmentStartsAfterListSegment(TcpStream *stream, TcpSegment *li