Sustainable Sustworks - Tools for Internet Travel
Inspired Tools for the Mac


Release Notes

June 27, 2002 (1.6.8)

Fixed bug which could cause IPNetRouter to crash when manually disconnecting a PPP connection.

June 21, 2002 (1.6.7)

DynDNS client support now automatically updates the DynDNS host information every 25 days, even if a user's public IP address has not changed. This is important for users who are using the service to keep track of their current public IP address which rarely, if ever, changes.

March 27, 2002 (1.6.6)

Added option to ignore "BootP" requests in DHCP Window. Enabling this option will disable DHCP lease assignments to PCs and other machines which request lease assignment by BootP instead of DHCP.

Added support for the "CUSTOM" feature of To enable custom domains, the domain name needs to be appended with ":CUSTOM". For example:

will enable a custom domain name at DynDNS for this domain (hence you do not need to use one of their registered domain name suffixes).

Users can append this command to the previous wildcard enabler, as described in the 1.6.5 release notes. A domain using both commands would look similar to this:

February 18, 2002 (1.6.5)

Fixed a radio button bug in the Exposed Host feature of the Gateway window.

Added support for the "WILDCARD" feature of To enable wildcards, the domain name needs to be appended with ":YES". For example:

will enable wildcards at DynDNS for this domain.

Wildcards would permit remote users to find our machine using:



January 31, 2002 (1.6.4)

Added a "Show DNS" button in the Interfaces window which, when clicked, displays the ISP's current default name server address. This IP address should be used as the Name Server (DNS) field in all client machines which are manually configured (especially users of the single ethernet setup). This is also of particular interest to cable modem users who have been or shortly will be going through various conversion processes by their ISPs (i.e. moving from static IP address assignments to DHCP address assignments).

Users should also ensure that the "DHCP Aware" feature is applied to their masqueraded interface when their ISP moves their service to a DHCP assigned IP address.

December 18, 2001 (1.6.3)

Implemented DynDNS client. This lets IPNetRouter automatically update a user's dynamically assigned public IP address with

Removed date field from registration dialog box (no longer needed).

Included OTModl$Proxy v2.1.8

November 6, 2001 (1.6.2)

Increased filter table to 2000 entries.

The new payload inspection filter action is now properly displayed within the Filter Window (payload filters must be configured with IPNetSentry). Payload filters are especially useful for detecting and stopping Nimda and Code Red type intrusions.

Added button to turn off/on IPNetSentry from the Filter Window.

Added DHCP server feature which handles application specific DHCP option commands (see DHCP Help window for more information). Most applicable to other developers who need their applications to handle unique commands during the DHCP negotiation process.

Include OTModl$Proxy v2.1.7

Aug 15, 2001 (1.6.1)

Fix bug in Local NAT with new OTModl$Proxy 2.1.5. This will mainly affect users who need to use the "Enable Local NAT" feature in the Gateway Window of IPNetRouter.

IPNetRouter "About" dialog box now displays both IPNetRouter version and the OTModl$Proxy version numbers.

July 30, 2001 (1.6)

Released as version 1.6

June 28, 2001 (1.6c9)

Included OTModl$Proxy 2.1.4 which fixes Local NAT bug and has logging capability necessary for IPNetSentry.

Gateway Window: changed Help text and added alert notification when either Enable Local NAT or TR Cable Modem options are checked (most users do NOT need to enable these options).

Modified registration key processing.

Updated Read Me file.

Apr 27, 2001 (1.6c8)

IP Filtering: add filter action Log.

Increase filter table to 250 entries.

Fix bug in adding and removing filters with new OTModl$Proxy 2.1.2.

Mar 6, 2001 (1.6c7)

Fixed bug in passing short IP fragments.

NAT: extend time outs for VPN traffic.

Fixed possible crash if TCP/IP Preferences file does not exist.

IP Filtering: add filter action Trigger to block subsequent data from that source.

Proxy module: add support for filter logging.

Feb 20, 2001 (1.6c6)

Remain Connected: fixed possible crash upon quit.

Gateway Window: added Exclude From NAT and Exclude Net.

Port Mapping: extend time out for VPN entries (protocol GRE and IPSec).

Save & Restore: restore port map entries correctly if interface matches previous config.

