Commit graph

42 commits

Author SHA1 Message Date
Claudiu Mihail
646142ffcf [lwIP/TCPIP]
- 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
2011-07-25 18:45:59 +00:00
Claudiu Mihail
f0c093af20 [lwIP]
- 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
2011-07-17 12:32:33 +00:00
Amine Khaldi
4f2d0d54b0 * Sync to recent trunk (r52563).
svn path=/branches/GSoC_2011/TcpIpDriver/; revision=52565
2011-07-08 01:50:19 +00:00
Claudiu Mihail
fa0fd3a684 [AFD]
merge r52502, r52510

[TCPIP]
merge r52501, r52511

svn path=/branches/GSoC_2011/TcpIpDriver/; revision=52520
2011-07-03 19:40:40 +00:00
Claudiu Mihail
1b907a202d [TCPIP]
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
2011-07-03 13:34:36 +00:00
Claudiu Mihail
75014f14eb [AFD]
merge r52497
- Rewrite disconnect to work asynchronously

merge r52492
- Fix several bugs related to the FD_WRITE event
- We would not set the sendable poll state if the socket had data waiting to be sent even if there was buffer space
- We did not set the poll state after performing a send
- We did not clear the sendable poll state if we ran out of buffer space

svn path=/branches/GSoC_2011/TcpIpDriver/; revision=52516
2011-07-03 12:03:49 +00:00
Claudiu Mihail
3f6a8fa6c2 [MSAFD]
- merge r52438
- Fail SIO_GET_EXTENSION_FUNCTION_POINTER
- Fixes the crash during ws2_32_winetest sock
[AFD]
- merge r52441
- Queue the user-mode connect IRP before calling TdiConnect to avoid a race if the TDI_CONNECT IRP is completed before we get a chance to queue the user-mode IRP to accept the connection
- Change the non-blocking TDI helper functions to always return STATUS_PENDING if the completion function will be called to avoid duplicate handling of IRPs

svn path=/branches/GSoC_2011/TcpIpDriver/; revision=52443
2011-06-24 14:57:29 +00:00
Claudiu Mihail
474c5138f8 [AFD]
- Hold on to the disconnect IRP until all pending sending IRPs are sent to the transport driver if a controlled disconnect was requested (merge of r52415)
[TCPIP]
- add some mroe debug statements to track new current sync problem
- remove some old debug statements that are useless now
[lwIP]
- add some mroe debug statements to track new current sync problem

svn path=/branches/GSoC_2011/TcpIpDriver/; revision=52424
2011-06-22 15:32:46 +00:00
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
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
05936c40cf [TCPIP]
- Fix a bug on line 191, where the pending send requests for datagrams weren't canceled (the receive list was being used instead
- Also added some formatting

svn path=/branches/GSoC_2011/TcpIpDriver/; revision=52229
2011-06-14 15:40:18 +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
2cc1ca91c8 [AFD, TCPIP]
Bind issue seems solved now. Server app can be restarted without failing at binding. More information is at r52166. Patch by cgutman.

svn path=/branches/GSoC_2011/TcpIpDriver/; revision=52170
2011-06-10 09:24:29 +00:00
Claudiu Mihail
c31d8d66b9 [TCPIP]
Patches by cgutman applied to the branch (see r52125, r52092, r52086, r52083, r52013)

svn path=/branches/GSoC_2011/TcpIpDriver/; revision=52138
2011-06-07 20:24:54 +00:00
Amine Khaldi
e385be59b1 * Sync the recent cmake branch changes.
svn path=/branches/GSoC_2011/TcpIpDriver/; revision=52122
2011-06-06 20:39:26 +00:00
Claudiu Mihail
b3c222f739 [TCPIP]
[FORMATTING]
This is just a code formatting phase. I reordered some of the code and put some debugging DbgPrint-s in order to help understand the control and data flow. Working on trying to stop the system from crashing when server socket gets closed.

svn path=/branches/GSoC_2011/TcpIpDriver/; revision=52042
2011-06-01 13:27:35 +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
Jérôme Gardou
91f3191275 [CMAKE]
- refactor a bit add_cd_file for more flexibility. Add FOR argument for specifying target cd images.

