Possible fix to TCP Acknowlegement Numbers
[tpg/acess2.git] / Modules / IPStack / tcp.c
index 1c9464c..9ce0f20 100644 (file)
@@ -73,7 +73,7 @@ void TCP_StartConnection(tTCPConnection *Conn)
        hdr.SequenceNumber = Conn->NextSequenceSend;
        hdr.DataOffset = (sizeof(tTCPHeader)/4) << 4;
        hdr.Flags = TCP_FLAG_SYN;
-       hdr.WindowSize = 0;     // TODO
+       hdr.WindowSize = 0xFFFF;        // Max
        hdr.Checksum = 0;       // TODO
        hdr.UrgentPointer = 0;
        
@@ -350,7 +350,7 @@ void TCP_INT_HandleConnectionPacket(tTCPConnection *Connection, tTCPHeader *Head
                TCP_INT_UpdateRecievedFromFuture(Connection);
        
                // TODO: Check ACK code validity
-               Header->AcknowlegementNumber = ntohl(pkt->Sequence) + dataLen;
+               Header->AcknowlegementNumber = ntohl(Connection->NextSequenceRcv);
                Header->SequenceNumber = ntohl(Connection->NextSequenceSend);
                Header->Flags &= TCP_FLAG_SYN;
                Header->Flags = TCP_FLAG_ACK;
@@ -416,7 +416,7 @@ void TCP_INT_UpdateRecievedFromFuture(tTCPConnection *Connection)
                
                // Looks like we found one
                TCP_INT_AppendRecieved(Connection, pkt);
-               Connection->NextSequenceRcv ++;
+               Connection->NextSequenceRcv += pkt->Length;
        }
 }
 

UCC git Repository :: git.ucc.asn.au