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


IPNetRouterX Release Notes

Oct 18, 2011 - IPNetRouterX 1.6c2
• Fixes for loading NKE and 64-bit structure aligment.
• Lion compatible.

August 19, 2011 - IPNetRouterX 1.6c1
• Rebuild NKE as 32/64-bit Universal.

Oct 15, 2009 - IPNetRouterX 1.5c1
• Show Demo Startup when trial has expired.
• Update license text in Demo Startup.
• Address Scan: added tcp port 3389 RDP to list of well known protocol ports.
• Help menu: added "Feedback" menu item and fixed "ReadMe" to point to the correct file.
• About box: make Email address and web URL clickable.
• Fix splash window.
• Restore Help button on First Run athorization alert.
• Ask for authorization only once from non-admin account.

May 28, 2009 - IPNetRouterX 1.4
• Restructure project files to use Subversion based revision control.
• System Requirements are now 10.4 or later.
• Release as version 1.4
Note this version may require a paid upgrade.

Apr 30, 2009 - IPNetRouterX 1.4c4
• Fix Ethernet bridging to configure promiscous mode correctly.
• Don't load balance packets that have already been redirected using "RouteTo" filter action.
• Allow "Source Aware Active Open" by checking if a previous connection arrived from the same host.
• Application launch - skip asking for upgrade if there is a valid upgrade key in the pasteboard.
• Upgrade - ask user to authenticate to remove old key if necessary when upgrading, so upgrade will override any previous key even if not writable by the currently logged in user.
• System Requirements are now 10.4 or later.
Note this version may require a paid upgrade.

Mar 13, 2009 - IPNetRouterX 1.4c3
• Fix checking for idle time to handle equal comparisons correctly.
• DHCP Server: fix to recognize messages from Relay Agent that match a Lease Options record.
• DHCP Server: do not stop server when application quits since it might be running from another instance.
• Avoid repeated first run install alerts by not trying to install admin only tools when run from non-admin account.
• Fix possible bug in updating Security Log save to disk interval.
• Reorganized demo startup to be more consistent and support paid upgrades.
• System Requirements are now 10.4 or later.

Sep 19, 2008 - IPNetRouterX 1.4c2
• Fix possible timing conflict when replacing and authorizing helper tools.
• DHCP Server: fix to recognize DHCP Requests to a static config address whose lease binding has expired.
• DHCP Server: fix to accept DHCP Requests from a host that already has the requested IP address when the server has no previous record of that lease binding.

Aug 6, 2008 - IPNetRouterX 1.4c1
• First Run Install: pause after copy phase to allow time for file system to stabilize.
• First Run Install: changed to work the same for non-admin accounts.
• ICMP: self repair ICMP server connection if it dies unexpectedly.
• Fixed obscure memory leaks found using Apple's Clang tool.
• Fixed possible kernel panic when enable transparent proxy to a local server on the gateway.
• DHCP Server: convert log messages to use \r\n instead of \r as line separator for better SMTP compatibility.

May 30, 2008 - IPNetRouterX 1.3.6
• Source Aware Routing: fixed bug in rewriting destination MAC address.
• Traffic Discovery: turn off TD explicitly if no previous setting was saved.
• Preferences: added "Save to log interval" of 10 seconds.
• Sentry Log: added timer to force periodic update at log interval.
• Create symbolic link to daily security log named "security log today.txt"
• DHCP static config - include ClientID field in import/export.

May 7, 2008 - IPNetRouterX 1.3.5
• Add "invalid" table under Trigger tab to remember source IP address of packets with short transport headers.
• Rename "" to "IPNetRouterX_startup" since it no longer contains an application, but rather a shell script.
• Fixed problems with launching at startup or login time before interfaces have stabilized.
• Fixed bug in checking code signature of admin only tools when run from non admin account.
• If code signature is not verified and user chooses quit, re-install all tools on next launch to attempt repair.
• Cleanup system.log messages when run from non admin account.
• Lookup: add support for IPv6 and display any IPv6 addresses returned.
• Lookup: added "Show DNS" button.
• Tool history: keep 10 entries in addition to any suggested local configuration values.

April 3, 2008 - IPNetRouterX 1.3.4
• Skip re-downloading interface parameters in response to KEV_DL_LINK_ON.
• Fixed bug in restoring triggers from daemon when 2nd instance is launched from Finder.
• Improved configuring HelperTools when newer versions are present.

