- Remove debug prints
- Modify error code translations
[lwIP]
- Fix race conditions caused by checking the SocketContexts of connections from outside the lwIP main thread context
- Don't explicitly remove callbacks from pcbs (no reason to do apperently)
- Use pbuf_free_callback (which can be safely called from outside the lwIP main thread context) instead of pbuf_free
svn path=/branches/GSoC_2011/TcpIpDriver/; revision=53033
- fix crash caused by a race condition when trying to close a socket
- move timer hack from sys_arch.c to timers.c because there it gives best performance (will have to get rid of it at some point though)
- when closing a socket only mask out the receive and accept callbacks (as they can cause of a crash when closing a socket). The rest of the callbacks are left alone because they may be used.
[TCPIP]
- merge r52698
- remove some DbgPrint calls that are now useless since the bug they were introduced to help discover has been fixed
svn path=/branches/GSoC_2011/TcpIpDriver/; revision=52712
apply changes r52501 for lwIP branch
- Fix binding to an unspecified port on a connect so that it works reliably by asking the TCP library for a free port instead of assuming that one we have is free
- Fix binding to an unspecified port on a listen which previously would result in the address file not having information stored about the port number assigned
- Fix a nasty bug which resulted in us binding to an arbitrary port during a connect even when the client wanted a specific port
svn path=/branches/GSoC_2011/TcpIpDriver/; revision=52517
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
- 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