Daniel Collins
384542defe
DirectPlay: Store addresses in shared player data.
...
When there are more than two players in a session (including the host), the
message that triggers SP_CreatePlayer() may not be from the host that actually
has that player on it, copy the behaviour of the DX5 SP and make each player be
responsible for sharing their own address via the shared data.
2015-08-21 22:32:02 +01:00
Daniel Collins
a108ae80b5
DirectPlay: Remove SP_SendEx() and clean up SP_Send()
...
Implementing this method isn't mandatory and the Microsoft implementation
doesn't provide it. It doesn't appear to get used either, so ditching it to
reduce the number of things that can go wrong.
WIP: SP_Send cleanup
2015-08-21 22:09:10 +01:00
Daniel Collins
d582e27e3e
Added missing initialisations of ipx_socket.addr.sa_family.
...
Field not used internally, but returned by getsockname() which can lead to
whatever we're wrapping trying to use an invalid family later.
2015-07-11 17:00:10 +01:00
Daniel Collins
3b99400f4a
Updated changelog and readme
2014-10-11 20:23:37 +01:00
Daniel Collins
bc02824a8e
Updated source manifest.
2014-10-04 18:46:56 +01:00
Daniel Collins
a808c52d3a
Wrote some notes for developers.
2014-10-04 18:22:03 +01:00
Daniel Collins
5ff0855485
Replace test suite.
...
Dump most of the old "unit" tests which were more system tests and only tested
a small amount of functionality against the host.
The new test suite is a lot more thorough and tests an arbitrary Windows version
over the network rather than testing within the host's WinSock environment.
More documentation detailing how to run this will follow.
2014-10-04 14:46:11 +01:00
Daniel Collins
dcd484702e
Build with newer toolchain.
...
Various fixups to build under win-builds.org toolchain rather than MinGW. No
longer builds under MinGW as I have removed headers/definitions that it lacks.
2014-06-26 13:22:10 +01:00
Daniel Collins
d9a82081da
Fix use of sockets in address cache.
2014-06-19 19:42:09 +01:00
Daniel Collins
043ce1495e
Refactor address conflict detection.
...
Detect multiple sockets bound to the same address within a session by creating
a named mutex. Multiple handles to a mutex may exist and closing the last one
destroys it.
2014-06-19 19:42:09 +01:00
Daniel Collins
3c13aab8e5
Accept IPX packets with a destination network of 00:00:00:00.
...
Unless configured otherwise, the Windows IPX driver defaults to misusing this on
the wire until it sees a packet with a different network number, at which point
it switches to using that until reboot.
2014-05-29 23:35:25 +01:00
Daniel Collins
098cb76ff4
Fix dropping of broadcast packets in some situations.
...
...by which I mean make it drop the packets depending on the socket options of
the receiving socket.
2014-05-29 23:32:24 +01:00
Daniel Collins
4694ce8850
Use correct WinPcap timeout value.
...
A timeout of zero is infinite, so was blocking for traffic on interfaces that
didn't have any in the router main loop.
2014-04-20 17:26:23 +01:00
Daniel Collins
ecda2ba0a4
Fix testing of source address in UDP-encapsulated unicast packets.
2014-04-20 17:26:23 +01:00
Daniel Collins
79d41c0001
Don't open unnecessary UDP sockets when using Ethernet encapsulation.
...
Don't need the shared UDP socket at all and the private is only used for sending
packets to the local emulated sockets.
2014-04-20 17:24:51 +01:00
Daniel Collins
5d9a3cb143
Allocate the UDP socket recv buffer on the stack.
...
Default (per-thread) stack limit on Windows is 1MB, this buffer may shrink in
the future but will never grow.
2014-04-20 14:05:21 +01:00
Daniel Collins
7c19414c37
Use appropriate MTU for packet size limits.
2014-04-18 14:45:11 +01:00
Daniel Collins
c69aac3586
Don't allow creating SPX sockets when using Ethernet encapsulation.
2014-04-18 14:45:09 +01:00
Daniel Collins
4fd24354a5
Refactored ipxconfig, allow enabling Ethernet encapsulation.
2014-04-18 14:45:09 +01:00
Daniel Collins
35d853ae54
Implemented support for receiving real (Ethernet II) IPX frames.
2014-04-18 14:45:07 +01:00
Daniel Collins
41637269fb
Refactored IPX packet delivery.
2014-04-18 14:45:06 +01:00
Daniel Collins
ab62a68187
Implemented support for sending real (Ethernet II) IPX frames.
2014-04-18 14:44:59 +01:00
Daniel Collins
4cf1ec88aa
Implemented support for loading interfaces from WinPcap.
2014-04-18 00:31:59 +01:00
Daniel Collins
3974a2337c
Added stub calls for WinPcap.
2014-04-14 23:19:36 +01:00
Daniel Collins
fdc1204426
Updated changelog.
2014-03-11 21:44:19 +00:00
Daniel Collins
fa8d0479ea
Updated readme.
2014-01-26 14:27:40 +00:00
Daniel Collins
377c208af9
Fix and extend SPX connect tests.
2014-01-26 00:10:42 +00:00
Daniel Collins
e5315890fd
Use GetTickCount64() for connect timeouts where available.
2014-01-25 23:34:33 +00:00
Daniel Collins
b5a92e00ad
Updated changelog.
2014-01-25 23:17:15 +00:00
Daniel Collins
880024b8c8
Added workarounds for Jane's Combat Simulations: WWWII Fighters
2014-01-25 23:16:47 +00:00
Daniel Collins
85edba72c4
Add extra debug output in setsockopt and closesocket.
2014-01-25 23:14:46 +00:00
Daniel Collins
3be40b6e63
Bodge asynchronous connects to almost work as they should.
2014-01-25 23:14:46 +00:00
Daniel Collins
a930a972df
Log entry and target of stub calls.
2014-01-25 23:14:29 +00:00
Daniel Collins
7c83726b14
Refactored EnumProtocols and added SPX protocols.
2014-01-25 23:12:48 +00:00
Daniel Collins
09aacc71f9
Wrote unit tests for connecting to SPX sockets.
2014-01-25 22:32:28 +00:00
Daniel Collins
390f83ddc0
Wrote unit tests for sending/receiving IPX packets.
2014-01-25 22:32:28 +00:00
Daniel Collins
942848cd4f
Wrote socket creation unit tests.
2014-01-25 22:32:27 +00:00
Daniel Collins
018c66873f
Fixed segfault in recvfrom when called with NULL addrlen.
2014-01-25 22:32:27 +00:00
Daniel Collins
34ae708491
Updated sendto to work with SPX sockets.
2014-01-25 22:32:27 +00:00
Daniel Collins
b342f6c68d
Removed send/connect -> ws2_32 stubs from ipxwrapper.dll.
2014-01-25 22:32:26 +00:00
Daniel Collins
33071b40dd
Initialise ptype of IPX sockets correctly.
2014-01-25 22:32:26 +00:00
Daniel Collins
d98c830877
Updated bind to work with SPX sockets.
2014-01-25 22:32:25 +00:00
Daniel Collins
ef65d64edc
Updated WSARecvEx to work with SPX sockets.
2014-01-25 22:32:25 +00:00
Daniel Collins
714543fac5
Updated recvform to work with SPX sockets.
2014-01-25 22:32:25 +00:00
Daniel Collins
499bb4659c
Updated recv to work with SPX sockets.
2014-01-25 22:32:24 +00:00
Daniel Collins
e31d0d51a9
Updated send to work with SPX sockets.
2014-01-25 22:32:24 +00:00
Daniel Collins
938d95a450
Implemented accept function.
2014-01-25 22:32:23 +00:00
Daniel Collins
9114f0fb88
Updated connect to work with SPX sockets.
2014-01-25 22:32:19 +00:00
Daniel Collins
8786088252
Implemented SPX address resolution in router.
...
The router will search the socket table of the process for a listening SPX
socket with the correct address when a special packet is received.
2014-01-12 00:34:26 +00:00
Daniel Collins
b408f4e4e9
Implemented listen function.
2014-01-12 00:26:29 +00:00