You are on page 1of 5

Version 0.5.

0:
Bugfix: Allow address reuse when only the binding socket has SO_REUSEADD
R.
Bugfix: Initialise the ptype of IPX sockets created with a nonzero
protocol value correctly.
Bugfix: Removed conflicting send and connect functions.
Bugfix: Fixed segfault in recvfrom when called with NULL addrlen.
Update: Log entry and target DLL of stub calls.
Feature: Implemented support for SPX stream sockets over TCP.
Feature: Added workarounds for Jane's Combat Simulations: WWWII Fighters
.
Version 0.4.1:
Feature: Added workaround for point-to-point links.
Feature: Added option to automatically add Windows Firewall exceptions
during DLL initialisation. Disabled by default.
Version 0.4.0:
Bugfix: Fixed a crash in closesocket.
Bugfix: Properly handle interface indexes when some are disabled.
Bugfix: Fixed a deadlock caused by getsockopt.
Update: Implemented new address cache which stores the full sockaddr str
ucture
for each remote socket.
Cleanup: Integer types for storing 32 and 48-bit addresses and functions
for
manipulating them.
Cleanup: Rewrote registry access code.
Cleanup: Implemented library functions for loading and saving configurat
ion.
Cleanup: Configuration data written to registry in more sensible format.
Bugfix: Always use correct DLL names when logging calls in stub DLLs.
Bugfix: Properly handle interfaces without an IP address set.
Feature: Support interfaces with multiple assigned IP addresses.
Update: Periodically reload the interfaces and cache the result so the l
ist can
be used in more contexts without a performance hit.
Cleanup: Check if packets were sent from us by using the source IPX addr
ess and
local interface list rather than maintaining a list of local IP addresse
s.

Bugfix: Properly test for broadcast packets and set sa_flags when dealin . no longer needed.3. Cleanup: Removed out-of-process router support. Bugfix: Check source socket number before relaying to a connected socket . Version 0. multiple instances now k eep a list of bound addresses in shared memory. Cleanup: Use some IPXWrapper library code for interface and registry han dling in ipxconfig.Feature: Wildcard interface at index 0 to send/recv packets on all inter faces.3. Update: Removed options to disable source IP address filtering and selec tive broadcasting. Cleanup: Removed RETURN and RETURN_WSA macros used by the WinSock code. Bugfix: Makefile correctly builds packages from SVN.4: Feature: Added workaround for games that unset SystemRoot in the environ ment such as Carmageddon II. Update: Removed ipxrouter program.3: Bugfix: Added DirectPlay registry key for 64-bit systems. Cleanup: Update the address cache in the router main loop rather than in cluding the source IP in a header prefixed to the relayed packet. The "normal" port is shared for receiving broadcasts only. Bugfix: Added workaround for Hamachi bug. Bugfix: Correctly return single interfaces from get_interfaces when some are disabled in ipxconfig.2: Cleanup: Cleaned up Send/SendEx functions in DirectPlay service provider . Version 0. Update: Store IPX sockets in a hash table rather than a linked list. Bugfix: Don't skip interfaces immediately after disabled ones. Version 0. Feature: Log packets sent/receieved at the WinSock wrapper functions whe n verbose logging is enabled.3. Update: Each instance of IPXWrapper binds to a random UDP port for sendi ng and receiving packets.

Bugfix: Don't choke on rpacket_header in ioctlsocket/FIONREAD. Bugfix: Log stub DLL name rather than target DLL when logging calls. Cleanup: Updated logging API. Cleanup: Merged EnumProtocolsA and EnumProtocolsW into a single function . Feature: Support address reuse with SO_REUSEADDR. Feature: Support separate router process to allow for multiple processes using IPX sockets. added wsnwlink. Cleanup: Locking code partially cleaned up. Feature: Log version/revision number and compile time during ipxwrapper. Update: Open logfile with FILE_FLAG_WRITE_THROUGH instead of calling FlushFileBuffers after every write for performance. .3.h from Wine. Bugfix: Properly release event and lock objects when destroying a servic e provider instance.c and tidied up. Feature: Implemented IPX_EXTENDED_ADDRESS socket option. Bugfix: Deallocate hosts list in DLL cleanup. Bugfix: Properly terminate worker threads. Version 0. Version 0. dll initialisation. Update: Include thread ID with every log message.1: Bugfix: Fixed deadlock in DirectPlay service provider.g with extended addresses. Cleanup: Cleaned up error handling in SPInit. Bugfix: Load symbols from correct DLL on first try to prevent corruption of system error code. Feature: New DirectPlay service provider for IPX.3: Cleanup: Moved certain library functions out of ipxwrapper. Cleanup: Removed winstuff. Feature: Log sent/received/relayed packets when call logging is enabled.h. Bugfix: Return correct value when SO_BROADCAST is requested from getsock opt.

send and getpeername functions. Feature: Implemented IPX_RECEIVE_BROADCAST option. recvfrom and WSARecvEx.2. Update: Log DLL and function names in ipxwrapper. Feature: Load interfaces on each bind/getsockopt call to allow configura tion changes without restarting.2.log when call logging is enabled.dll to avoid stack overflow under certain conditions. Update: Max packet (data) size reduced to 8KiB. Bugfix: Only create registry key when saving configuration. Bugfix: Correctly order interfaces when first interface has the force primary flag set. Cleanup: Combined common code between recv. Cleanup: Cleaned up logging code and added timestamps using GetTickCount .dll.1: Bugfix: Delay stub DLL LoadLibrary calls until first API call as using LoadLibrary in DllMain crashes under some conditions. Feature: Optionally log names of all WinSock calls. Bugfix: Updated recv. Version 0. Bugfix: Added missing exports to wsock32. Feature: Implemented connect. Bugfix: Store correct DLL name in stub DLLs. Cleanup: Replace assert calls with proper error checks in ipxconfig. recvfrom and WSARecvEx functions to release mutex before calling recv to avoid deadlocks in multithreaded applications. Bugfix: Correctly terminate symbol names used within stub DLLs. Bugfix: Load EnumProtocolsA/EnumProtocolsW directly from mswsock. Bugfix: Correctly store protocol names at end of EnumProtocols buffer. Version 0. Cleanup: Call r_ winsock calls directly in router code to prevent it fro . Cleanup: Use wrapper function to read registry values in ipxconfig.2: Feature: Redesigned ipxconfig UI. Update: Added ipxconfig icon. Bugfix: Correctly terminate stub DLL names.dll and mswsock. Feature: Implemented windows 95/98 WSHEnumProtocols function.Bugfix: Correctly initialise common controls in ipxconfig.

Restrict UDP broadcasts and receives to selected interfaces by default. Store IPX network/node number in the NIC structure and a pointer to the bound interface in the socket structure. Changed Makefile to build stripped binaries.1: Initial release . Store router buffer globally so it can be free'd rather than leaking 64KiB every time the IPXWrapper DLL is unloaded. which it is by default. Allow UDP port to be changed in configuration program.m generating extra log messages. Version 0. Updated winsock wrapper functions to behave closer to the original winsock implementation. Wrote graphical configuration program. Load interface settings from the registry. Version 0. Bugfix: Fixed buffer overflow when converting certain addresses to text. Only require SO_BROADCAST for receiving broadcast packets if the win95 SO_BROADCAST bug is enabled. Host addresses referenced by IPX network AND node numbers.2: Implemented ioctlsocket() function with support for FIONREAD. expire 60 seconds after the last recieved packet.