Daniel Collins
3be40b6e63
Bodge asynchronous connects to almost work as they should.
2014-01-25 23:14:46 +00:00
Daniel Collins
938d95a450
Implemented accept function.
2014-01-25 22:32:23 +00:00
Daniel Collins
9114f0fb88
Updated connect to work with SPX sockets.
2014-01-25 22:32:19 +00:00
Daniel Collins
8786088252
Implemented SPX address resolution in router.
...
The router will search the socket table of the process for a listening SPX
socket with the correct address when a special packet is received.
2014-01-12 00:34:26 +00:00
Daniel Collins
b408f4e4e9
Implemented listen function.
2014-01-12 00:26:29 +00:00
Daniel Collins
94d3a6cbbd
Create SPX (TCP) sockets when requested.
2014-01-12 00:07:57 +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
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
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
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
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
8fd710578d
Set 0x02 in sa_flags when packet is from a local (IPX) IP and free the hosts list while cleaning up.
2011-10-03 11:13:45 +00:00
Daniel Collins
5d1c56e5f1
Implemented IPX_EXTENDED_ADDRESS socket option.
2011-09-28 21:49:31 +00:00
Daniel Collins
322b2fe97d
Added tray icon and menu with exit option to ipxrouter. Added filename argument to log_open.
2011-09-18 14:36:24 +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
412a4c3932
Implemented getpeername function.
2011-09-15 18:59:23 +00:00
Daniel Collins
3924db36b8
Implemented send function.
2011-09-15 18:53:31 +00:00
Daniel Collins
390663ba83
Implemented connect function.
2011-09-15 18:47:31 +00:00
Daniel Collins
a40d3da084
Updated getsockopt to call get_interfaces for each IPX_ADDRESS/IPX_MAX_ADAPTER_NUM call.
...
Deleted global interface list.
Set ipxwrapper.dll EnumProtocolsA/EnumProtocolsW stubs to load from wsock32.dll as they don't exist in ws2_32.dll.
2011-09-11 17:09:57 +00:00
Daniel Collins
b888762538
Rewrote DLL loading code to avoid corrupting the system error code.
2011-09-11 13:28:41 +00:00
Daniel Collins
f1a6cf40a2
Bugfix: Setup socket for sending packets with new router code properly.
2011-09-09 19:03:19 +00:00
Daniel Collins
8e06150325
Completed changes to allow for separate router processes.
2011-09-09 18:36:52 +00:00
Daniel Collins
431d0b8047
Began cleanup/overhaul of DirectPlay service provider. Removed last of the "extended bind" kludge implemented for previous code.
2011-09-08 18:42:27 +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
b3d911abea
Partial cleanup of locking code.
2011-09-08 00:20:34 +00:00
Daniel Collins
d046b6522d
Switchover to new router code
2011-09-07 20:03:16 +00:00
Daniel Collins
bcbaea33c4
New router code nearing completion.
2011-08-29 13:41:10 +00:00
Daniel Collins
2674e3356f
More code cleanup and a couple of files I forgot to add last commit.
2011-08-29 13:21:18 +00:00
Daniel Collins
8b1c53e0bd
More code cleanup
2011-08-29 13:15:10 +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
Daniel Collins
bbfbcb79cd
Lots of code cleanup.
2011-08-28 21:27:06 +00:00
Daniel Collins
e5271a3df6
Added (very) experimental DirectPlay support.
2011-08-28 15:56:05 +00:00
Daniel Collins
7b50221c63
Changed format of log timestamp and fixed buffer overflow when converting some IPX addresses to text.
2011-07-21 18:41:52 +00:00
Daniel Collins
fb68a9a593
Cleaned up logging code, added log timestamps (using GetTickCount) and changed calls in router code to prevent it from generating extra log messages.
2011-07-13 22:56:19 +00:00
Daniel Collins
84527b7eda
Moved shared configuration stuff into config.h
2011-04-24 23:40:52 +00:00
Daniel Collins
6167cdcb7e
Added code to filter out packets not received from the subnet of an enabled interface and a checkbox to enable/disable it.
2011-04-24 23:32:10 +00:00
Daniel Collins
3d72ad087d
Send broadcasts only to the bound subnet unless option is set in registry, then use INADDR_BROADCAST. Store subnet mask in ipx_nic in load_nics().
2011-04-24 21:55:57 +00:00
Daniel Collins
7ba8d989a3
Load UDP port number from registry and only require SO_BROADCAST to be set for receiving packets when the win95 broadcast bug is enabled. (Currently enabled by default)
2011-04-24 18:44:31 +00:00
Daniel Collins
8f4a5e1c6f
Cleaned up socket()
2011-04-24 17:40:25 +00:00
Daniel Collins
53346c2536
Updated how router thread checks packet sizes, cleaned up code
2011-04-24 16:59:21 +00:00
Daniel Collins
033c7b0752
Rewrote most of the bind() function, it (should) now match the winsock API and IPX standards better.
2011-04-24 01:23:10 +00:00
Daniel Collins
a4e0add8c7
Small amount of code cleanup
2011-04-24 00:24:10 +00:00
Daniel Collins
b11036bc14
Store IPX net/node numbers in ipx_net structure during startup.
2011-04-24 00:01:38 +00:00
Daniel Collins
4afad85e3c
Host list entries are now identified by both network AND node numbers and expire after TTL (60) seconds of not receiving any packets.
2011-04-23 23:42:14 +00:00
Daniel Collins
983265ffc0
Removed redundant values from ipx_nic structure and fixed bug in NIC list code.
2011-04-23 20:13:21 +00:00
Daniel Collins
e4534b91eb
Load interface options from registry and handle enabled/primary flags.
2011-04-23 19:49:53 +00:00