- Correct the error number comments for lwIP 1.4.0
- Translate ERR_WOULDBLOCK
- Translate ERR_IF and ERR_CONN to a more accurate status
[LWIP]
- Remove another debug print
svn path=/branches/GSoC_2011/TcpIpDriver/; revision=53039
- 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
- Revert the timer hack. It's no longer needed for speed boosts. Now lwIP is clean of any foreign code.
svn path=/branches/GSoC_2011/TcpIpDriver/; revision=52900
- Fix completing IRPs with 0 bytes received when getting the data from the connection's packet queue
- Eliminate memory leaks caused by unreleased pbufs
- Get rid of some commented code
In principle the speed issue with lwIP should be pretty much solved now. There's still some minor things to iron out that testing will reveal probably. Initial tests like running opera, downloading stuff etc seem to be very encouraging however.
svn path=/branches/GSoC_2011/TcpIpDriver/; revision=52894
- Add queue for connections objects in order to buffer packets that have arrived but have no corresponding receive requests to be assigned to. We buffer these packets to avoid giving a timeout that could cause throughput slowdowns.
svn path=/branches/GSoC_2011/TcpIpDriver/; revision=52864
- Modify the signatures of the lwIP wrapper interfaces. This is the first step toward fixing some nasty crashes related to race conditions.
[TCPIP]
- Call the new lwIP wrapper interfaces appropriately.
svn path=/branches/GSoC_2011/TcpIpDriver/; revision=52767
- 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
- add a small hack in sys_arch.c to boost throughput; we forcefully make the timeout value a foxed constant to boost speed
- add small language optimizations
svn path=/branches/GSoC_2011/TcpIpDriver/; revision=52637
- Optimize the way Send and Close handlers work by executing executing the raw lwIP functions directly instead of using lwIP's callback system. This works because the handlers are executed from lwIP's master thread context
- small language optimizations
svn path=/branches/GSoC_2011/TcpIpDriver/; revision=52630
- Signal the event immediately if the select triggers have already been satisfied
- This fixes hangs with applications that wait on the select event before performing any socket operations
svn path=/trunk/; revision=52562
- Let WSPSend handle WSPSendTo on a non-datagram socket (mswsock_new does this)
- Fixes sendto on connection-oriented sockets
svn path=/trunk/; revision=52560
- Return the amount of data sent in XXXSendDatagram() functions
- Fixes send() and sendto() return values for datagram sockets (bug exposed by the AFD send user-mode IRP rewrite)
svn path=/trunk/; revision=52559
- Move read-only data into data section (allows to boot with GRUB again).
- Discard .drectve sections.
- Silence "set but not used" warnings.
svn path=/trunk/; revision=52557
- Let WSPRecv handle WSPRecvFrom on a non-datagram socket (mswsock_new does this)
- Fixes recvfrom on connection-oriented sockets
svn path=/trunk/; revision=52553
- Rewrite user-mode send IRP handling so send errors get returned to the user properly
- Fixes OskitTCP: ESHUTDOWN/EPIPE debug log spam when a chargen telnet session is terminated by the remote side
svn path=/trunk/; revision=52552
Fix 2nd stage pool corruption.
CCBs are organized in a linked list in the corresponding Fcb, which is protected by Fcb->CcbListLock. They are also linked together server <-> client. This way they can be referenced without holding the lock. This lead to a race condition where a CCB's link was modified after the CCB was deleted. Fix this by using a reference counter and adding appropriate functions. Also make use of pool tags.
svn path=/trunk/; revision=52547
- Remove formatting and partitioning hacks which are unnecessary after fixing the invalid signature bug in the FAT formatting code
svn path=/trunk/; revision=52540
- Add support for AFD_INFO_INLINING_MODE
- Add support for setting AFD_INFO_RECEIVE_WINDOW_SIZE and AFD_INFO_SEND_WINDOW_SIZE
- None of this is used by our current msafd but mswsock_new uses it
svn path=/trunk/; revision=52538
- Pass the non-blocking information as a boolean (mswsock_new does this too)
[AFD]
- Don't block waiting for a connection to accept on a non-blocking listener
svn path=/trunk/; revision=52537
- Fix RtlFindSetBits to search for bits before the HintIndex as well
- Remove a wrong (and commented out) ASSERT
- Fix MSVC warnings
svn path=/trunk/; revision=52536