Restore routes and IP filters after kOTProviderWillClose (gateways DHCP Lease expires).

Include IPNR Config with installer.

Updated Read Me file.

Feb 8, 2001 (1.5.4)

Updated Read Me file.

Include IPNR Config with installer.

Jan 30, 2001 (1.6c5)

Fixed memory leaks: LTable, LButton, LoadTextTraits, LEditField, PortToString.

Revert CTurboUDPEndpoint to follow CW4 design.

Window Names: store names in resource for easy translation.

Gateway Window: Change name to "Gateway Options".

DHCP: Log received DHCP message type correctly.

DHCP: Fix error recovery when a client claims the wrong lease to prevent filling the DHCP Status Table with duplicate entries.

Help Menu: add "Getting Started with IPNetRouter"

Proxy Module: fixed bug in masquerading IP fragmented datagrams.

Installer: added "Unlink OTModl$Proxy" to simplify uninstalling.

Jan 4, 2001 (1.6c4)

Import Weak InternetConfigLib to avoid possible launch error.

DHCP Server: fixed bug in logging option list.

DHCP Status: increase max table rows to 4096.

DHCP Server: decode options only if interface is enabled for DHCP serving.

Filter Window: save and restore "0" correctly for ICMP code and type.

Nov 6, 2000 (1.6c3)

Fixed crash when quiting if DHCP Server started.

Filter Window: allow PortName "All".

Nov 3, 2000 (1.6c2)

Fixed crash when invoking Remote Access.

Filter Window: display "0" correctly for ICMP code and type.

Oct 31, 2000 (1.6c1)

Convert to CW6 for carbonization.

Fixed bug in DNS forwarding for multiple pings.

Filter Window: show port ranges that start from zero.

Changed shortcuts: Z for Disconnect since D is used for DHCP.

Fixed bug in detecting source IP address for on demand traffic (outbound only).

Fixed bug in bringing down an interface that is currently up.

Sep 21, 2000 (1.5.3)

Completly fixed restore settings in trial mode.

Pad DHCP options to an even number of bytes.

Increase maximum number of characters in routes window to allow subnet routes.

Changed shortcuts: D for DHCP; R for Routes, H(ardware Addr) for ARP.

Gateway: pressing Done will accept any text field changes (exposed host address, dialupDNS username and passworld).

Sep 7, 2000 (1.5.2)

Fixed bug in restoring settings when application is in trial mode.

Aug 18, 2000 (1.5.1)

DHCP Server: send responses to DHCP Server port (67) if via Relay Agent.

DHCP Server: ignore clients that match a static config with address=0.

DHCP Server: do not assign remaining lease time if less than 2 minutes.

DHCP Server: change default User Message for ACK response to empty.

Fixed bug in storing registration keys with a bad date.

July 31, 2000 (1.5)

Fix bug in accepting 68K only long hash key.

July 14, 2000 (1.5)

Released as version 1.5

Update DHCP help text

Allow editing in Log Window

July 2, 2000 (1.5c16)

Port Mapping: fix bug in mapping port ranges uniquely.

DHCP Server: include customizable user message in ACK responses.

Support 68K only registrations.

Help Window: provide translated text for German, Spanish, and French.

Help Window: add search website button.

June 18, 2000 (1.5c15)

Proxy (OTModl$Proxy 1.9.4): fix possible leak for copied messages with ref_count>1.

Inserting Proxy module: don't give up if fixing an invalid configuration fails.

May 29, 2000 (1.5c14)

Proxy: fixed bug that could mis-locate receive datagrams.

Gateway: change DNS Forwarding to default to off for better stability.

Gateway: change Remain Connected to ask PPP for the remote address to ping.

Dialup DNS Client: stop after 5 retries if connection fails.

IP Filtering: revert to block invalid or unrecognized datagrams for better stability.

IP Filtering: add filter action "NoDial".

Config File: add filter headings as a comment.

Gateway: restore "Better PPPoE Routing" so that MSS Clamp can be turned off if needed for compatibility (default to on).

May 17, 2000 (1.5c13)

Allow FBA to run in trial mode.

Add date field to registration data.

Accept extended registration data as a single hex string.

Port Mapping Window: remember "Show Permanent Only" and monitoring state.

