1
0
mirror of https://github.com/solemnwarning/ipxwrapper synced 2024-12-30 16:45:37 +01:00

354 Commits

Author SHA1 Message Date
Daniel Collins
470f52dadf Release 0.7.0 ipxwrapper-0.7.0 2023-10-19 09:28:43 +01:00
Daniel Collins
3eda6148c3 Update readme. 2023-10-19 09:27:34 +01:00
Daniel Collins
2f76f9177d Merge branch 'fionread' 2023-10-18 21:36:03 +01:00
Daniel Collins
0a2bc5f629 Updated readme, changelog, manifest. 2023-10-18 21:30:11 +01:00
Daniel Collins
e9c45b8ac5 Fix select(), add some tests. 2023-10-18 20:24:05 +01:00
Daniel Collins
15b53ae001 Fix handling of FIONREAD socket ioctl.
When there are no packets waiting, ioctlsocket() should return success
and set *argp to zero.

When there are multiple packets waiting, ioctlsocket() should set *argp
to the accumulated size of all received payloads.

As far as I can tell, there's no way to inspect beyond the first packet
queued on a socket, so we must receive and queue all packets from the
socket to be able to know how much is available.

The recv pipeline has been reworked to queue packets in this manner,
and select() will try to emulate the normal behaviour we previously got
for free by passing the socket fd straight through in readfds.

I don't *think* WSAAsyncSelect() needs any changes since the socket
will still raise window messages as appropriate before we have any
opportunity to shunt the packet into the receive queue.
2023-10-17 17:38:13 +01:00
Daniel Collins
8c5752520e Ignore DNS/DHCP traffic in tests. 2023-10-17 17:37:13 +01:00
Daniel Collins
5d49ee60cb Update readme. 2023-10-17 12:17:30 +01:00
Daniel Collins
66a6510542 Merge branch 'dosbox' 2023-10-17 12:16:07 +01:00
Daniel Collins
056ec4b115 Split interface.[ch] into two files to fix ipxconfig link error. 2023-09-14 00:30:03 +01:00
Daniel Collins
59d2bbd2b7 Retry starting DOSBox during tests. 2023-09-13 00:24:50 +01:00
Daniel Collins
435df05496 Support DOSBox servers using DNS names. 2023-09-13 00:24:08 +01:00
Daniel Collins
a91e05c11b Add more DOXBox encapsulation tests. 2023-09-10 22:33:54 +01:00
Daniel Collins
ad1023b376 Fix potential blocking of the router thread when waiting for ready. 2023-09-10 08:47:48 +01:00
Daniel Collins
4dfe195d7e Set test suite packet captures to non-blocking mode. 2023-09-09 10:14:03 +01:00
Daniel Collins
8db4fb0872 Retransmit DOSBox registration request until a response is received. 2023-09-09 10:12:54 +01:00
Daniel Collins
36693ee9e0 Block certain calls momentarily when connecting to a DOSBox server.
Normally calls like bind() will immediately succeed or fail depending
on what address was requested and what addresses are assigned to the
machine, but when using a DOSBox IPX server we don't know our address
until it gets assigned to us, so block functions impacted by that to
avoid spurious errors when starting up.

