Commit graph

12 commits

Author SHA1 Message Date
Claudiu Mihail
7ba87c3d72 [AFD, FORMATTING]
- get rid of unused OskitDumpBuffer
- make the code in AFD better conform to ROS coding guidelines
- fix some MSVC compilation errors (still not fully compiling with MSVC yet)
[IP]
- Add a sanity check in the TCPAcceptEventHandler

svn path=/branches/GSoC_2011/TcpIpDriver/; revision=52398
2011-06-21 11:46:47 +00:00
Claudiu Mihail
14d4da2565 [lwIP]
- Abort the connection if the socket is not in LISTEN state, instead of closing it
[TCPIP]
- move redundant socket closure where so we don't try to free uninitialized variable
- in case our socket got closed or for some reason doesn't exist return a default success

svn path=/branches/GSoC_2011/TcpIpDriver/; revision=52395
2011-06-20 21:37:32 +00:00
Claudiu Mihail
0471d847c6 [MSAFD]
- merge r52193 and rr52198
[IP]
- fix memory leak when closing a connection endpoint

svn path=/branches/GSoC_2011/TcpIpDriver/; revision=52388
2011-06-20 17:19:37 +00:00
Claudiu Mihail
4b7e0f11d0 [TCPIP]
[FORMATTING]
Backup copy and formatting.

svn path=/branches/GSoC_2011/TcpIpDriver/; revision=52381
2011-06-20 12:59:27 +00:00
Claudiu Mihail
c2770feda9 [IP]
Fix memory leak caused by socket context overwriting when accepting a new connection.

svn path=/branches/GSoC_2011/TcpIpDriver/; revision=52313
2011-06-17 13:39:28 +00:00
Cameron Gutman
f08a479325 [IP]
- Call the completion handler asynchronously to avoid a deadlock if AFD issues a synchronous request in its completion function
- Complete all pending requests before closing the socket
- Fixes send and receive on accepted sockets

svn path=/branches/GSoC_2011/TcpIpDriver/; revision=52307
2011-06-17 12:04:20 +00:00
Claudiu Mihail
b3b5468071 [AFD]
See issue r52186 in trunk for more details.

svn path=/branches/GSoC_2011/TcpIpDriver/; revision=52189
2011-06-11 13:24:33 +00:00
Claudiu Mihail
a9d9b3583e [TCPIP]
- Removed hack from lwIP code. Now the listening pcb is obtained in a way as to not affect pllute lwIP code.
- Also there's still a little foreign code left in lwIP, but this can be easily removed as it contains no functional purpose, except debugging.

svn path=/branches/GSoC_2011/TcpIpDriver/; revision=51924
2011-05-26 17:42:00 +00:00
Claudiu Mihail
f75011c71f [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.

svn path=/branches/GSoC_2011/TcpIpDriver/; revision=51889
2011-05-24 18:05:51 +00:00
Claudiu Mihail
e1b7306f9b Make kernel not crash when trying to accept in incoming tcp connection. The problem is in TCPAcceptEventHandler, where calling the LibTCPAccept function would cause an assert to fail in LibTCPAccept. We just set the state of the pcb to LISTEN and after calling LibTCPAccept we set it to ESTABLISHED. The connection still fails but at least the kernel doesn't crash. Needs further serious investigation.
svn path=/branches/GSoC_2011/TcpIpDriver/; revision=51781
2011-05-16 13:00:34 +00:00
Cameron Gutman
459e413725 [IP]
- Rewrite most of the lower TCP layer code to work with lwIP
[LWIP]
- Write all of the implementation-specific code and headers
[TCPIP]
- Add assertions in the object reference functions
- Remove the completion queue hack

This is still isn't totally finished yet. There are still two main issues that need to be overcome: listen/accept don't work at all and the performance is horrible.
I hope that once I tune some of the options, I can get it to perform reasonably well. If any curious testers want to try this out, be my guest but realize that not
a lot of apps will work yet. Suggestions are welcome! :)

svn path=/branches/tcp-rewrite-branch/; revision=48840
2010-09-21 06:11:24 +00:00
Cameron Gutman
25720d75f4 Create a branch for work on porting an alternate TCP library with the main focus on stability
svn path=/branches/tcp-rewrite-branch/; revision=48714
2010-09-07 03:33:36 +00:00
Renamed from reactos/lib/drivers/ip/transport/tcp/event.c (Browse further)