Mar 26th, 2008 - IPNetRouterX 1.3.3
• Improve test for authorization succeeded.
• Filter table: update rule count consistently when rules are added or deleted.
• Skip downloading interfaces that report not available from the SCF.
• Consolidate interface table download and attach NKE.
• Update nib file to change "Break" to "Exit group".

Mar 18th, 2008 - IPNetRouterX 1.3.2
• Fixed panic in Mac OS X 10.3.9 version of NKE.
• Demo Startup Dialog: center on screen.
• Register: remember window position.
• Check For Update: remember window position.
• Allow launch without displaying document window.
• Load empty documents with currently active settings before saving.
• Rename "Break" filter action to "Exit group".

Mar 13th, 2008 - IPNetRouterX 1.3.1
• Attach and download any modified interfaces during Apply.
• Pause and retry pinging a RouteTo target to resolve the MAC address if needed.
• Filter Table: Always allow editing parameter column.

Mar 5th, 2008 - IPNetRouterX 1.3
• DHCP Server: do not scroll status table when updating.
• Lookup: update "Flush Cache" button to use "dscacheutil -flushcache" on Leopard instead of lookupd.
• Show number of filter rules and warn if limit of 600 is exceeded.
• Update license to cover "Software Upgrades" and "Educational Users" per new shopping cart on website.
• Release as version 1.3

Jan 11, 2008 - IPNetRouterX 1.3c11
• Relocate helper tools to "/Library/Application Support/IPNetRouterX/HelperTools".
• Move other modifiable resources out of Application bundle.
• Changed launch as startup item mechanism to use a separate startup item package.
• Sign each helper tool using Leopard Code Signing.
• Sign IPNetRouterX app.
• Remove "Unauthorize Tools..." from application menu since app can be moved and copied freely.
• Use standard help button from latest Interface Builder.
• Help: search only the localized help book for the page requested.
• Build with Xcode 3.0 under Leopard.
• Catch NSInternalConsistencyError when threads terminate normally.
• Check for interrupted system call on read().
• Streamline attaching NKE to an interface.
• Allow address ranges (a-b or x.x.x.x/prefixlen) in filter table.
• DHCP Server: don't hand out previously bound lease if no longer in static or dynamic pool.

Oct 16, 2007 - IPNetRouterX 1.3c10
• Fixed symbol collision in NKE to be compatible with most recent Leopard seed.
• Email notification: use UNIX sendmail in place of Message.framework to be daemon safe.
• Fixed "From:" header in Email notifications from trigger events.
• Show active firewall settings when launched if firewall is already running.
• Alternate Route: fix restoring duplicate entries.
• Growl Support: don't initialize Growl when running as a Startup Item.
• DHCP Server: fix getting host DNS info.
• Trigger Table: fix possible overflow bug when importing large trigger list.

Sep 10, 2007 - IPNetRouterX 1.3c9
• Converted DHCP Server to run as a separate process.
• Add trigger entry for "Short TCP Header" packets.
• Maintain trigger duration more consistently.
• Move saved trigger table to /Library/Preferences/IPNetRouterX/triggerTable.
• Remove DHCP WatchDog Timer.

Jul 2, 2007 - IPNetRouterX 1.3c8
• DHCP Server: begin refactoring to run as a separate process (in progress).
• DHCP Server: fixed byte order bug for IP address options on Intel.
• Trigger Import: allow both Mac "\r" and UNIX "\n" line endings.
• Trigger import: ignore comment lines beginning with "#".
• Open help files in Apple Help Viewer by default, or the users default web browser if the Option key is down when help is selected.

Jun 7, 2007 - IPNetRouterX 1.3c7
• Display inactive BSD interfaces such as "tun" or "tap" that do not appear in SCF.
• Don't check address family (AF_INET) when reading mask from routing socket since tap driver doesn't set this.
• Allow Ethernet bridging to "tap" devices.
• DHCP Server Options Table: added column for Option Type to support both Text and IP Addresses (comma separated list).
• NKE: Fixed bug in checking if pullup needed.

May 16, 2007 - IPNetRouterX 1.3c6
• Filters: added "Block IPv6" option. Do not otherwise log IPv6 traffic.
• Bypass outbound NAT if "unregistered_only" and destination is on the same IP subnet as external NAT interface (this allows direct connections between locally attached hosts on either side of the gateway).
• Fix possible freeze on startup when application is launched from an account without admin privileges.
• Fix possible crash when flipping between current and previous saved settings.

