Commit graph

46383 commits

Author SHA1 Message Date
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
9aa2d2c133 [IP]
- fix system crash when failing to connect to a remote host
- Set address length in the TDI address struct
- Simplify copying the address
- Zero the sin_zero member

svn path=/branches/GSoC_2011/TcpIpDriver/; revision=52485
2011-06-28 07:29:28 +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
b8daab7cfb [TCPIP]
Backup commit

svn path=/branches/GSoC_2011/TcpIpDriver/; revision=52432
2011-06-23 07:57:59 +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
8e61bd7196 [lwIP]
- Remove foreign identifier field from the tcp_pcb structure. This was added for some debugging purposes sometime ago but now it's useless and it was just polluting lwIP code.

svn path=/branches/GSoC_2011/TcpIpDriver/; revision=52396
2011-06-21 09:19:12 +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
ecf6e7c601 [MSAFD]
- merge r52389

svn path=/branches/GSoC_2011/TcpIpDriver/; revision=52390
2011-06-20 17:50:07 +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
9c54ee43ae [lwIP]
- Fix crash bug when disconnecting after accepting a connection from a client.
- Move the send and receive callback assignments to make the code more clear
- Change variable types to avoid excessive casting

svn path=/branches/GSoC_2011/TcpIpDriver/; revision=52387
2011-06-20 15:59:49 +00:00
Claudiu Mihail
b320225fb2 [lwIP]
Fix the nasty crash on socket closure bug. The bug was due to corrupting memory by wrongly assuming the LISTEN pcb had send, receive and error callbacks.

svn path=/branches/GSoC_2011/TcpIpDriver/; revision=52385
2011-06-20 14:49:58 +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
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
Cameron Gutman
fa5d338f2a [LWIP]
- Fix a memory leak during graceful socket closure
- Print a message if not all data is taken in a receive request

svn path=/branches/GSoC_2011/TcpIpDriver/; revision=52201
2011-06-12 19:21:56 +00:00
Cameron Gutman
ade9312f85 [LWIP]
- Implement LibTCPShutdown
[IP]
- Replace an incredibly broken implementation of TCPDisconnect which caused memory corruption with a working one using LibTCPShutdown

svn path=/branches/GSoC_2011/TcpIpDriver/; revision=52200
2011-06-12 18:25:16 +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
Amine Khaldi
90e7802e04 [CMAKE]
* Fix unix build. We need to quote the file paths in reactos.dff for cabman to parse them correctly. Dedicated to Arty.

svn path=/branches/cmake-bringup/; revision=52085
2011-06-04 23:45:11 +00:00
Claudiu Mihail
2207cfb382 Simple test apps for functionality checks:
- server.exe and client.exe do a simple exchange of messages (each sends one message to the other) and then terminate.

- server_multi.exe and client_multi.exe exchange 3 message with one another before termination.

- client_delayed.exe waits one second before sending any message to the server after a connection ahs been made (otherwise identical to client.exe)

svn path=/branches/GSoC_2011/TcpIpDriver/; revision=52082
2011-06-04 20:02:42 +00:00
Amine Khaldi
f30b8067cf [CMAKE]
* Addendum to r52056.

svn path=/branches/cmake-bringup/; revision=52057
2011-06-02 10:58:05 +00:00
Amine Khaldi
2893f9401b [CMAKE]
* Add a missing dependency.

svn path=/branches/cmake-bringup/; revision=52052
2011-06-01 22:08:27 +00:00
Amine Khaldi
a57324a1d4 [CMAKE]
* Improve static libs creation in *nix. Dedicated to arty.

svn path=/branches/cmake-bringup/; revision=52051
2011-06-01 22:05:24 +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
Amine Khaldi
7a6072bcfa [CMAKE]
* Several improvements to debug symbols handling.
* A new (killer/awesome/...etc) feature has been introduced to kdbg: argument values support. Now backtraces contain not only usermode and kernelmode addresses translated, but also the argument values passed to the functions along the trace.
* Brought to you by the Arty.

svn path=/branches/cmake-bringup/; revision=52027
2011-05-31 18:22:20 +00:00
Claudiu Mihail
04c4235e97 [TCPIP]
Closing a socket while in listening state (that has not accepted any connections) no longer certainly crashes the system. There's still a tendency to crash the system sometimes, but it's related to possibly not canceling any outstanding IRPs for the listening socket.

svn path=/branches/GSoC_2011/TcpIpDriver/; revision=51962
2011-05-27 19:37:28 +00:00
Jérôme Gardou
331d3a2356 [CMAKE]
- remove unnecessary file

svn path=/branches/cmake-bringup/; revision=51961
2011-05-27 16:02:15 +00:00
Claudiu Mihail
350d378e7f Slightly updated todo list.
svn path=/branches/GSoC_2011/TcpIpDriver/; revision=51956
2011-05-27 10:54:23 +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
8ac934b5e6 GSoC todo list.
svn path=/branches/GSoC_2011/TcpIpDriver/; revision=51816
2011-05-17 22:18:21 +00:00
Sylvain Petreolle
c5f4d06d4b Escape (...) in configure script.
spotted by Collibri

svn path=/branches/cmake-bringup/; revision=51815
2011-05-17 19:54:26 +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
Jérôme Gardou
fdcd4cd64c [CMAKE]
- generate source files and header files in one pass by passing right arguments to widl.
Why this didn't work before is left as an exercise for the reader.

svn path=/branches/cmake-bringup/; revision=51772
2011-05-15 19:31:13 +00:00
Jérôme Gardou
5c786760ab [CMAKE]
- refactor generation of rpcproxy file to avoid recompiling
Get rid of unnecessary libraries in the process.
Tested with both mingw32-make+widl/nmake+midl
  - do not rebuild livecd hives if not necessary

svn path=/branches/cmake-bringup/; revision=51771
2011-05-15 18:10:27 +00:00
Amine Khaldi
b8f125e2ab [CMAKE]
* Define HAVE_SPAWNVP for the host config.

svn path=/branches/cmake-bringup/; revision=51765
2011-05-15 15:00:55 +00:00
Jérôme Gardou
7af9914ebb addedum to r51755 : as a general rule, use quotes when creating directories with spaces
svn path=/branches/cmake-bringup/; revision=51756
2011-05-15 12:11:13 +00:00
Jérôme Gardou
f050dea7d1 [CMAKE]
- create profiles directories for livecd

svn path=/branches/cmake-bringup/; revision=51755
2011-05-15 11:52:14 +00:00
Jérôme Gardou
69fb88923a [CMAKE]
remove dependency to nonexistent target

svn path=/branches/cmake-bringup/; revision=51753
2011-05-15 10:02:46 +00:00
Jérôme Gardou
35c4e5db52 [CMAKE]
- add livecd target

svn path=/branches/cmake-bringup/; revision=51751
2011-05-15 07:50:26 +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
Timo Kreuzer
ef04b58c2e [CMAKE/NTOSKRNL]
Fix warnings

svn path=/branches/cmake-bringup/; revision=51737
2011-05-14 15:58:47 +00:00
Amine Khaldi
8942524e2a [CMAKE]
* Addendum to the previous commit by Jerome, for cmake versions older than 2.8.3

svn path=/branches/cmake-bringup/; revision=51732
2011-05-14 13:52:40 +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
Rafal Harabien
ee7e7b3462 [CMAKE/RAPPS]
* Fix Swedish language

svn path=/branches/cmake-bringup/; revision=51718
2011-05-13 22:36:19 +00:00