- Move some sanity checks into the right location
- Fix another NULL pointer dereference if there is not a socket on the queue
- Also spotted by Amine Khaldi
svn path=/trunk/; revision=42660
- The new code is faster, uses less memory, and is less complex than the previous code
- Add a NULL check to fix a potential crash
svn path=/trunk/; revision=42578
- wdm.h: Properly define NTKERNELAPI.
- ntifs.h: Properly define NTKERNELAPI, and don't redefine NTSYSAPI.
- ntoskrnl: Apply the WDK hack for our headers (and gcc) too. Also redefine NTHALAPI for NDK so we don't auto-import KdComPortInUse -- ld complains about this.
- Apply this for cmlib, csq and rossym too.
- Use this in HAL too, and redefine NTSYSAPI so we don't auto import some structures from the kernel. Also, don't define __declspec(dllimport) to nothing -- this doesn't work with gcc, and doesn't seem to be necessary. I tried building HAL with the WDK and this wasn't an issue.
svn path=/trunk/; revision=42461
- Treat 255.255.255.255 as an undefined address
- Choose the first interface when sending a broadcast packet (fixes failing with STATUS_NETWORK_UNREACHABLE when trying to send a broadcast packet)
- Fix a broadcast address check so 255.255.255.255 will also pass (fixes sending queued broadcast packets)
- Now a broadcast packet can be successfully sent from an interface with a valid IP address (previously they could only be sent when the interface didn't have an NCE entry)
svn path=/trunk/; revision=42375
- Fix misc msvc issues in paint, setup, mmsys and mmebuddy
- Simplify the way kernel32 is built, reverting the "test" from 14241
svn path=/trunk/; revision=42362
- Make fragment offset into 8-byte units
- Don't perform a useless checksum calculation
- Fixes datagram fragmentation (tested using ping with a packet size of 16000)
- This also seems to fix DHCP over a bridged NIC in vbox
svn path=/trunk/; revision=42104
- We currently only report received bytes, sent bytes, discarded packets due to unknown protocol, send errors, and receive errors
- The network adapter properties window now shows correct send/receive bytes info
svn path=/trunk/; revision=41962
- Pass DeviceId to GetDeviceCapabilities function
[WDMAUD.DRV]
- Use DeviceId to determine the capabilities of the requested device, not just always the first one
svn path=/trunk/; revision=41902
- Use a spin lock to protect the signalled connections list
- Add a debug ASSERT into each function that depends on the TCPLock being held
- Release TCPLock before completing the IRP
- Add some locking where it was forgotten
- Optimize HandleSignalledConnection
svn path=/trunk/; revision=41752
- Add locking in places that need it
- Eliminate double acquisition of TCPLock for the same request
- Next step: Verify that all places that need locking have it
svn path=/trunk/; revision=41751
- Use ExInterlocked list functions to manipulate the request lists
- Fix usage of the wrong lock to protect the listen request list
- Next step: Optimize usage of TCPLock
svn path=/trunk/; revision=41737
- Fix potential NULL pointer access
- Actually disassociate the address file and connection in DispTdiDisassociateAddress
- Insert new requests at the end of the list not the beginning
svn path=/trunk/; revision=41736
- We were copying the address type (1 byte) and 3 bytes of the target address instead of all 4 bytes of the target address
svn path=/trunk/; revision=41723
- Remove (now unused) IPGetDefaultAddress which just broke things
- Fixes responses from different IP addresses when trying to ping the loopback adapter
- See issue #4573 for more details
svn path=/trunk/; revision=41720
- It now warns us when it detects an entry that wasn't freed by a memtrack-enabled function
- It also provides some info when it detects a double free
- Removed some extra tag tracking junk
svn path=/trunk/; revision=41705
- Don't remove the NCE if we fail because it may not be ours
- Mark the IRPs pending before we insert them into our queue
- Check that the addresses match so we don't receive somebody else's packets
- Part 1 of 2
svn path=/trunk/; revision=41638
- Kill all the requests before closing the socket
- Notify oskittcp when we are cancelling requests so it can properly close the socket
svn path=/trunk/; revision=41630
- Return NULL if TCPContext is NULL (which means we don't have a valid IP address)
- Should fix a crash when using multiple NICs but they still won't work (DHCP bug?)
svn path=/trunk/; revision=40909