May 3, 2007 - IPNetRouterX 1.3c5
• Fix ipfw log format to be compatible with Open Door's "Who's There Firewall Advisor".
• Save logs to disk at regular intervals for continuous update if selected in preferences.
• Changed network stack order for bridging outbound packets to improve DMZ support.
• Fixed possible authorization conflict when launching as a login item.
• Add "unregistered_only" option similar to UNIX natd.

April 18, 2007 - IPNetRouterX 1.3c4
• DHCP Server - re-enable bpftransmit for sending non-subnet broadcasts.
• DHCP Server - fixed harmless warning message "htonDHCPOption unrecognized DHCP Option 15".
• DHCP Server - Don't stuff ARP cache when useBPF enabled.
• DHCP Server - fixed code from UNIX arp tool to not leak a routing socket.
• DNS Server - improved method for finding an existing instance of named.
• Fix bug introduced in terminating outstanding select on a socket.
• Email notification: include sender mail address and name explicitly in message headers.
• Added support for Growl notifications.

Mar 29, 2007 - IPNetRouterX 1.3c3
• DHCP Server: added "import" and "export" buttons for Static Config table.
• DHCP Server: ignore empty hardware addresses in Static Config table.
• Trigger Import: change to use window sheet.
• Fixed "Route to" filter action to rewrite source MAC address to work with external bridges.
• Fixed possible crash during UDP Listener abort.
• Fixed leaking socket pair (stream pipe) during open raw socket.
• Fixed Drop Connection response byte order bug on Intel.
• Traffic Discovery: release innactive data.

Mar 14, 2007 - IPNetRouterX 1.3c2
• Fix NKE incompatibility with 10.3.9 .
• Fixed possible exception if PPP interface with no user name encountered.
• Fixed bug in adding alternate route entries.
• Fixed bug in converting zero length Ethernet addresses.
• Skip NAT for broadcast and multicast packets received on an internal interface in case Exposed Host is set to none.
• Traffic Discovery: restructure for possible threading.

Jan 19, 2007 - IPNetRouterX 1.3c1
• Add Alternate Route tool with support for Automatic Failover, Load Balance, and Source Aware Routing.
• DHCP Server: fix bug in old BSD arp code that could cause server to hang.
• Preferences: add option to disable Command-Q as a shortcut for Quit.
• NAT View: fixed bug in remaining count when deleting.
• Diagnostic: added diagnostic help text.

Dec 27, 2006 - IPNetRouterX 1.2.3
• DHCP Server: split DHCP status table into 16 lease clusters to scale smootly to thousands of DHCP clients.
• DHCP Server: fix possible CPU hogging bug when stopping DHCP Server.

Dec 21, 2006 - IPNetRouterX 1.2.2
• Restore NKE attach state when PPPoE interface reappears in SCF.
• DNS Server: allow configurations with no external interfaces.
• DNS Server: update serial numbers in zone files automatically.
• DNS Server: added "show log" button.

Dec 14, 2006 - IPNetRouterX 1.2.1
• Fixed to work on Leopard Preview (Mac OS X 10.5).
• Fix byte order bug in Filter Source or Dest Net.
• Trigger Table: fix out of memory problem when importing large data sets (tag-import-delete; keep free list; detect memory exhaustion and try again later).
• Add "Diagnostic" window under help menu to report NKE memory use.
• Interfaces: fix problem restoring parameter="last time".
• Terminate threads explicity to avoid possible APE conflict.
• DHCP Server: send using regular socket instead of bpftransmit to support virtual machines.

Oct 27, 2006 - IPNetRouterX 1.2
• Release as version 1.2 (Universal Binary).
• Filters and Port Mapping: change to use NSComboBoxCells for corresponding table columns.
• Numerous documentation updates including: Group, Break, and Route to filter actions, matching internal and external interfaces.
• Update tool tips.

Oct 23, 2006 - IPNetRouterX 1.2c7
• Fix bug in configuring named for the first time.
• Update named is running status every 10 seconds while DNS Server window is open.
• Update named when System Configuration changes.
• Allow Local NAT to non-directly attached IP subnets.
• Filters: allow matching "internal" or "external" interface.
• Filters: separate parameter from stats.
• Filters: update value combo box when cell is about to be displayed.
• Interfaces: add automatic failover button.
• DHCP Server: add Save button that completes any editing in progress before saving.

