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
Daniel Collins
a3fba1773d
Implemented ioctlsocket() wrapper with support for FIONREAD.
2010-01-09 16:20:18 +00:00
Daniel Collins
75c0f30518
Rewrote stub generation code to create ASM code, no more unimplemented functions due to missing declarations!
2009-01-25 17:06:29 +00:00
Daniel Collins
62c8078ad5
Changed port number for the last time
2009-01-07 17:27:09 +00:00
Daniel Collins
43fa45d29a
Changed port number to 404040 because 13579 is allocated to some other protocol, will change it if IANA grants me a port number.
2008-12-11 22:24:37 +00:00
Daniel Collins
4d28856065
Imported current tree into SVN
2008-12-09 21:36:07 +00:00