diff --git a/changes.txt b/changes.txt index db678bf..5305b5f 100644 --- a/changes.txt +++ b/changes.txt @@ -1,3 +1,59 @@ +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 structure + 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 configuration. + + 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 list can + be used in more contexts without a performance hit. + + Cleanup: Check if packets were sent from us by using the source IPX address and + local interface list rather than maintaining a list of local IP addresses. + + Feature: Wildcard interface at index 0 to send/recv packets on all interfaces. + + Update: Removed options to disable source IP address filtering and selective + broadcasting. + + Update: Removed ipxrouter program, no longer needed. + + Cleanup: Removed out-of-process router support, multiple instances now keep a + list of bound addresses in shared memory. + + Cleanup: Update the address cache in the router main loop rather than including + the source IP in a header prefixed to the relayed packet. + + Update: Each instance of IPXWrapper binds to a random UDP port for sending and + receiving packets. The "normal" port is shared for receiving broadcasts only. + + Bugfix: Check source socket number before relaying to a connected socket. + + Update: Store IPX sockets in a hash table rather than a linked list. + + Cleanup: Removed RETURN and RETURN_WSA macros used by the WinSock code. + + Cleanup: Use some IPXWrapper library code for interface and registry handling + in ipxconfig. + Version 0.3.4: Feature: Added workaround for games that unset SystemRoot in the environment such as Carmageddon II. diff --git a/readme.txt b/readme.txt index a30ee78..939865e 100644 --- a/readme.txt +++ b/readme.txt @@ -7,20 +7,19 @@ Read license.txt for licensing terms. -- INTRODUCTION -- -IPXwrapper is a WinSock wrapper which transparently tunnels IPX packets over a -chosen UDP port (54792 by default). To use it, simply copy the four included -DLL files to the directory containing your legacy program. +IPXWrapper is a wrapper library which transparently tunnels IPX packets over IP +using UDP. To use it, simply copy the four included DLL files to the directory +containing your legacy program. If you are running Windows Vista or later and the game uses DirectPlay you may also need to import directplay-win32.reg or directplay-win64.reg as appropriate. -Using more than one program at a time with IPXWrapper requires running ipxrouter -first, this will bind to the UDP port and pass any recieved packets to the -correct process. - -Most software binds only to the default interface, if you get no errors but still -can't connect to other computers, try running the ipxconfig program and selecting -the appropriate default interface. +The "wildcard" interface is used by default, this will send and receieve packets +on all available network interfaces and may cause problems if you share more +than one network with the other computers running IPXWrapper. To use a single +interface, run the ipxconfig program and select a different primary interface, +change which interfaces are enabled or pick a different interface in the options +of your program. Software using IPXWrapper can't communicate with software that is using the real IPX protocol and vice-versa.