Oct 5, 2006 - IPNetRouterX 1.2c6
• Fix Ethernet Bridging on Intel.
• Fix bug in Ethernet bridging when copying packets with external clusters.
• Add DNS Server tool for configuring Local Caching DNS.

Sep 7, 2006 - IPNetRouterX 1.2b5 (beta)
• Fix panic on 10.3.9 caused by unlocking network funnel during packet injection.
• Fix byte swapping bug in handling fragment length.
• Fix DHCP Server to work on Intel.
• Fix authorization conflict that affected some Intel systems.
• Fix possible dropped connectons from premature time out.
• Fix save and restore window position of Expert View.
• Fix Help menu.

Aug 31, 2006 - IPNetRouterX 1.2b4 (beta)
• Build Application and NKE as Universal Binary.
• Numerous updates to support Intel architecture.
• Consilidate packet injection and byte swapping code.
• TCP Flow: add support for tcpflow on Intel and repackage as part of the application bundle.
• Trigger table: add import/export dialog to save trigger entries as Tab Seprated Values (plain text).
• Trigger table: remove limit on trigger table size for entries imported through user interface.
• Allow address ranges in Trigger Table.
• Handle comments in "Triggered by" field consistently.
• Fixed bug in logging IP addresses.
• Support outbound NAT on "RouteTo" filter action.
• DHCP Server: fix bug in editing lease time and lease granted messages.
• NAT: disable hair pin feature.
• Remove 2nd copy of log file in ".plist" format, use Traffic Discovery instead.
• Begin implementing remote configuration using TCP/IP client server model (Remote menu).
• Begin adding scriptability (sdef).

May 11, 2006 - IPNetRouterX 1.2c3
• Traffic Discovery: fix possible overflow when calculating percent.
• Traffic Discovery: fix log rollover at end of interval.
• Address Scan: resolve synchronization issue.
• DHCP Server: resolve possible synchronization issue.
• NKE: fix possible panic if mbuf_finalize_outbound() pulls up to a new mbuf.

May 3, 2006 - IPNetRouterX 1.2c2
• Traffic Discovery: Allow sort by data column with interval one second.
• Traffic Discovery: View by Service - include protocol in service identifier.
• Traffic Discovery: View by Netflow - include protocol in netflow identifier.
• Traffic Discovery: track ICMP services by type and code.
• Traffic Discovery: update network interface with each minute sample to accomodate changing interfaces.
• Traffic Discovery: write out logs when Preferences update logs button is pressed.
• NAT: Support hair pin routing to replace Local NAT. If destination IP address matches the NAT address and packet is outbound, do inbound NAT and reflect packet back up stream.
• Fix to recognize alternate kernel event notifications KEV_DL_LINK_ON and KEV_DL_LINK_OFF.
• Built against Mac OS X 10.4 Universal headers in preparation for Universal Binary.

Apr 25, 2006 - IPNetRouterX 1.2c1
• Added Traffic Discovery tool (replacing previous bandwidth analyzer). See online help for details
• Incorporate app code changes for Intel transition.
• Fixed bug in specifying alternate gateway for automatic failover.

Dec 31, 2005 - IPNetRouterX 1.1.2
• Port Mapping: add support for local Transparent Proxying to the gateway itself.

Nov 29, 2005 - IPNetRouterX 1.1.1
• Fix NAT to support systems with dual Ethernet built-in.
• Fix to save new documents to default location.

Nov 15, 2005 - IPNetRouterX 1.1
• Releae as version 1.1
• Fix possible window server conflict when launched as a startup item.

Nov 10, 2005 - IPNetRouterX 1.1c11
• Port Mapping: Add support for Transparent Proxies (apparent address wild cards).
• Fix bug in matching data content.
• Fix possible panic if connection table overflows.
• Restructure Attach and Detach NKE to improve logging and consistency.
• Startup Item: correct startup item permissions for 10.4.2 .
• Improve locking model under Panther.
• Update IPNetRouterX Help to include Transparent Proxies, Automatic Failover, Source Aware Routing, Bandwidth Allocation, and other recent changes.

