Daniel Collins
2ad2707f89
Filter out SPX sockets when relaying IPX packets.
2014-01-12 00:25:09 +00:00
Daniel Collins
3558f2196e
Periodically update the address table and correctly remove entries.
2012-11-18 18:29:05 +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
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
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
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
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
ebcf1673e2
REFACTOR ALL THE THINGS.
2012-10-21 10:26:52 +00:00
Daniel Collins
c836c55ee4
Implemented function for formatting complete IPX addresses as strings.
...
Bugfix: mkstubs.pl used wrong DLL number for calls to log_call.
2012-10-20 19:21:59 +00:00
Daniel Collins
97b303822d
Fixed a deadlock.
2012-07-22 19:29:39 +00:00
Daniel Collins
e7c6358044
Updated logging API.
2011-11-16 21:32:59 +00:00
Daniel Collins
225f46948b
Added some extra log messages for debugging.
2011-11-13 18:31:22 +00:00
Daniel Collins
7c822c97b6
Tweaked some code and updated changelog.
2011-09-21 21:57:28 +00:00
Daniel Collins
8820b7d478
Correctly initialise router_addr.remote_addr, use correct width for rpacket_header.src_ip and correctly set router copy of socket flags.
2011-09-19 23:49:16 +00:00
Daniel Collins
93ce7e3ea7
Fix segfault.
2011-09-19 22:14:19 +00:00
Daniel Collins
a8a700b6f2
Added option to change router control port.
2011-09-19 00:43:16 +00:00
Daniel Collins
fd555ce7c2
Implemented IPX_RECEIVE_BROADCAST option, updated router/rclient API and added proper checks when receiving broadcast packets to the router main loop.
2011-09-17 23:47:31 +00:00
Daniel Collins
646ab3b011
Reduced packet data limit to 8192 bytes, the standard driver included with XP only supports 1467 anyway.
2011-09-17 19:54:53 +00:00
Daniel Collins
f560fae7ad
Added header to packets sent from router to loopback sockets.
2011-09-17 19:17:13 +00:00
Daniel Collins
390663ba83
Implemented connect function.
2011-09-15 18:47:31 +00:00
Daniel Collins
9ac1da252a
Store IP address and netmask in router_addr structure and check each packet originates from the bound interface rather than testing against all IPX interfaces.
2011-09-11 16:58:04 +00:00
Daniel Collins
e91121bf02
Bugfix: router_bind() didn't set ->next properly, lost any existing binds.
2011-09-11 14:38:12 +00:00
Daniel Collins
ee30a6200f
Some bugfixes in the DirectPlay service provider code.
2011-09-11 12:03:38 +00:00
Daniel Collins
616859cc13
Treat connection reset in router code as proper disconnect.
2011-09-10 11:46:09 +00:00
Daniel Collins
b8c366a5ed
Code cleanup
2011-09-09 22:29:38 +00:00
Daniel Collins
5b77e23815
Bugfixes and cleanup in router code.
2011-09-09 22:10:32 +00:00
Daniel Collins
8e06150325
Completed changes to allow for separate router processes.
2011-09-09 18:36:52 +00:00
Daniel Collins
11af1ba5d5
Added call handling to router code
2011-09-09 17:38:57 +00:00
Daniel Collins
6d6ac5f2c3
Listen for and accept/close client connections in router code.
2011-09-09 15:50:55 +00:00
Daniel Collins
81ebe2191d
Added standalone router executable, currently useless since the router code doesn't support running in another process.
2011-09-08 23:28:36 +00:00
Daniel Collins
b1828e0958
Implemented proper SO_REUSEADDR support and fixed getsockopt to return proper value when SOL_SOCKET/SO_BROADCAST is requested.
2011-09-08 18:28:01 +00:00
Daniel Collins
0b73241fe8
Check packet size and cache source IP in recv_packet. Destination network number is replaced with the source IP of the packet by the router thread.
2011-09-07 20:37:18 +00:00
Daniel Collins
d046b6522d
Switchover to new router code
2011-09-07 20:03:16 +00:00
Daniel Collins
37e9db8fba
New router code on verge of completion
2011-08-29 13:58:45 +00:00
Daniel Collins
bcbaea33c4
New router code nearing completion.
2011-08-29 13:41:10 +00:00
Daniel Collins
1a54e5208d
More work on new router code.
2011-08-29 10:57:19 +00:00
Daniel Collins
9f62a21b30
Started rewrite of router code to be isolated from the rest of IPXWrapper.
2011-08-29 10:03:58 +00:00