Daniel Collins
c5ec8a138e
Merge branch 'master' into profiling
2021-01-20 21:33:21 +00:00
Daniel Collins
704bce5baf
Add profiling for some ipxwrapper.dll functions.
2021-01-20 20:51:16 +00:00
Daniel Collins
e686e8dbe2
Implement RAII-y mechanism for profiling functions.
2021-01-20 20:48:37 +00:00
Daniel Collins
9f8cbdfb55
Initialise configuration before running DirectPlay tests
2019-09-26 11:04:41 +01:00
Daniel Collins
18419bb096
Fix crash in ipxconfig
2019-08-24 20:51:33 +01:00
Daniel Collins
904b60d21b
Log function profiling statistics every 10 seconds.
2019-08-24 16:06:41 +01:00
Daniel Collins
7e6280b560
Record times taken within stub functions
...
Reporting not done yet.
Call logging broken (for now).
2019-08-23 20:25:14 +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
Daniel Collins
9d76f3ef00
Extended end-to-end test suite to cover LLC encapsulation.
2017-03-29 22:19:31 +01:00
Daniel Collins
bc778d9f3b
Implemented support for 802.2 LLC framing.
2017-03-29 22:00:47 +01:00
Daniel Collins
323341fc0c
Initialise source MAC when serialising Ethernet frames.
2017-03-29 20:35:38 +01:00
Daniel Collins
659641d436
Added unit tests for Ethernet frame (de)serialising functions.
2017-03-29 20:34:32 +01:00
Daniel Collins
b7b4a953d8
Refactored Ethernet frame (de)serialisation.
...
Reworked the (de)serialising of Ethernet frames into seperate functions in
preparation for supporting IEEE 802.2 LLC frames.
2017-03-28 23:29:38 +01:00
Daniel Collins
d65fb92480
Extended test suite to cover Novell "raw" Ethernet frames.
2017-03-28 00:27:11 +01:00
Daniel Collins
273bfcbbb5
Added frame type selection to ipxconfig.
2017-03-27 23:51:54 +01:00
Daniel Collins
20a636b933
Implemented support for Novell "raw" Ethernet frames.
...
Manual selection of frame type (defaults to Ethernet II) only, don't want to
mess with trying to guess/detect the frame type right now.
2017-03-27 23:51:54 +01:00
Daniel Collins
d7c9e10349
Implement quick 'n dirty script to generate charts from benchmarks
2015-12-15 22:54:57 +00:00
Daniel Collins
67acb100a3
Implement crude benchmarking tools
...
These tools can be used to measure RTT, packet loss, and sendto()/recv() call
duration on one end with a specified minimum delay between sendto() calls to
emulate some different loads.
2015-12-15 22:22:06 +00:00
Daniel Collins
1e8f89f655
Add DirectPlay test suite code to source manifest.
...
Missed in previous commit.
2015-12-02 00:07:26 +00:00
Daniel Collins
e5085ba1d9
Implemented basic DirectPlay test suite.
2015-11-26 00:10:49 +00:00
Daniel Collins
91c39a769f
Update readme/changelog.
2015-08-23 19:36:31 +01:00
Daniel Collins
0e3713f26f
DirectPlay: Increase API_HEADER_SIZE.
...
We don't need any memory reserved for writing out packet headers, but
DirectPlay seems to corrupt itself internally and do funky things if this goes
below a certain threshold. Value taken from the DX5 service provider.
2015-08-21 22:58:55 +01:00
Daniel Collins
c6b505fee9
DirectPlay: Move initialisation of discovery socket.
...
Initialise the discovery socket when SP_CreatePlayer() is called with the
CREATEPLAYER_NS flag and do nothing in SP_Open, as per the DX5 implementation.
This will correctly handle the name server moving between nodes in a session.
2015-08-21 22:58:55 +01:00
Daniel Collins
dbfdae63d2
DirectPlay: Move initialisation/destruction of main socket.
...
Initialise the socket when SP_Open or SP_EnumSessions is called and close it
when SP_CloseEx is called, per the DX5 implementation.
2015-08-21 22:58:55 +01:00
Daniel Collins
8ded8da35a
DirectPlay: Refactor worker loop.
...
Hold the lock while reading to ensure the socket isn't closed during the
recvfrom() call, allow either socket to be closed and close either socket if
the recvfrom() call fails.
2015-08-21 22:58:55 +01:00
Daniel Collins
a89948c2f9
DirectPlay: Remove addr field from sp_data structure.
...
Resolve the address of the main socket at each use rather than holding a copy
in the sp_data structure, one less thing to become desync'd.
2015-08-21 22:58:51 +01:00
Daniel Collins
95e492f653
DirectPlay: Remove already-initialised check in SPInit()
...
I have no idea why I implemented this check in the first place, the Microsoft
implementation doesn't do it and I think it might cause problems.
2015-08-21 22:36:13 +01:00
Daniel Collins
a0b4abd53e
DirectPlay: Initialise sp_data on stack.
...
SetSPData() takes a copy of the given data, so there is no need to allocate it
on the heap ourselves.
2015-08-21 22:35:03 +01:00
Daniel Collins
59a9f090d5
DirectPlay: Improve SP_Reply() diagnostics
2015-08-21 22:32:02 +01:00