Sep 28, 2005 - IPNetRouterX 1.1c10
• User Interface: refactor document structure to support two different views: "Basic Setup" and "Expert View".
• User Interface: re-order tabs as Interfaces, Port Mapping, Filters, Triggers.
• Enable the Apply button when there are changed settings to apply.
• Port Mapping: fix bug in mapping all ports (static NAT).
• Port Mapping: don't allow duplicate Apparent or Actual endpoints.
• Port Mapping: add column to selectively disable port map entries.
• Port Mapping: preserve Dynamic info to NKE.
• Preferences: save preference settings to a common location regardless of user login.
• DHCP Server: use router address when no DNS information found.
• DHCP Server: use BPF tap to send broadcast and hardware unicast packets.
• Fix checksum conflict in Single Ethernet configurations by calling mbuf_inbound_modified on outbound packets to work around bug in mbuf_outbound_finalize() KPI.
• Fix "Exclude Net" to apply to NAT entries only.

Sep 1, 2005 - IPNetRouterX 1.1c9x
• Add "Port Map Logging" mode to help debug port map settings.
• Save and restore source aware routing state consistently.
• Address Scan: work around bug in NSScanner.

Aug 26, 2005 - IPNetRouterX 1.1c9
• Add filter action "Route To" with parameter of next hop IP address for conditional routing.
• Make "Source Aware Routing" user setable.
• Save and re-use complete frame headers in connection table entry.
• Automatic failover: use split route as alternate default gateway.
• Fixed possible panic in NAT process if memory allocation fails.
• Fixed bug in converting SourceNet and DestNet IP address ranges.
• Route/Arp fixed bug in restoring "save" field of table entries.
• Fix to always disable alerts when launched as startup item.
• Filters: fix order when pasting a list of rules as children.
• Filters: add "authorize" rule to default firewall configuration.
• Filters: add sample "rate limiting" rules for PPP to default firewall configuration.

July 29, 2005 - IPNetRouterX 1.1c8
• Fixed possible panic if memory allocation fails.

July 26, 2005 - IPNetRouterX 1.1c7
• Redesigned TCP Rate limiting for smooth control over a broad range. Use "filter action" RateLimitIn or RateLimitOut with a single parameter specifying the rate in bits per second. Can use K or M as in 100K or 1.5M bps.
• Interfaces: added Dead Gateway detection with automatic failover to alternate gateway.
• Add "Failover Locations" window to specify locations for automatic failover.
• Track connections outside of IP filtering.
• Enable "Source Aware Routing".

June 1, 2005 - IPNetRouterX 1.1c6
• NKE: stream line rate limiting code when not needed.
• Trigger Table: fix bug in displaying entries of different types with the same address.
• Trigger Table: fix log message when deleting entries.
• DHCP Server: support non Ethernet hardware addresses used with FireWire.
• DHCP Server: remember if DHCP Log was open between launches.
• DHCP Log: cosmetic improvements for Verbose logging.

May 25, 2005 - IPNetRouterX 1.1c5
• Add "Check for Updates..." item under application menu.
• Add support for BSD interfaces not specified in the System Configuration Framework.
• Fix to restore settings when launched as a Tiger login item.

May 9, 2005 - IPNetRouterX 1.1c4
• Avoid recursive lock when starting TCP RST delay timer.
• Release lock before injecting packets.
• Fix possible panic if sequence list overflows.

May 3, 2005 - IPNetRouterX 1.1c3
• Fix NKE to ignore unknown ioctls correctly on Tiger.
• Fix bug in do_pullup for Tiger.

May 2, 2005 - IPNetRouterX 1.1c2
• Fix possible kernel panic for pullup of non-ip datagram.
• Fix build configuration that prevented launching on Panther.

April 28, 2005 - IPNetRouterX 1.1c1
• Rewrite NKE to support Mac OS X 10.4 (Tiger).
• Redesign Rate Limiting feature to withhold and insert Acks. Separate actions for "rate limit in" and "rate limit out".
• Fixed bug in unloading and reloading NKE consistently.
• AirPort Configuration: added "Save and Restore" checkbox to select whether to restore these AirPort settings when the application is launched or a document opened.
• Routes/ARP: added Restore checkbox to the left of each table row to select whether to restore this route when the application is launched or a document opened.

March 18, 2005 - IPNetRouterX 1.0.5
• Filter Table: fixed bug in matching long interface names.
• Filter Table: fixed bug uploading TCP flags with both set and reset values.
• Sentry Log: converted download and other text messages to ".plist" format.