Proxy module: determine FastPath Header Size from response to DL_IOC_HDR_INFO instead of scanning header.

Save & Restore: fixed bug in determining buffer size, issue a log message if buffer overflows.

Gateway: Set MSS Clamp for PPPoE based on Interface MTU. This feature modifies TCP connection request packets to limit the MSS to MTU-40 to insure TCP segments will pass through a PPPoE connection that does not correctly handle oversize datagrams. Remove "Better PPPoE Routing" since it is now automatic.

April 26, 2000 (1.5c12)

DHCP Server: set "DHCP Server On" checkbox correctly after wake from sleep.

DHCP Server: include customizable user message in NAK responses.

IP Filtering: pass unrecognized datagrams as default.

Gateway Window: save Exposed Host address upon Tab, Enter, or Return.

Gateway Window: add built-in Dialup DNS Client.

April 5, 2000 (1.5c11)

Filter Window: increase max table size to 100 rows.

Filter Window: add ports for "dhcp-client" and "dhcp-server".

Gateway Window: changed "Limit MTU for PPPoE" to "Better PPPoE Routing".

DNS Forwarding: fixed bug that would save and restore an old DNS Forwarding entry.

Retry updating routes data if report size exceeds buffer.

About Box: update support URL.

Mar 9, 2000 (1.5c10)

Gateway: Fix Exposed Host bug when set to Gateway.

Gateway: Skip Exposed Host translation in Single Ethernet configurations.

Mar 8, 2000 (1.5c9)

Gateway: Fix bug that didn't display Exposed host after restore from a settings file.

Gateway: Fix bug that sometimes reset the Exposed Host address when the window is opened.

About Box: Update URL links and Copyright.

Dialing: update connection retry processing to work better with Mac OS 9.

Mar 6, 2000 (1.5c8)

Gateway: Add "Limit MTU for PPPoE" setting.

Gateway: Add "Exposed Host" settings.

Interfaces: recognize interface names with an embedded space such as "108,Farallon Enet0".

DHCP: remove trailing null from Domain Name reported by DHCP Server (Option 15).

DNS Forwarding: translate the from address in DNS responses to make the gateway appear as the DNS server to any clients.

DNS Forwarding: disable extra NAT lookups when DNS forwarding is turned off.

