Author: cmihail
Date: Tue May 24 18:05:51 2011
New Revision: 51889
URL: http://svn.reactos.org/svn/reactos?rev=51889&view=rev
Log:
[TCPIP]
Fixed an error in the accepting code (in rostcp.c line 576). tcp_accepted was
being called for the wrong pcb. Instead of the pcb belonging to the listening
socket it was being called for the pcb belonging to the newly created
connection socket. In order to fix this I added an extra field to the tcp_pcb
structure to hold a reference to the listening socket. This is a crude method
and it will be replaced by something more elegant.
Right now however there's a slight nondeterminism regarding the connection. One
it's established the message either gets through to the other side or not,
randomly. This could be due to a race condition of some sorts.
Also another problem is that the server side brings down the system when
closing.
Modified:
branches/GSoC_2011/TcpIpDriver/drivers/network/afd/afd/connect.c
branches/GSoC_2011/TcpIpDriver/drivers/network/afd/afd/listen.c
branches/GSoC_2011/TcpIpDriver/drivers/network/afd/afd/main.c
branches/GSoC_2011/TcpIpDriver/drivers/network/tcpip/include/debug.h
branches/GSoC_2011/TcpIpDriver/drivers/network/tcpip/tcpip/dispatch.c
branches/GSoC_2011/TcpIpDriver/drivers/network/tcpip/tcpip/main.c
branches/GSoC_2011/TcpIpDriver/lib/drivers/ip/transport/tcp/accept.c
branches/GSoC_2011/TcpIpDriver/lib/drivers/ip/transport/tcp/event.c
branches/GSoC_2011/TcpIpDriver/lib/drivers/ip/transport/tcp/if.c
branches/GSoC_2011/TcpIpDriver/lib/drivers/ip/transport/tcp/tcp.c
branches/GSoC_2011/TcpIpDriver/lib/drivers/lwip/src/core/tcp.c
branches/GSoC_2011/TcpIpDriver/lib/drivers/lwip/src/core/tcp_in.c
branches/GSoC_2011/TcpIpDriver/lib/drivers/lwip/src/include/arch/cc.h
branches/GSoC_2011/TcpIpDriver/lib/drivers/lwip/src/include/lwip/debug.h
branches/GSoC_2011/TcpIpDriver/lib/drivers/lwip/src/include/lwip/tcp.h
branches/GSoC_2011/TcpIpDriver/lib/drivers/lwip/src/include/lwipopts.h
branches/GSoC_2011/TcpIpDriver/lib/drivers/lwip/src/rostcp.c
[This mail would be too long, it was shortened to contain the URLs only.]
Modified: branches/GSoC_2011/TcpIpDriver/drivers/network/afd/afd/connect.c
URL:
http://svn.reactos.org/svn/reactos/branches/GSoC_2011/TcpIpDriver/drivers/network/afd/afd/connect.c?rev=51889&r1=51888&r2=51889&view=diff
Modified: branches/GSoC_2011/TcpIpDriver/drivers/network/afd/afd/listen.c
URL:
http://svn.reactos.org/svn/reactos/branches/GSoC_2011/TcpIpDriver/drivers/network/afd/afd/listen.c?rev=51889&r1=51888&r2=51889&view=diff
Modified: branches/GSoC_2011/TcpIpDriver/drivers/network/afd/afd/main.c
URL:
http://svn.reactos.org/svn/reactos/branches/GSoC_2011/TcpIpDriver/drivers/network/afd/afd/main.c?rev=51889&r1=51888&r2=51889&view=diff
Modified: branches/GSoC_2011/TcpIpDriver/drivers/network/tcpip/include/debug.h
URL:
http://svn.reactos.org/svn/reactos/branches/GSoC_2011/TcpIpDriver/drivers/network/tcpip/include/debug.h?rev=51889&r1=51888&r2=51889&view=diff
Modified: branches/GSoC_2011/TcpIpDriver/drivers/network/tcpip/tcpip/dispatch.c
URL:
http://svn.reactos.org/svn/reactos/branches/GSoC_2011/TcpIpDriver/drivers/network/tcpip/tcpip/dispatch.c?rev=51889&r1=51888&r2=51889&view=diff
Modified: branches/GSoC_2011/TcpIpDriver/drivers/network/tcpip/tcpip/main.c
URL:
http://svn.reactos.org/svn/reactos/branches/GSoC_2011/TcpIpDriver/drivers/network/tcpip/tcpip/main.c?rev=51889&r1=51888&r2=51889&view=diff
Modified: branches/GSoC_2011/TcpIpDriver/lib/drivers/ip/transport/tcp/accept.c
URL:
http://svn.reactos.org/svn/reactos/branches/GSoC_2011/TcpIpDriver/lib/drivers/ip/transport/tcp/accept.c?rev=51889&r1=51888&r2=51889&view=diff
Modified: branches/GSoC_2011/TcpIpDriver/lib/drivers/ip/transport/tcp/event.c
URL:
http://svn.reactos.org/svn/reactos/branches/GSoC_2011/TcpIpDriver/lib/drivers/ip/transport/tcp/event.c?rev=51889&r1=51888&r2=51889&view=diff
Modified: branches/GSoC_2011/TcpIpDriver/lib/drivers/ip/transport/tcp/if.c
URL:
http://svn.reactos.org/svn/reactos/branches/GSoC_2011/TcpIpDriver/lib/drivers/ip/transport/tcp/if.c?rev=51889&r1=51888&r2=51889&view=diff
Modified: branches/GSoC_2011/TcpIpDriver/lib/drivers/ip/transport/tcp/tcp.c
URL:
http://svn.reactos.org/svn/reactos/branches/GSoC_2011/TcpIpDriver/lib/drivers/ip/transport/tcp/tcp.c?rev=51889&r1=51888&r2=51889&view=diff
Modified: branches/GSoC_2011/TcpIpDriver/lib/drivers/lwip/src/core/tcp.c
URL:
http://svn.reactos.org/svn/reactos/branches/GSoC_2011/TcpIpDriver/lib/drivers/lwip/src/core/tcp.c?rev=51889&r1=51888&r2=51889&view=diff
Modified: branches/GSoC_2011/TcpIpDriver/lib/drivers/lwip/src/core/tcp_in.c
URL:
http://svn.reactos.org/svn/reactos/branches/GSoC_2011/TcpIpDriver/lib/drivers/lwip/src/core/tcp_in.c?rev=51889&r1=51888&r2=51889&view=diff
Modified: branches/GSoC_2011/TcpIpDriver/lib/drivers/lwip/src/include/arch/cc.h
URL:
http://svn.reactos.org/svn/reactos/branches/GSoC_2011/TcpIpDriver/lib/drivers/lwip/src/include/arch/cc.h?rev=51889&r1=51888&r2=51889&view=diff
Modified:
branches/GSoC_2011/TcpIpDriver/lib/drivers/lwip/src/include/lwip/debug.h
URL:
http://svn.reactos.org/svn/reactos/branches/GSoC_2011/TcpIpDriver/lib/drivers/lwip/src/include/lwip/debug.h?rev=51889&r1=51888&r2=51889&view=diff
Modified: branches/GSoC_2011/TcpIpDriver/lib/drivers/lwip/src/include/lwip/tcp.h
URL:
http://svn.reactos.org/svn/reactos/branches/GSoC_2011/TcpIpDriver/lib/drivers/lwip/src/include/lwip/tcp.h?rev=51889&r1=51888&r2=51889&view=diff
Modified: branches/GSoC_2011/TcpIpDriver/lib/drivers/lwip/src/include/lwipopts.h
URL:
http://svn.reactos.org/svn/reactos/branches/GSoC_2011/TcpIpDriver/lib/drivers/lwip/src/include/lwipopts.h?rev=51889&r1=51888&r2=51889&view=diff
Modified: branches/GSoC_2011/TcpIpDriver/lib/drivers/lwip/src/rostcp.c
URL:
http://svn.reactos.org/svn/reactos/branches/GSoC_2011/TcpIpDriver/lib/drivers/lwip/src/rostcp.c?rev=51889&r1=51888&r2=51889&view=diff