svn path=/branches/cmake-bringup/; revision=51749
2011-05-14 20:54:46 +00:00
Jérôme Gardou
53fbd8e185 [CMAKE]
Completely refactor bootcd generation
  - one macro (à la cmake's install) to rule them all, to make your life simpler and have build files cleaner
  - Completely rehaul the bootcd tree : now you have in it some minimal reactos system
  - reflect those changes in setupldr
No livecd yet!

svn path=/branches/cmake-bringup/; revision=51731
2011-05-14 13:49:39 +00:00
Amine Khaldi
6c758f20d0 [TCPIP DRIVER]
* Integrate the work that has been done in tcp-rewrite-branch.

svn path=/branches/GSoC_2011/TcpIpDriver/; revision=51629
2011-05-07 19:53:38 +00:00
Amine Khaldi
141823a750 [CMAKE]
* Sync with trunk r51445.

svn path=/branches/cmake-bringup/; revision=51446
2011-04-24 13:44:58 +00:00
Amine Khaldi
475719f162 [CMAKE]
- Sync with trunk r51165.

svn path=/branches/cmake-bringup/; revision=51166
2011-03-26 23:14:25 +00:00
Sylvain Petreolle
f22ed7dc10 [CMAKE]
Sync trunk up to r50570.

svn path=/branches/cmake-bringup/; revision=50581
2011-01-31 21:47:39 +00:00
Timo Kreuzer
0af4984309 [CMAKE]
Remove dll name from add_importlib_target macro

svn path=/branches/cmake-bringup/; revision=50520
2011-01-27 21:57:54 +00:00
Amine Khaldi
6c0c23cb53 [CMAKE]
- Sync with trunk head (r50270)
- This also reverts r49298.

svn path=/branches/cmake-bringup/; revision=50271
2011-01-03 00:33:31 +00:00
Amine Khaldi
f7da79e889 [CMAKE]
- Improve more modules.

svn path=/branches/cmake-bringup/; revision=49932
2010-12-03 17:41:29 +00:00
Timo Kreuzer
b46aa66305 [CMAKE]
add a number of importlin targets and convert to spec

svn path=/branches/cmake-bringup/; revision=49839
2010-11-28 10:19:28 +00:00
Amine Khaldi
a7fe68d16b [CMAKE]
- Improve more drivers.

svn path=/branches/cmake-bringup/; revision=49469
2010-11-04 21:06:20 +00:00
Jérôme Gardou
887046a6ee [CMAKE]
- build msvc importlibs explicitly from def file
  - circumvent lack of pseh lib in MSVC.
  - fix advapi32.def

svn path=/branches/cmake-bringup/; revision=49409
2010-11-01 17:24:32 +00:00
Jérôme Gardou
2e3d2c189b [CMAKE]
- leftover from r49358

svn path=/branches/cmake-bringup/; revision=49362
2010-10-30 17:05:21 +00:00
Jérôme Gardou
4ee1da42f1 [CMAKE]
- rewrite spec2def macro because
1. cmake gracefully handles def files as source files
2. cmake gracefully handles autogenerated files as source
3. it did not take into account the fact that all shared libraries haven't the .dll extension

svn path=/branches/cmake-bringup/; revision=49358
2010-10-30 16:08:19 +00:00
Jérôme Gardou
fd5ef6b1c1 [CMAKE]
- add macros add_cab and add_cab_target to add files to reactos.dff
  - add bootcd target
  - make use of these macros to create bootcd and livecd
Bootcd works and install things, but 2nd stage fails booting. We need debug symbols!!!

svn path=/branches/cmake-bringup/; revision=49347
2010-10-30 09:53:53 +00:00
Sylvain Petreolle
394ca95775 [CMAKE]
Use msvc friendly macro.
Add network drivers to livecd.

svn path=/branches/cmake-bringup/; revision=49263
2010-10-24 21:19:00 +00:00
Sylvain Petreolle
1fb94b1cb5 [CMAKE]
sync with trunk (r49230)

svn path=/branches/cmake-bringup/; revision=49246
2010-10-23 22:14:59 +00:00
Sylvain Petreolle
b7e466a220 [CMAKE]
Livecd: Add drivers.

svn path=/branches/cmake-bringup/; revision=49222
2010-10-22 13:46:11 +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
Timo Kreuzer
912ce51ae6 [CMAKE]
Sync with trunk head (r48826)

svn path=/branches/cmake-bringup/; revision=48831
2010-09-20 17:27:52 +00:00
Amine Khaldi
f24f83f0b3 [CMAKE]
- Add network drivers (afd, ne2000, pcnet, ndis, tcpip and tdi) to build.

svn path=/branches/cmake-bringup/; revision=48811
2010-09-19 11:19:16 +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
Amine Khaldi
62ff6c86b7 - Delete rbuild and the rbuild files.
svn path=/branches/cmake-bringup/; revision=48237
2010-07-24 19:21:04 +00:00
Amine Khaldi
c424146e2c Create a branch for cmake bringup.
svn path=/branches/cmake-bringup/; revision=48236
2010-07-24 18:52:44 +00:00