March 7, 2005 - IPNetRouterX 1.0.4
• DHCP Server: tuned ping timeout versus event loop interval to make offer time more consistent.
• DHCP Server: eliminate format conversions when searching DHCP tables.
• DHCP Server: fixed bug that ignored some display updates.
• DHCP Server: fixed bug in interpreting Ethernet Addresses sent as clientID.
• DHCP Server: fixed "Ignore BootP" setting.
• DHCP Server: fixed "Dynamic BootP" setting.
• DHCP Server: scroll to make new row visible after pressing "+".
• DHCP Server: don't jump to next row when Enter is pressed during field editing, don't wrap around to first row for Return.

February 10 2005 - IPNetRouterX 1.0.3
• Local NAT: fixed bug in translating for Static NAT entries representing other public IPs.

February 4 2005 - IPNetRouterX 1.0.2
• Port Mapping (Static NAT): fixed bug in translating port "Any".
• DHCP Server, Static Config: fixed bug in matching Hardware Addresses.
• Include target information in tool window title.

January 18, 2005 - IPNetRouterX 1.0.1
• Preferences: reorganize and include Email settings needed by message framework.
• Ethernet Bridging: reduce MTU of bridged internal interface to match external interface if needed.
• Release as v1.0.1

January 10, 2005 - IPNetRouterX 1.1c1
• NAT View: added NAT View tool to show NAT table in action.
• NAT: age out fully closed connections sooner.
• Bridging: fix possible hardware checksum conflict.
• Trigger table: allow editing Triggered By column.
• Trigger table: preserve last time information between application launches.
• Trigger table: remember trigger table independently from saved settings in a separate file when program quits (/Library/Application Support/Sustainable Softworks/triggerTable).

December 29, 2004 - IPNetRouterX 1.0
• Catch SIGQUIT to terminate normally.
• Release as v1.0

December 21, 2004 - IPNetRouterX 1.0c16x
• NKE: fix possible crash when inserting TCP fragment entry.
• NKE: fix possible leak if malloc fails during AVL insert.

December 18, 2004 - IPNetRouterX 1.0c16
• NKE: fix possible crash if malloc fails during trigger event.
• Refactor thread to controller updates for better performance and robustness.
• Optimize check for abort in receive threads for better performance.
• DHCP: cache date strings to optimize display of NSDate values in tables.
• DHCP: optimize status table as an array with dictionary extensions.
• DHCP: optimize ipForString().

December 9, 2004 - IPNetRouterX 1.0c15
• Fix bug in stoping and restarting DHCP Server.
• Fix possible exception if DHCP tables are modified while server is running.
• Remove delegate retain loops.
• Remember log drawer state.

December 2, 2004 - IPNetRouterX 1.0c14
• Refactor thread controller classes to isolate exceptions and simplify abort and re-initialize.
• Fix bug to save log text under corresponding date.
• Write a single "sentry.log" file for "ipfw" log format.
• Use ASCII string encoding for "ipfw" log format.
• Don't log URL Action messages.
• Configure NSConnections with explicit time out and queueing options.
• DHCP Server: fixed bug in handling OptionParameterList.
• Fixed bug in filter URL Action.
• Fixed bug in "Add Trigger" from Alert dialog.
• NKE: add OSBundleProductName and OSBundleSupportURL KEXT properties for Mac OS X Tiger.

November 18, 2004 - IPNetRouterX 1.0c13
• DHCP Server: fix Save, Save As, and Revert menu actions.
• DHCP Server: catch Distributed Objects exceptions in server requests.
• DHCP Server: fixed bug in saving DHCP on/off state.
• DHCP Server: write out status table when application terminates.
• DHCP Server: use Max Lease Time consistently if less than Default Lease Time.
• Sentry Document: fix is document edited state.
• Trigger table: allow editing, save/restore, and apply/show to facilitate blocking a list of individual IPs.
• Alert: add trigger button to block this IP address.
• Change NKE control/server to use direct connection.

November 12, 2004 - IPNetRouterX 1.0c12
• DHCP Server: catch Distributed Objects exceptions.
• DHCP Server: fixed bug in Watchdog restarting DHCP Server thread.
• Extend public beta expiration.

November 3, 2004 - IPNetRouterX 1.0c11
• DHCP Server: handle interrupted system calls explicitly.
• DHCP Server: force to get a new socket when server is restarted.
• DHCP Server: fix bug in maintaining server on state and restarting server.
• DHCP Server: fixed bug trying to restore settings before application was authorized.
• System Configuration: fix bug in finding active PPP information.

