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

234 Commits

Author SHA1 Message Date
Daniel Collins
b408f4e4e9 Implemented listen function. 2014-01-12 00:26:29 +00:00
Daniel Collins
0819a324c1 Refactored address table code.
- Use process+socket as key rather than local port number.

- Store socket protocol in table.

- Removed ADDR_TABLE_ENTRY_REUSE flag.
2014-01-12 00:25:10 +00:00
Daniel Collins
1f733315d6 Implemented ipx_interface_by_subnet function. 2014-01-12 00:25:10 +00:00
Daniel Collins
6c2a93e542 Updated ioctlsocket to work with SPX sockets. 2014-01-12 00:25:09 +00:00
Daniel Collins
2ad2707f89 Filter out SPX sockets when relaying IPX packets. 2014-01-12 00:25:09 +00:00
Daniel Collins
ae2837258f Updated shutdown to work with SPX sockets. 2014-01-12 00:07:58 +00:00
Daniel Collins
94d3a6cbbd Create SPX (TCP) sockets when requested. 2014-01-12 00:07:57 +00:00
Daniel Collins
68d13baac2 Allow address sharing when the existing socket doesn't have SO_REUSEADDR.
The IPX/SPX protocol versions in 98/2000/XP only require the second socket to
have SO_REUSEADDR when attempting to bind to an already-used address. The state
of the option on the first socket is ignored.

The ADDR_TABLE_ENTRY_REUSE flag is kept and set on all sockets in the address
table to keep compatibility with previous versions.
2014-01-12 00:07:52 +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
574094050c Moved reg_{get,set}_addr{32,48} from src/addr.[ch] to src/common.[ch] 2014-01-03 01:19:24 +00:00
Daniel Collins
7f01666d34 Forgot to add new sources to the manifest in previous commit. 2013-12-11 20:47:18 +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
7cbde56f1a Implemented workaround for PPP links. 2013-10-12 19:23:09 +01:00
Daniel Collins
0e3a9e556a Updated changelog. 2012-12-01 16:20:13 +00:00
Daniel Collins
318aa3e588 Append the IPs of ALL interfaces to the wildcard IP address list. 2012-12-01 15:52:25 +00:00
Daniel Collins
3c42e513ed Populate the wildcard interface IP list with the IPs of each enabled interface
rather than 0.0.0.0/0.0.0.0 as the behaviour of broadcasting to 255.255.255.255
is unreliable.
2012-12-01 14:44:18 +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
8cf1f4eaa4 More detailed debug messages when sending packets. 2012-12-01 14:09:02 +00:00
Daniel Collins
4b67b33dfa Only skip _ONE_ interface when a disabled one is encountered. 2012-12-01 13:08:05 +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
e3d0726208 Added ipxwrapper.log to .gitignore file. 2012-11-30 20:22:48 +00:00
Daniel Collins
466c0e3f0d Implemented basic testing framework and tests for bind behaviour. 2012-11-30 20:21:10 +00:00
Daniel Collins
07275d870c Dump interfaces at startup to aid with debugging. 2012-11-30 17:14:12 +00:00
Daniel Collins
3558f2196e Periodically update the address table and correctly remove entries. 2012-11-18 18:29:05 +00:00
Daniel Collins
0faeb985d2 Properly initialise address table. 2012-11-18 17:00:36 +00:00
Daniel Collins
d9ee86d985 Updated changelog and readme. 2012-11-17 23:07:27 +00:00
Daniel Collins
7b6501526c Removed config_version, cleaned up config code and implemented set_primary_iface. 2012-11-12 20:59:32 +00:00
Daniel Collins
50bb5a3868 Implemented reg_check_value to check if a value exists. 2012-11-12 20:42:55 +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
d921d206f0 Create main config key before attempting to create interface config key. 2012-11-11 22:48:56 +00:00
Daniel Collins
b453669229 Cleaned up most of the winsock code and removed the RETURN/RETURN_WSA macros. 2012-11-11 22:21:22 +00:00
Daniel Collins
9046a8ba1d Removed router_port option from main_config. 2012-11-11 20:58:56 +00:00
Daniel Collins
2a06601f53 Use a hash table instead of a linked list for storing the IPX sockets. 2012-11-11 20:54:43 +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
1f77b0f90e Removed bcast_all, src_filter and iface_mode options. The former two are now
implemented by the wildcard interface.
2012-11-10 22:24:47 +00:00
Daniel Collins
6c1ab421da Implemented wildcard interface support. 2012-11-10 19:55:59 +00:00
Daniel Collins
2aa64787ab Fixed ipx_to_string. 2012-11-10 17:05:41 +00:00
Daniel Collins
076792d94b Removed IP address fields from router_addr structure. 2012-11-03 23:13:53 +00:00
Daniel Collins
2dd19ce6d7 Perform source address filtering using the IPs registered with the IPX interface
of the target address rather than the one in the router_addr structure.

Bugfix: Don't overwrite packet IP address on first relay.
2012-11-03 23:07:42 +00:00
Daniel Collins
2f9677c3d2 Replaced single_iface option with iface_mode. 2012-11-03 13:11:16 +00:00
Daniel Collins
f72e88ea34 Iterate over interface broadcast addresses in sendto rather than storing a
single address in ipx_socket during router bind.
2012-11-03 12:57:34 +00:00
Daniel Collins
f087fc26b1 Removed addr_cache_ttl and iface_ttl from main_config structure. 2012-11-03 02:14:14 +00:00
Daniel Collins
d8a0dcf5c8 Removed ip_is_local and associated code. Test for packets originating from us by
attempting to fetch an interface using the IPX source address instead.
2012-11-03 02:03:46 +00:00
Daniel Collins
57e4f27bb8 Implemented (virtual) interface address cache and ipx_interface utility functions. 2012-11-03 01:21:25 +00:00
Daniel Collins
bee68d52b9 Store zero or more IPs in ipx_interface structures rather than one. 2012-11-02 20:45:10 +00:00
Daniel Collins
7fe8d74f22 Implemented config saving functions and added log_level to main_config. 2012-10-28 15:53:54 +00:00
Daniel Collins
39c6e18b46 Implemented registry writing functions.
Implemented random (locally-administered) MAC address generator.

Added config options for single interface mode.
2012-10-28 13:08:36 +00:00
Daniel Collins
46b62c450c Added .gitignore file. 2012-10-26 20:58:27 +01:00