URL
https://opencores.org/ocsvn/plasma/plasma/trunk
[/] [plasma/] [trunk/] [kernel/] [tcpip.c] - Diff between revs 430 and 431
Go to most recent revision |
Show entire file |
Details |
Blame |
View Log
Rev 430 |
Rev 431 |
Line 953... |
Line 953... |
TCPSendPacket(socket, frameOut, TCP_DATA);
|
TCPSendPacket(socket, frameOut, TCP_DATA);
|
}
|
}
|
}
|
}
|
|
|
//Check if FIN flag set
|
//Check if FIN flag set
|
if((packet[TCP_FLAGS] & TCP_FLAGS_FIN) && socket->ack >= seq)
|
if((packet[TCP_FLAGS] & TCP_FLAGS_FIN) && socket->ack >= seq &&
|
|
socket->state < IP_CLOSED)
|
{
|
{
|
notify = 1;
|
notify = 1;
|
socket->timeout = SOCKET_TIMEOUT;
|
socket->timeout = SOCKET_TIMEOUT;
|
if(IPVerbose)
|
if(IPVerbose)
|
printf("F");
|
printf("F");
|
Line 967... |
Line 968... |
packetOut = frameOut->packet;
|
packetOut = frameOut->packet;
|
packetOut[TCP_FLAGS] = TCP_FLAGS_ACK;
|
packetOut[TCP_FLAGS] = TCP_FLAGS_ACK;
|
++socket->ack;
|
++socket->ack;
|
TCPSendPacket(socket, frameOut, TCP_DATA);
|
TCPSendPacket(socket, frameOut, TCP_DATA);
|
if(socket->state == IP_FIN_SERVER)
|
if(socket->state == IP_FIN_SERVER)
|
socket->timeout = SOCKET_TIMEOUT;
|
IPClose2(socket);
|
else if(socket->state == IP_TCP)
|
else if(socket->state == IP_TCP)
|
socket->state = IP_FIN_CLIENT;
|
socket->state = IP_FIN_CLIENT;
|
}
|
}
|
|
|
//Notify application
|
//Notify application
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.