October 26, 2004 - IPNetRouterX 1.0c10
• Extend public beta expiration.
• DHCP state tables - update order of table entries in response to manual edits.
• DHCP status table delete entry - write out changes to disk when server is not running.
• DHCP Log - add time stamps for messages received and server events.
• DHCP Server: explicitly ignore signals in DHCP server threads.
• DHCP Server: fix possible deadlock between Distributed Objects messages.
• SystemConfiguration - open a separate SCDynamicStoreRef for each request.
• SystemConfiguration - combine static PPP services since actual service is defined dynamically.
• Filter Action URL: borrow code from IPNetMonitorX Server Scan tool, don't open local tool windows.
• Preferences: fixed bug in Email log selections.
• Fix registration input, read key, and write key to handle international characters consistently.
• Add History menu for recent targets in built-in tools.

October 1, 2004 - IPNetRouterX 1.0c9
• Extend public beta expiration.
• Fixed bug in Test button not adjusting with window size.
• DHCP Server: fixed bug in displaying status if no table was previously saved.
• DHCP Server: use locally configured name server if not otherwise specified.
• Internet Sharing Help: describe configuring LAN clients.

September 8, 2004 - IPNetRouterX 1.0c8
• Extend public beta expiration.
• DHCP Server: avoid possible deadlock from calling System Configuration Framework from DHCP server thread.
• DHCP Server: fix "+" button to find unused entry slot.
• DHCP Server: fix to restore previously saved state if server was turned off.
• DHCP Server: optimize performance by reworking table classes and screen updates.
• Move "Test" button to reside under Filters tab.
• FAQ: update instructions for launching as startup item.
• Turn off drag-and-drop for now.

August 20, 2004 - IPNetRouterX 1.0c7
• Extend public beta expiration.
• DHCP Server: fixed bug in responding if no name servers found.
• DHCP Server: look at both primary and DHCP interface for possible name servers.
• DHCP Server: fixed bug in calculating end of dynamic address range.
• DHCP Server: display times without seconds.

July 30, 2004 - IPNetRouterX 1.0c6
• Extend public beta expiration.
• Fixed bug in restoring Single Ethernet configurations from saved settings.
• Show Active: report number of entries received and log any interface entries to verify configuration.
• DHCP Server: catch any exceptions that could stop recieve thread.
• DHCP Server: fixed bug in showing DHCP Server on/off state consistently.
• DHCP Server: look for matching network interface for given BSD Name.
• DHCP Server: log any DHCP packets received if verbose logging is enabled.
• Connection Logging: write out log every 10 minutes
• Connection Logging: update log when a connection entries time out.
• Allow up to 500 filter rules.
• Disable source aware routing to integrate with filter rules.

July 14, 2004 - IPNetRouterX 1.0c5
• Extend public beta expiration.
• Add support for Ethernet bridging.
• Routes: fixed bug in updating routes.
• Added back separate window for Sentry Log.
• Address Scan: update select service popup to match target field when a scan is invoked.
• Address Scan: changed to report "Sent/Received/Lost" more consistently for TCP and UDP scans.
• Help Button and Disclosure Triangle: use 10.2.8 compatible controls.
• Registration: look for registration data in clipboard so there's no need to paste.
• Finish installation when first run is from root account.
• Try to unload NKE on first run to make sure latest version will be used.
• Improve finding PPP interfaces.

June 18, 2004 - IPNetRouterX 1.0c4
• Extend public beta expiration.
• Fix possible kernel panic if exposed host set to "stealth".
• Add Routes/ARP tool allowing comments.
• Use default settings at /Library/Preferences/com.sustworks.IPNetRouterX.ipnr when no document is specified.
• Remove "Configure As Startup Item" since it is no longer needed (just place the application bundle in the Startup Items folder).
• Rename "Current Filters" to "Show Active".
• Rename "AirPort" to "AirPort Configuration", fix bug in updating port type, improved error reporting.
• DHCP Server: allow comments in Static Config, Dynamic Config, Lease Options, and Server Options table.
• DHCP Server: change "new" and "delete" buttons to small square style.

June 2, 2004 - IPNetRouterX 1.0c3
• Extend public beta expiration.
• NKE: fix error recovery if allocating a new NAT entry fails.
• NKE: fix error in AVL tree code when succesor does not exist.
• Port Mapping: show "0 (all ports)" in port popup.
• Port Mapping: show "0 (any)" and "47 (GRE)" in protocol popup.
• Port Mapping: preserve "dynamic" and "comment" fields after Show Current.
• Help: updated all help text, show context sensitive help for main Document window.
• DHCP Server: cache status file upates, skip unnecessary updates when an interface becomes "not available".

