*/
void TCP_Initialise(void)
{
+ giTCP_NextOutPort += rand()%32;
IPStack_AddFile(&gTCP_ServerFile);
IPStack_AddFile(&gTCP_ClientFile);
IPv4_RegisterCallback(IP4PROT_TCP, TCP_GetPacket);
// TODO: This should be moved out of the watcher thread,
// so that a single lost packet on one connection doesn't cause
// all connections on the interface to lag.
+ // - Meh, no real issue, as the cache shouldn't be that large
TCP_INT_UpdateRecievedFromFuture(Connection);
// ACK Packet
RingBuffer_Write( Connection->RecievedBuffer, Pkt->Data, Pkt->Length );
- #if USE_SELECT
VFS_MarkAvaliable(&Connection->Node, 1);
- #endif
Mutex_Release( &Connection->lRecievedPackets );
}
packet->SourcePort = htons(Connection->LocalPort);
packet->DestPort = htons(Connection->RemotePort);
packet->DataOffset = (sizeof(tTCPHeader)/4)*16;
- packet->WindowSize = TCP_WINDOW_SIZE;
+ packet->WindowSize = htons(TCP_WINDOW_SIZE);
packet->AcknowlegementNumber = htonl(Connection->NextSequenceRcv);
packet->SequenceNumber = htonl(Connection->NextSequenceSend);