Commit graph

14 commits

Author SHA1 Message Date
Cameron Gutman
3f6a56fa36 [TDILIB, IPHLPAPI, WSHTCPIP]
- Move the TDI stuff from iphlpapi to a shared library called tdilib
[IP]
 - Implement tcpip side of IP_HDRINCL
[PSDK, WSHTCPIP, WSHIRDA]
 - Fix definition of WSHGetSocketInformation
[PSDK]
 - Add AO_OPTION_* defines
[WSHTCPIP]
 - Request notifications for bind also
 - Implement WSHSetSocketInformation
[MSAFD]
 - Implement event notifications (bonus: fixes a memory leak on socket closure due to unfreed helper context)
 - Store TdiConnectionHandle the same way we store TdiAddressHandle
 - Half-plement WSPSetSockOpt
 - Fix WSPGetSockOpt
[TCPIP]
 - Handle AO_OPTION_TTL, AO_OPTION_IP_DONTFRAGMENT (not working yet), AO_OPTION_BROADCAST (not working yet), and AO_OPTION_IP_HDRINCL
 - Add new members of ADDRESS_FILE for the preceding AO options
[AFD]
 - Return the connection handle in the Information of the IOSB (same as we do with the address file handle)
[GENERAL]
 - Tracert works now

svn path=/branches/aicom-network-branch/; revision=45093
2010-01-16 00:05:15 +00:00
Cameron Gutman
b7457ec3d8 - Restore the worker in the loopback code because we can enter the loopback code from TCPPacketSend at a raised IRQL
- Fixes a crash with TCP over loopback

svn path=/branches/aicom-network-branch/; revision=45087
2010-01-15 18:01:52 +00:00
Cameron Gutman
f22efa9fe8 - Unlock the address file before calling IPSendDatagram
- We don't need to be locked anymore at that point and it also causes problems with loopback packets
 - Use the TTL value stored in the address file for ICMP packets

svn path=/branches/aicom-network-branch/; revision=45016
2010-01-09 16:25:11 +00:00
Cameron Gutman
7457359d5d - Use a spin lock to protect the port bitmap instead of a fast mutex
svn path=/branches/aicom-network-branch/; revision=45006
2010-01-08 18:21:52 +00:00
Cameron Gutman
05a505aac8 - Add locking to ICMPSendDatagram
svn path=/branches/aicom-network-branch/; revision=45004
2010-01-08 18:10:05 +00:00
Cameron Gutman
fb4eec0d30 [IP]
- Fix a small locking issue in TCPClose

svn path=/branches/aicom-network-branch/; revision=44845
2010-01-01 05:58:37 +00:00
Cameron Gutman
8dd3966ba9 [TCPIP, IP]
- Completely rewrite (again) the locking code and use references to ensure that the connection doesn't get freed while completing requests (the most frequent cause of crashes)
 - Remove DrainSignals and complete requests inside HandleSignalledConnection instead of doing them in a separate thread (increases speed a lot)
[OSKITTCP]
 - Don't clear the socket context in OskitTCPClose because we would end up in HandleSignalledConnection without a connection (which we don't support anymore after eliminating DrainSignals)
 - Change the check performed to see if a socket is dying so we support connection dying after calling OskitTCPClose
[AFD]
 - Remove leftover ASSERTs which fail after the changes to tcpip (they were wrong in the first place because we call into tcpip at DISPATCH_LEVEL sometimes)

svn path=/branches/aicom-network-branch/; revision=44839
2009-12-31 23:33:24 +00:00
Cameron Gutman
175500c30b - Forgot this file
svn path=/branches/aicom-network-branch/; revision=44811
2009-12-30 12:53:47 +00:00
Cameron Gutman
2caa9c0981 [IP]
- Bind to the address specified in AddressFile instead of always binding to the outgoing interface's unicast address
 - Get the NCE using the local address (if specified) so we don't end up sending from one interface using another interface's  address as the source

svn path=/branches/aicom-network-branch/; revision=44810
2009-12-30 12:46:14 +00:00
Cameron Gutman
94b49d77a3 [OSKITTCP]
- Add ROS-specific MSS code
 - We don't mirror our route cache with oskittcp so we can't rely on routes to get the MTU

svn path=/branches/aicom-network-branch/; revision=44619
2009-12-16 04:45:43 +00:00
Cameron Gutman
ce98e6522f [OSKITTCP]
- Fix broken MTU code (MTU was assumed to always be 1500)

svn path=/branches/aicom-network-branch/; revision=44618
2009-12-16 02:41:39 +00:00
Cameron Gutman
12127c7eeb - Use RouteGetRouteToDestination instead of FindOnLinkInterface so we can get an interface for remote addresses
svn path=/branches/aicom-network-branch/; revision=44565
2009-12-13 16:22:17 +00:00
Cameron Gutman
2cb569197b - Revert 44301
svn path=/branches/aicom-network-branch/; revision=44354
2009-12-02 03:29:17 +00:00
Cameron Gutman
29fa274d6d - Create another branch for networking fixes
- TSVN choked repeatedly when attempting to merge ~9000 revs into the branch (tried 3 times on 2 different computers)
 - If someone wants to delete aicom-network-fixes, they are welcome to
 - Lesson learned: Letting a branch get thousands of revs out of date is a horrible idea

svn path=/branches/aicom-network-branch/; revision=44353
2009-12-02 03:23:19 +00:00