May 21, 2004 - IPNetRouterX 1.0c2
• Extend public beta expiration.
• NKE: fix error recovery in AVL tree operations if malloc fails.
• Track PPP interface changes in System Configuration Framework.
• Port Mapping: update port mappings when PPP address changes.
• Preferences: select which logs to Email.
• Document Window: add log drawer in place of log window.
• DHCP Server: add watchdog timer to restart server if it goes silent.
• DHCP Server: use first internal or available interface as default.
• DHCP Server: cache current Name Server to hand out to clients as needed.
• DHCP Server: add log drawer in place of log window.
• DHCP Server: allow saving directly from DHCP Server window.
• DHCP Server: support Revert to previously saved.
• DHCP Server: Email DHCP log using a separate thread so it doesn't block server.

Apr 22, 2004 - IPNetRouterX 1.0c1
• Extend public beta expiration.
• DHCP Server: improved error checking and recovery.
• Terminate any editing in progress when applying settings.
• Fixed bug in updating trigger expiration.
• Update system IP forwarding whenever settings are applied.

Apr 6, 2004 - IPNetRouterX 1.0b7
• Extend public beta expiration.
• Fixed conflict with hardware checksuming in Single Ethernet configuration.
• Reworked matching interfaceIDs to SystemConfiguration services.
• DHCP Server: fixed bug in tracking DHCP state between window and server.
• DHCP Server: fixed bug in calculating ending address of dynamic address pool.

Mar 26, 2004 - IPNetRouterX 1.0b6
• Fixed save and restore ipForwarding.
• Fix local NAT feature.
• Improved NAT lookup performance when ports are busy.

Mar 24, 2004 - IPNetRouterX 1.0b5
• Extend public beta expiration.
• Add "Interface ID" column under interfaces tab. Fix bug in matching system configuration changes to interface table. Allow interface name to be edited.
• Add "Configure As Startup Item" under application menu to save startupItemSettings.
• Configure startup item shell script and property list.
• Fixed conflict with hardware checksuming in Single Ethernet configuration.
• Fixed possible crash when configuring port mappings for a NAT interface that is "not available".
• Modified "Show Current" to load and display status from NKE previously configured by startup item.
• Include MacPAD.url as application resource.

Mar 12, 2004 - IPNetRouterX 1.0b4
- Extend public beta expiration.
- Fixed "Single Ethernet" configuration.
- Remember selected tabView between application launches.
- Preferences: added checkbox to disable on-screen alerts.
- Restructure document state to support launching application as a Mac OS X startup item.
- Save and restore trigger table as part of settings document.
- Show "status info" messages in Sentry Log window.

Feb 27, 2004 - IPNetRouterX 1.0b3
- Extend public beta expiration.
- Fixed Local NAT feature.
- Fixed possible crash when closing DHCP Server window.
- Fixed bug in updating interfaces when the system configuration changes.
- Fixed bug that caused show current to not recognize duplicate entries.
- Save logs in /Library/Logs/IPNetRouterX/
- Write the Sentry log in ".plist" format as well as any user selected ".txt" form.

Jan 21, 2004 - IPNetRouterX 1.0b2
- Extend public beta expiration.
- Support Mac OS X 10.2.8 or later.
- Default settings: set filters and external on first interface only.
- Select IP forwarding any time NAT is enabled.
- Update interface table before settings are applied.
- DHCP Server: fixed bug in tracking expired lease bindings.
- DHCP Server: fixed bug in deleting status entries.
- DHCP Server: allow editing status entries.
- NAT: fixed possible configuration error when OS X reports a different dltag for the same network interface.
- Updated help files.

Dec 31, 2003 - IPNetRouterX 1.0b1
- First public beta of IPNetRouterX. This version adds IP masquerading (Network
Address and Port Translation with inbound port mapping) a DHCP Server, and
AirPort configuration to the IPNetSentryX firewall foundation. As such, it provides
in kernel single address space AVL search trees for best in class NAT performance
with the maturity of a next generation design based on IPNetRouter classic.

Future plans include tools for configuring proxy ARP and routes,
Ethernet bridging, and a faceless background version.

Known Limitations:

FTP NAT translation is not yet implemented, please set your FTP clients to use Passive Mode (PASV).

Please send questions, comments, suggestions or bug reports to:

[End of Release Notes]