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

79 Commits

Author SHA1 Message Date
Daniel Collins
6f468a2316 Load main configuration from ipxwrapper.ini (#15). 2024-06-25 12:05:06 +01:00
Daniel Collins
c16b73bce4 Initial packet coalescing prototype.
This introduces "packet coalescing" for the DOSBox transport - when an
application is sending an absurd number of tiny IPX packets in rapid
succession we try to batch them up into a container packet to be sent
through the DOSBox server.

This will hopefully improve how certain games behave when using the
DOSBox transport option, but will break compatibility with anything not
specifically supporting this special message framing.
2023-12-10 13:00:16 +00:00
Daniel Collins
e4dc937e44 Merge branch 'master' into profiling 2023-10-18 23:12:12 +01:00
Daniel Collins
e9c45b8ac5 Fix select(), add some tests. 2023-10-18 20:24:05 +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
a6e56f76ce Provide WinPcap headers rather than expecting them on the host. 2023-09-02 15:02:52 +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
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
7017d4cf94 Create missing directory under .d/ 2017-09-12 17:48:33 +01:00
Daniel Collins
bdf829766f Tidy up Makefile and rework build dependency generation. 2017-09-12 17:43:12 +01:00
Daniel Collins
1304e84d54 Merge remote-tracking branch 'origin/master' into llc-support 2017-08-19 19:16:06 +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
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
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
e5085ba1d9 Implemented basic DirectPlay test suite. 2015-11-26 00:10:49 +00: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
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
4fd24354a5 Refactored ipxconfig, allow enabling Ethernet encapsulation. 2014-04-18 14:45:09 +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
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
533e35729d Refactored bind tests to use Test::More and prove. 2014-01-03 21:14:59 +00:00
Daniel Collins
e7c19c3d42 Fixed addr32_from_string and addr48_from_string. 2014-01-03 21:12:50 +00:00
Daniel Collins
223bfeb35a Automatically add exceptions to Windows Firewall
If enabled (default is off) and running as an admin, add the running executable
to the Windows Firewall exception list during DLL initialisation.
2013-12-11 20:23:48 +00:00
Daniel Collins
fab32bf974 Use get_main_config() to load correct log level from registry in stub DLLs. 2012-12-01 14:34:14 +00:00
Daniel Collins
d95b7d92b5 Replaced BIN_FILES/SRC_FILES variables in Makefile with external manifest files
and updated for current tree.
2012-11-30 21:01:32 +00:00
Daniel Collins
466c0e3f0d Implemented basic testing framework and tests for bind behaviour. 2012-11-30 20:21:10 +00:00
Daniel Collins
f29bbb7f06 Updated ipxconfig to use some C utility functions and new config variables. 2012-11-11 23:57:35 +00:00
Daniel Collins
920b5ee2c3 Implemented new "address table" code for maintaining address uniqueness between
multiple IPXWrapper processes without needing a shared router thread.

Replaced router/rclient code with a single, per-process router thread.

Add addresses to the cache in the router main loop rather than winsock recv
functions.

Packets are no longer preceeded by an rpacket_header structure when relayed to
the local UDP sockets.

Each IPXWrapper instance creates a "private" UDP socket bound to a random port
on INADDR_ANY which is used for sending all packets and receiving unicast.

Bugfix: Check source socket number before relaying to a connected socket.
2012-11-11 20:26:50 +00:00
Daniel Collins
8dc0d0aaa3 Removed ipxrouter program. 2012-11-11 14:01:09 +00:00
Daniel Collins
6c35bd884e Use "DEVELOPMENT BUILD" as the version string rather than trying to get the SVN revision number. 2012-10-26 20:44:31 +01:00
Daniel Collins
b95d88a5c4 Generate header dependencies on the fly using gcc -MM. 2012-10-21 12:08:31 +00:00
Daniel Collins
ebcf1673e2 REFACTOR ALL THE THINGS. 2012-10-21 10:26:52 +00:00
Daniel Collins
0f6c458bcc Implemented new address cache. 2012-10-20 18:06:11 +00:00
Daniel Collins
a5837f0fdc Added workaround for games that break WinSock IP support by clearing the environment (Carmageddon II). 2012-05-10 01:18:25 +00:00
Daniel Collins
6169193e62 Fixed makefile 2012-01-14 15:30:26 +00:00
Daniel Collins
406b4710bc Log version/revision and compile time while initializing ipxwrapper.dll. 2011-11-14 02:21:29 +00:00
Daniel Collins
c18a6747b3 Added DirectPlay registry key and updated readme. 2011-09-19 13:23:54 +00:00
Daniel Collins
82c3d8f242 Moved icon-related stuff to subdir. 2011-09-19 00:49:31 +00:00
Daniel Collins
f8b53b1d1b Added ipxconfig icon. 2011-09-18 22:24:26 +00:00
Daniel Collins
a778b55e0a Updated SRC_FILES and changelog. 2011-09-18 22:00:25 +00:00
Daniel Collins
d9684fd53b Added icon for ipxrouter. 2011-09-18 15:43:13 +00:00