Feb 18, 2000 (

Fixed bug in Local NAT feature.

Feb 4, 2000 (

Fixed restore when IPNR is set to "Configure only".

Jan 28, 2000 (1.4.8)

Gateway Window: Add support DNS forwarding and DNS Deferral.

Gateway Window: The Local NAT function is enabled for DNS Forwarding.

DHCP: use DNS addr 0 to mean the currently configured DNS server for the gateway.

DHCP: change default for DNS to the gateway addr, 0.

IP Filtering: For ICMP datagrams, use Source Ports for ICMP Type and Dest Ports for ICMP Code. Match values of zero (no wildcards).

Increase memory available to IPNR application by 200K. Minimum Heap Size 800K, Preferred Heap Size 1000K.

Update copyright notices to year 2000.

Numerous structural changes to improve robustness.

- Use a separate RestoreThread to apply saved settings. Hold off opening any TCP/IP endpoint for 15 seconds (FBA version).

- Wait for routes data to stabilize before configuring routes (pause 1 second, check if PPP is connecting and wait for it to finish, update routes data from IP module and repeat if report will not fit buffer).

- Log each time DNS deferral is enabled or disabled.

- Make PPP retry delay a configurable option (PPPRetryDelay=5). Default to 5 seconds.

- Extend data buffer cushion for reading routes from 512 to 2048 bytes.

- Allow launching a PPP connection from the "kPPPLowerLayerDownEvent" state.

- When PPP connects, wait to get a DNS address before setting up DNS forwarding.

- Log if no DNS address available when trying to set up DNS forwarding, or forwarding a local DNS query.

- Do not try to restore interfaces if program is quiting.

- Make DNS forwarding default to on when #addOnly and no previous setting.

- Make use of NSL (Network Services Location protocol) a configurable option as STR# 131 (UseNSL=0). Default to off at this time.

- Report actual OT error if unable to read current Interfaces or Routes data during restore. Continue with restore since new settings are "#addOnly".

Dec 17, 1999 (1.4.7)

General: Fix ASLM pool corruption conflict by reverting Proxy module to bump reference counts instead of using "writer buddy".

PPP: Fix bug in restoring PPP interface with correct IP address when the PPP link stream was not created by IPNR.

Dec 12, 1999 (1.4.6)

General: for OT2.5 or later, use the 'blip' (below IP) resource instead of 'crpt' so IPNetRouter can coexist with other software that uses the 'crpt' resource.

General: fix bug in opening log file so application will not freeze if another copy is already running.

Register "service:router://x.x.x.x" with NSL 1.0 or 1.1.

DHCP: skip writing out the status file and log entry if DHCP server was not running when the application quits.

DHCP Lease Data: use DNS addr "" to mean currently configured DNS of gateway.

TRCableModem: restore setting each time masquerading is enabled.

Nov 17, 1999 (1.4.5)

DHCP: skip static configs in dynamic address pool.

Port Mapping: allow specifying protocol "Any".

Port Mapping: add option to automatically map directed broadcasts ('STR#' 131 "MapBroadcast=1"), default to on.

Subnet Calc: convert decimal input to a dotted quad.

PPP: do not remove and rebuild link stream when finishing connection under OT2.5

Nov 4, 1999 (1.4.4)

Fix TR cable modem support: wait two seconds and try again if PPP returns the "Port Off Line" address ( after connecting.

Oct 25, 1999 (

PPP dial-on-demand: work around fragile IPCP in Mac OS 9.

Oct 21, 1999 (1.5c7)

DHCP Server: add option to disable DHCP ping checking (STR# resource 131 "DHCPPingCheck=1").

DHCP Server Lease Options pane: fix Apply to apply all unsaved changes.

Routes Window: allow specifying destination Prefix Length (network mask).

Routes Window: update status after each operation.

Routes Window: work around bug in Mac OS 9 to display "Direct" routes correctly.

General: check saved window size against window size limits before restoring.

PPP: log name of PPP configuration used when changing the primary interface.

Oct 15, 1999 (1.5c5, also released as 1.4.3)

DHCP Server: Fix endpoint recovery when certain errors occur (so server will not go deaf).

General: Detect if the user selects a previously unknown interface in the TCP/IP Control Panel and abort restoring the previous IPNR configuration.

Oct 12, 1999 (1.5c4)

Interfaces Window: Do not display the internal loopback interface "lo0". Sort interfaces by "PPP", "MacIP", module name, device number, and interface number to work with Mac OS 9 (OT 2.5/Mentat 3.5).

DHCP: Restart DHCP Server after any unexpected endpoint notification.

Application Startup: Change FBA to more closely follow the same startup sequence as the normal UI version.

Oct 5, 1999 (1.5c3)

Fixed bug in restoring IP masquerading in single Ethernet configurations when the gateways DHCP lease expires.

Oct 1, 1999 (1.4.2)

Released as 1.4.2

Sep 29, 1999 (1.5c2)

DHCP Server: Only match the ClientID if the ClientID field is specified at the server, otherwise try to match the 'chaddr' (client hardware MAC address). This allows the server administrator to override whether the ClientID field (which the user can change) will be used.

DHCP Server: Ignore leading null byte of ClientID inserted by many clients so names entered in the Static Config pane will match names entered in the TCP/IP control panel.

DHCP Server: Add log messages to indicate why a static config address could not be used.

DHCP Server: Try to assign a dynamic address to BOOTP clients if no static config is found.

DHCP Window: Allow editing in place with a single click.

Dial-On-Demand: Reset PPP controller when all six retries are exhausted to improve recovery.

General: Check TCP/IP Preferences File directly to avoid network setup when the Proxy module is already configured. This reduces launch time and works around network setup being out of sync with the TCP/IP Preferences File.

General: Ignore empty data for processing "#quit" directive.

Masquerading: Create a permanent mapping entry for directed broadcasts.

Masquerading: Update "TR Cable Modem" setting to find the secondary NAT address under Mac OS 9.

Sep 23, 1999 (1.5c1)

DHCP Server: Do not log DHCP messages received on an interface that is not enabled for DHCP.

DHCP Server: Increase suggested heap size by 100K to support more clients with the default memory partition..

DHCP Client: Detect new DHCP address if lease expires while IPNR is running.

NAT: As NAT table fills, try to age out open but inactive TCP connections more agressively. 24 hours for 1-127 entries, 12 hours for 128-255 entries, 4 hours for 256-500, 2 hours for >500 entries.

Sep 14, 1999 (1.4.1)

Port Mapping: fix save and restore for protocol "GRE"

Fix possible crash when closing ARP window.

DHCP Server: Ignore all requests that arrive on an interface that is not enabled for DHCP.

Sep 6, 1999 (1.4)

Release as version 1.4

Sep 5, 1999 (1.4c23)

Only close streams to Proxy module if necessary for MacIP since this re-initializes the module. Reload filter table if module is re-initialized.

Sep 2, 1999 (1.4c22.2)

Close control streams from CPortMapAction and CFilterAction when plumbing a new link stream to avoid OT errors when using MacIP.

Do not skip first entry of interfaces table when rebuilding configuration upon wakeup from sleep (this entry may not be the loopback device under OT2.5 (Sonata)).

DHCP: Do not skip first entry of interfaces table when matching a ServerID (this entry may not be the loopback device under OT2.5 (Sonata))

DHCP: Respond via Broadcast if previous response via Hardware Unicast was not successfully received.

Log File: Reset logical end-of-file upon open to avoid showing any previous text.

Aug 26, 1999 (1.4c22)

Close control streams to Proxy driver when plumbing a new link stream to avoid OT errors when using MacIP.

DHCP: Fixed handling of DISCOVER and REQUEST messages when 'ciaddr' is not zero as used by Mac OS when self configuring IP.

DHCP: Broadcast response if requested regardless of 'ciaddr'.

DHCP: show correct Unicast IP address in log when 'ciaddr' is not zero.

Fix to restore masquerading if provider closes with new recovery from 1.4c21.

Aug 19, 1999 (1.4c21)

Improved recovery when switching configurations in the TCP/IP control panel while IPNetRouter is running (this now works).

Converted some ALRTs to Log Messages to avoid crashing the FBA if certain exceptions occur.

Changed to not push OTModl$Proxy above MacIP to avoid possible conflict with Enable Local NAT.

Aug 15, 1999 (1.4c20)

Add "#PPPName=<configName>" command to specify which PPP configuration in the TCP/IP Preferences File IPNetRouter should use.

Fixed access beyond end of block when reading DHCP status.

Fixed improper deletion of OT Config when PPP fails to connect.

Added 'STR#' resource 131 with option settings (SleepTime=6, LogFileName=IPNR.log, ConfigFileName=Router Config, PPPName=IPNetRouter, IPNetRouterDials=1).

Restructured the logging function to write out status messages to a log file as well as displaying them in the Log Window. The default log file is named "IPNR.log" in the Preferences Folder.

Aug 2, 1999 (1.4c19)

DHCP: Several bug fixes: (1) Use time on existing lease if any for Discover/Request sequence or Request from client in INIT-REBOOT state; (2) Extend lease time if client is RENEWING or REBINDING even if client doesn't explicitly request more time; (3) Send NACK in response to verify (Request from client in INIT-REBOOT) if requested address is not valid for this network; (4) Allow static configs to override existing lease assignments; (5) Do not send address time option for DHCP inform; (6) Reclaim Client_ID lease bindings for IP addresses that are no longer in the dynamic pool so these clients will get a new valid lease; (7) Added delete button to DHCP Status pane to manually remove old lease bindings.

Filter Window: Changed "pass" filter action to ignore datagrams that don't match since it is easy to block such datagrams with other filters. This allows pass filters to open holes in a set of "block" filters without blocking datagrams that don't match any filter.

July 27, 1999 (1.4c18)

Fixed "stale handle reference" when reading data from IP module.

DHCP: fixed bug in block size when writing out DHCP Status.

DHCP: extend lease time if client is RENEWING or REBINDING even if client doesn't explicitly request more time.

Fixed dispose handle bug when opening Gateway Window.

July 18, 1999 (1.4c17.2)

Gateway Window: when dial on demand is unselected, open PPP before trying to connect so PPP can decide when to dial for the first time. Press the Option key while adding a PPP interface to temporarily override this behavior.

DHCP: fixed bug in log of DHCP message type when the type is unknown or unspecified.

July 10, 1999 (1.4c17)

Gateway Window: add checkbox to disable using OT Network Setup.

Allow Gateway options to be set or cleared using #addOnly.

Improve error handling when unable to open a PPP control endpoint.

Do not generate pseudo Default-Gateway for non PPP interface.

July 1, 1999 (1.4c16)

Interfaces Window: Allow masquerading to be enabled on a single interface when multiple interfaces are defined on the same port.

NAT: Do not translate other interfaces from the same network on a single port. This is to allow multiple public IP addresses on the gateway machine.

Filter Window: change protocol port popup to only set the destination port.

General: remove Default-Gateway safely when Provider Is Closing.

June 28, 1999 (1.4c15)

Gateway Window: Add checkbox to configure for "TR Cable Modem".

General: Do not allow Private Network that overlaps primary interface.

General: Suppress log message when IP address is not available from Remote Access.

June 20, 1999 (1.4c14)

General: changed KOTProviderWillClose processing to be more reliable when DHCP lease expires.

June 15, 1999 (1.4c13)

Proxy module: add support for QuickTime 4 Streaming (RTSP).

Proxy module: fix support for port ranges and additional public addresses.

Port Mapping: allow specifying port ranges as "A-B" where "A" and "B" are protocol port numbers.

General: improve how threads are terminated.

General: updated to CW-Pro Release 4.

General: use "Import Weak" for Appearance Lib.

Startup: open the settings document "Router Config" in the Preferences Folder if found (especially useful for FBA version).

May 21, 1999 (1.4c12)

Proxy module: fix bug that could lose port ranges for permanent mapping entries.

Proxy module: fix bug in performing NAT on LAN interfaces (Enable Local NAT).

Proxy module: designate "Proxy" and "Proxym" (the module and driver part of OTModl$Proxy) as install buddies instead of modifying reference counts to prevent unintended unloading.

DHCP Server: allow lease times to be specified in minutes (to facilitate testing).

DHCP Server: reduce grace period for expired leases from 5 to 2 minutes.

General: Shorten recovery time when Provider Closes unexpectedly (DHCP lease expires), wait one second and then open an endpoint to block until a new lease is established.

General: Use OT Configuration Database if available instead of modifying TCP/IP Preferences File directly to insert Proxy module. Perform this operation at application startup before opening any endpoints since it may rebuild the TCP/IP configuration (pressing Option during startup will force the stack to rebuild).

General: always terminate threads the same way to avoid a possible race condition when quiting the application while PPP is connected.

General: make version number and version strings more consistent.

General: Fix PowerPlant LInterruptSafeList to work with future MacOS version.

General: Update CIPNumberField.cp to work with Metrowerks IDE 3.3.

April 26, 1999 (1.4c9)

General: improve recovery when provider closes.

DHCP Server: fix renewal to recognize ciaddr.

DHCP Server: catch improperly configured address before offering to client.

DHCP Server: automatically resume serving after network error.

April 12, 1999 (1.4c8)

Fixed bug in Enable Local NAT for one way cable modems.

IP Filtering: allow filtering on both source and destination within a single rule.

IP Filtering: allow filtering on TCP ACK bit.

ARP: fixed bug in displaying Interface Names that contain comma.

DHCP Server: changed "Save" button to "Apply".

April 3, 1999 (1.4c7d)

DHCP Server: fixed bug that prevented server from recognizing multiple Ethernets.

DHCP Server: offer a different IP address if a requested address is not available.

DHCP Server: ping previously assigned addresses that have been released or expired.

DHCP Server: allow a released binding to be renewed.

DHCP Server: fixed bug in handling Client IDs.

DHCP Server: allow copy from DHCP Status Table.

Changed command shortcuts to use Cmd-R for ARP and Cmd-H for DHCP.

April 3, 1999 (1.4c7c)

DHCP Server: add workaround for bug in IP_RCVIFADDR to support dual Ethernets.

DHCP Server: refresh Network Interface popup when lease data settings change.

DHCP Server: write DHCP Server Status in 512 byte blocks.

DHCP Server: change Interface popup in Lease Data to only show existing entries.

DHCP Server: don't erase existing settings for #addOnly.

DHCP Server: fix editing dynamic config range.

DHCP Server: save and restore "Use Verbose Logging" checkbox.

DHCP Server: fix possible freeze when saving.

ARP Window: fix bug in initial data displayed.

Port Mapping: changed the meaning of "static" to specify a fixed apparent address. This allows mapping additional fixed IP addresses to hosts on your LAN. Manually configured NAT table entries that do not age are now called "permanent".

Port Mapping: protocol port zero is now interpreted to mean map all ports.

March 30, 1999 (1.4c7)

DHCP Server is now working (Yay!)

IP Filtering: do not dial on demand for transmitted FIN segments (to prevent improperly terminated connections from redialing).

March 2, 1999 (1.4c6)

Fixed bug introduced in 1.4c5 that caused Port Map entries to dispear when PPP reconnected.

IP Filtering: filtering is performed before Network Address Translation (NAT) for outgoing packets, and after NAT for incomming packets (so LAN clients can be distinguished).

Added DHCP Window. Server implementation is in progress ("enable" just logs DHCP requests).

February 20, 1999 (1.4c5)

Fixed bug where inbound port mappings could be lost the first time IPNR is launched.

Fixed bug where secondary NAT address (for one-way cable modems) could be lost the first time IPNR is launched.

Enhanced logging to show each command in full.

Changed the way IPNR reads from IP to improve robustness.

Allow interfaces and routes table to hold up to 200 entries.

Added ARP tool (still in progress). Allows IPNR to support proxy ARP.

February 17, 1999 (1.4c4)

Fixed recovery when DHCP lease expires while connected.

Holding the Option key while selecting "Interfaces" from the Window menu will remove and then restore all interfaces (as if the DHCP lease had expired).

Improved error checking when reading from IP module.

Changed support address in the About Box.

Fixed error message when unable to age the NAT table.

January 29, 1999 (1.4c3)

Interfaces Window: fixed to remember Default-Gateway when changing a PPP configuration.

January 24, 1999 (1.4c2)

Command Files: added parameter to set interface MTU (\mtu=xxx).

NAT: do not age TCP entries unless they have been closed from at least one end.

January 22, 1999 (1.4c1)

Fixed bug in Local NAT for TCP connections (OTModl$Proxy 1.6.3).

Enhanced recovery when DHCP lease expires while connected.

January 17, 1999 (1.3.2)

Masquerading: removed alert before modifying TCP/IP Preferences File from 1.3.1 below.

January 14, 1999 (1.3.1)

Interfaces Window: Fixed bug in remembering Unnumbered setting.

Gateway Window: Enable NAT on local interface is now a separate selection.

Port Mapping: fixed bug in restoring port ranges.

Masquerading: notify user when restart may be required for masquerading to work.

Installer: always update OTModl$Proxy and recommend restarting.

January 4, 1999 (1.3)

Released as version 1.3

January 2, 1999 (1.3c15)

Changed to remove and then restore interfaces when DHCP lease expires while connected.

Restore previous behavior of always using PPP negotiated IP address when available.

Reset 21-day trial period for all users.

December 30, 1998 (1.3c14)

Fix the way DHCP setting is saved.

Don't remove interfaces if provider closes to continue working when DHCP lease expires.

Preserve port mappings when using #addOnly command file.

Override PPP negotiated address if an IP address is explicitly specified.

Changed to enable NAT on local interfaces more reliably including single Ethernet configurations.

December 15, 1998 (1.3c13)

NAT: do not override static port map entries.

Port Mapping: allow a single table entry to map a range of ports.

Port Mapping: added support for Telco Return cable modems.

Make all command verbs case insensitive.

November 22, 1998 (1.3c12)

Fixed bug in restoring port map settings for PPP connection.

Ask to save changes at quit only if user has changed settings.

Add option to disconnect PPP at quit in Gateway window.

Added "#connect" and "#disconnect" command verbs.

November 5, 1998 (1.3c11)

Treat any unrecongized transport protocol as a security wrapper.

Fixed bug in restoring port map settings.

Ignore empty routes data.

October 23, 1998 (1.3c10)

Updated to work with Mac OS 8.5.

Fixed bug in setting up masquerading when using two interfaces on a single Ethernet.

October 21, 1998 (1.3c9)

Ensure PPP link stream is built at system task time, retry if first attempt fails.

Fixed DHCP processing.

Fixed crashes and instability problems that resulted from restructing below.

Allow IP masquerading on multiple interfaces (up to four).

Remember which windows were open when closing a document.

Include short version string in IPNR saved configuration file.

Interpret "-interface" in config file to remove the corresponding interface if any.

Allow TCP NAT entries to age out promptly when FIN packets arrive out of order.

IP Filtering: fix bug in matching a single port number.

Move all user modifiable data to separate Data Objects to simplify the design and prepare for making IPNetRouter a scriptable faceless background application.

Restore: Fixed bug when restoring "#addOnly" routes.

Restore: Add or remove filter entries to match config unless "#addOnly".

September 15, 1998 (1.3c7)

Improve error recovery during PPP connection attempt. If all retries fail, wait 10 minutes and start again.

Fixed bug that could result in duplicate interface names when more than 32 registerd ports.

Add logging to show User Port Name, Actual Port Name, and Interface Name.

When restoring settings, if no Interface Name is given, use the corresponding Interface Name based on the port name.

Rescan port registry before each restore settings operation.

August 31, 1998 (1.3c6)

Fix DHCP feature to not over write new routes.

Filter Window: restore filters in same order as saved.

Filter Window: avoid interaction with protocol port name popup in Port Map window.

August 14, 1998 (1.3c5)

Fix DHCP feature to not over write existing interface.

Filter Window: fix NetBIOS DNS querry filtering to reject invalid IP datagrams.

Filter Window: allow IP address to represent a dynamically assigned address.

Filter & Interface Window: allow user or actual port names.

Restore Interfaces: added "noGateway" parameter to allow restore of dynamic PPP interface without creating a Default-Gateway.

Improve error recovery when PPP connection attempt fails.

August 10, 1998 (1.3c4)

Improve error reporting when updating display tables.

Fixed bug in save and restore filter port number.

July 31, 1998 (1.3c3)

Fixed bug in save and restore filter settings.

July 30, 1998 (1.3c2)

Fixed problem in configuring Link Stack for MacIP.

IP Filtering: added protocol port name and ICMP type popup menus.

Port Mapping: added protocol port name popup menu.

July 29, 1998 (1.3c1)

Added support for "IP Filtering".

Perform NAT on datagrams from LAN when IP Forwarding is set to "Always".

July 15, 1998 (1.2.1)

Fixed bug when reconnecting an unnumbered interface with a duplicate IP address.

Changed NetBIOS filtering to delete NetBIOS DNS querries sent to the on demand interface.

July 6, 1998 (1.2)

Released as version 1.2

July 4, 1998 (1.2c6)

Fixed bug in remembering static translation entries.

Fixed bug in reclaiming existing port map entry for ICMP or GRE packets.

Changed "Show PPP Dialogs" to not enable connection reminders.

July 2, 1998 (1.2c5)

Fixed bug in starting masquerading when no document is open.

Fixed bug in restoring an unnumbered interface when "Show PPP dialogs" is selected.

Added support for GRE packets to allow PPTP through the gateway.

June 30, 1998 (1.2c4)

Minor changes to NAT module.

Restructured Save and Restore to be more reliable.

Command-period or Connection->Reset now aborts a connection attempt in progress.

June 26, 1998 (1.2c3)

Restore static translation entries every time masquerading is started.

Don't force modal connections.

June 25, 1998 (1.2c2)

Added support for "inbound port mapping".

Improved error reporting when restore fails.

Force modal connection during restore so connection completes before trying to restore routes.

June 16, 1998 (1.2c1)

Improved retry algorithm for PPP connections.

Tested and improved support for FCR LinkUPPP.

June 14, 1998 (1.1)

Fixed to save current Gateway settings when creating a new document.

Released as V1.1

June 11, 1998 (1.1c1)

Fixed to save and restore host routes.

Fixed to allow PPP to redial if line is busy.

Fixed to identify masquerading correctly when two interfaces use the same IP address.

Report source IP address of on demand traffic.

Allow dial on demand to be turned off.

June 10, 1998 (1.0.2)

Fixed to restore PPP interfaces with static IP address.

Fixed to retry building PPP link stack if connection attempt fails.

May 31, 1998 (1.0)

Released as V1.0 (Yay!)

[End of Release Notes]