If the server is down or slow then the calls will fail after a few
seconds rather than hanging indefinitely.
2023-09-05 22:43:10 +01:00
Daniel Collins
61cfcf7730 Add some initial tests for DOSBox encapsulation. 2023-09-05 22:43:10 +01:00
Daniel Collins
c72ef8a83a Use correct packet size limit for DOSBox encapsulation. 2023-09-05 18:21:52 +01:00
Daniel Collins
dde08ae3a9 Fix local packet delivery when using DOSBox encapsulation. 2023-09-05 18:21:52 +01:00
Daniel Collins
b987f7abc1 Fix test suite build issues. 2023-09-02 15:07:28 +01:00
Daniel Collins
46fc990971 Fix registration with DOSBox IPX server. 2023-09-02 15:04:21 +01:00
Daniel Collins
a6e56f76ce Provide WinPcap headers rather than expecting them on the host. 2023-09-02 15:02:52 +01:00
Daniel Collins
ff14b520cc Remove DOSBox net/node number settings.
The local address is assigned by the server when using a DOSBox
IPX server.
2021-08-21 22:09:17 +01:00
Daniel Collins
a0234c7459 Initial implementation of DOSBox encapsulation support.
Incomplete and completely untested at this point, beyond "it compiles".
2021-08-21 14:42:49 +01:00
Daniel Collins
0bee989d8a Fix memory leak. 2021-08-21 12:10:23 +01:00
Daniel Collins
5c65628fca Add options for DOSBox encapsulation to ipxconfig.
Been sitting on this for a while, the code to actually support
interacting with a DOSBox IPX server isn't done yet.
2021-08-19 22:28:22 +01:00
Daniel Collins
9f8cbdfb55 Initialise configuration before running DirectPlay tests 2019-09-26 11:04:41 +01:00
Daniel Collins
fd4d78575d Update changelog. 2017-09-23 21:59:05 +01:00
Daniel Collins
c21d2cd993 Update supported games list in readme. 2017-09-23 17:06:58 +01:00
Daniel Collins
3bcfed65a6 Fix source manifest and test-prep target.
ipx-bench and ipx-echo aren't needed for the test suite.
2017-09-23 16:54:34 +01:00
Daniel Collins
fe21cbb973 Add unit tests for address cache. 2017-09-20 00:19:58 +01:00
Daniel Collins
62c72e5279 Delete tests/tap/basic.o in clean and update .gitignore 2017-09-20 00:13:33 +01:00
Daniel Collins
753280da5d Improved bind tests.
Verify processes exiting abnormally don't hold onto addresses and check
the error code when bind() fails.
2017-09-20 00:13:33 +01:00
Daniel Collins
4a63b807e2 Fix typo. 2017-09-20 00:13:33 +01:00
Daniel Collins
597bf27204 Gracefully exit programs during tests.
Makes the test environment a bit more robust. Also makes a lot of the
tests pass under Wine(!).
2017-09-20 00:13:33 +01:00
Daniel Collins
bb7d4beeab Merge pull request #3 from protocultor/registry
Added IPX to DirectPlay Services in the Registry
2017-09-19 23:20:16 +01:00
Jaime Moreira
dd43953ee5 Added IPX to DirectPlay services in the registry 2017-09-18 22:29:35 -03:00
Daniel Collins
7017d4cf94 Create missing directory under .d/ 2017-09-12 17:48:33 +01:00
Daniel Collins
7ea305fe95 Clean up warnings about comparisons of distinct pointer types. 2017-09-12 17:44:07 +01:00
Daniel Collins
bdf829766f Tidy up Makefile and rework build dependency generation. 2017-09-12 17:43:12 +01:00
Daniel Collins
ea2e61ea32 Merge remote-tracking branch 'origin/llc-support' 2017-09-12 13:45:47 +01:00
Daniel Collins
ba7fa5a77f Allow sending Novell/LLC frames up to the maximum size. 2017-08-20 22:59:49 +01:00
Daniel Collins
b58ef3eb1e getsockopt: Return correct maxpkt when using Ethernet frame types. 2017-08-20 16:44:49 +01:00
Daniel Collins
1304e84d54 Merge remote-tracking branch 'origin/master' into llc-support 2017-08-19 19:16:06 +01:00
Daniel Collins
8c55242b10 Added support for win10pcap format interface names. 2017-08-06 14:57:08 +01:00
Daniel Collins
d9133fd8dd Compile with -mno-ms-bitfields
As of GCC 4.7, the default behaviour when targetting Windows is for
packed structures to use Microsoft's broken struct packing rules.
2017-08-05 10:36:08 +01:00
Daniel Collins
79e286259f Added -static-libgcc to DLL link commands.
Newer GCCs seem to pull in libgcc when building ipxwrapper.dll
2017-08-02 22:55:19 +01:00
Daniel Collins
df41665cb2 Fiddle with sleeps in DirectPlay tests.
Some asynchronous calls didn't have pauses after them, likely to fail
when running on a heavily loaded machine.
2017-06-20 02:05:54 +01:00
Daniel Collins
4cdca80c4b Don't do any cleanup in DllMain() during process termination.
Subtle crashes are fun. I found this to cause a deadlock, but only
after adding lots of extra debug logging to diagnose a DIFFERENT bug
and only when running it on a particular machine.

But once both of those criteria are met? It crashes pretty reliably.
2017-06-18 03:12:13 +01:00