+---------------------------------------------------+
| Build 1052 8. May, 2009 |
+---------------------------------------------------+
| |
| NAT32 IP Router for Microsoft Windows |
| |
| Home: http://www.nat32.com |
| Help: http://www.nat32.com/nat32e/htm/help.htm |
| Email: http://www.nat32.com/message.htm |
| |
| (C) 2009 NAT Software, Australia. |
| |
| 189,454 lines of C code |
+---------------------------------------------------+
This build runs in Winsock Mode unless the NDIS3PKT
Driver has been installed and started via a reboot.
In Winsock mode, NAT32 does no IP Routing but still
has approx. 250 powerful commands that you are free
to use and enjoy at no charge.
No installation or setup is needed in this mode.
Simply start NAT32 with the command: nat32.exe 0
Version 1.8 WINDOWS 95/98/NT/2000/XP/2003
------------------------------------------
NAT32 is a versatile Software Router which allows all computers on one or
more private LANs to share one or more Internet connections. It can also be
used to manage traffic passing through external DSL and Cable Modem routers.
With appropriate configuration, NAT32 will bind to the following devices:
Windows WAN devices: Modems, ISDN, ADSL, PPPoE, Microsoft VPN, OpenVPN
Windows LAN devices: Ethernet, Token Ring (but not emulated TR)
Windows TAP-WIN32: full support for OpenVPN and CoLinux
Hybrid Devices: One-way cable modems, Satellite devices (DirecPC)
NAT32 fully supports the Windows DUN/RAS Server, allowing dial-in access
to machines which connect to the Internet via some other Interface.
Administrators can remotely configure and interrogate NAT32 using a WEB
Browser. An access control list allows only the local machine to do this
per default.
NAT32 is an IP Router, NOT a Proxy Server. Time-consuming reconfiguration
of network applications is not required. All applications on your private
LAN have address-mapped UDP, TCP and ICMP access to the Internet.
NAT32 Version 1.8 supports "connection aggregation", a technique used for
distributing Internet traffic over two or more modems (or other types of
connections). The technique should not be confused with "modem bonding" or
"multilink", which requires ISP support and is usually only available for
ISDN services.
Connection aggregation is particularly useful in cases where two or more
Dial-Up Networking connections are available and router traffic is to be
spread (more or less) evenly over multiple connections. The feature is also
useful for DSL or Cable Modem users requiring a fallback Internet connection.
If the high-speed connection fails, the DUN Connection can be easily
enabled for emergency use. When the main Internet connection is restored,
the backup connection is automatically disconnected.
Installation OPTIONAL
------------
The NAT32 archive can be unzipped into any desired directory; the example
below assumes the directory C:\NAT32.
You can then run the setup.exe program, although this is entirely optional.
Setup.exe makes NO major modifications to your system. In particular, no
Windows DLLs or Drivers are overwritten or modified, and your networking
configuration is not altered in any way. Only minor registry modifications
are made. The only files copied to your Windows INF directory are nat32e.inf
and the NDIS3PKT INF file.
Before Running NAT32:
---------------------
This version supports several features provided by Internet Explorer 6
(or higher). However, all of those features are optional and NAT32 works
correctly on machines without Internet Explorer installed.
WINDOWS 98SE users MUST install the NDIS.VXD upgrade available from
the Microsoft Windows Update web site. This upgrade is essential because
that version of Windows had a major bug in that driver.
WINDOWS 95 users should install the Microsoft DUN 1.2 (or later) upgrade
before running NAT32. This upgrade is an absolute must (even for Cable
Modem users) because it contains the last VIP.386 and TCP/IP upgrades,
as well as vastly improved Dial-Up Networking support. The upgrade is
available from the Microsoft Windows Update web site.
IMPORTANT
---------
On Windows 9X and NT4 platforms, you must turn off IP Header Compression
for all DUN Connections you plan to use with NAT32. If you ran setup.exe,
this will have been done for you, but any connnections you add later will
need to have IP Header Compression turned off manually.
Installing NDIS3PKT
-------------------
NAT32 uses a special version of Dan Lanciani's NDIS3PKT driver.
DO NOT ATTEMPT to run NAT32 with any version of NDIS3PKT other than the
one contained in this distribution.
1. Start the Control Panel Network Applet and click Add, then Protocol.
Under Windows 2000/XP, open Control Panel, Network and Dial-up
Connections, and then right-click any Local Area Connection. Then click
Install and select Protocol, then Add.
2. Click the "Have Disk" button and specify the directory into which you
unzipped NAT32 as the source directory.
3. Select the required .inf file:
Windows 9X: NDIS3PKT.INF
Windows NT: OEMSETUP.INF
Windows 2K: NDIS3P2K.INF
Windows XP: NDIS3P2K.INF
4. Click OK.
5. REBOOT WINDOWS, even if a reboot is not requested. This is because the
NDIS3PKT driver can only be started at boot time. If it has ever been
disabled for any reason, you must reboot Windows in order to restart it.
On non-PnP systems (NT4), NDIS3PKT can only bind to adapters which
Windows enabled at boot time. If you disable an adapter and later
reenable it, you must reboot Windows so that NDIS3PKT can bind to it.
Running NAT32
-------------
The first time NAT32 is run, it examines the existing Windows network
configuration and generates several configuration files in the directory
from which it was started. Click the Editor Icon for more details.
IMPORTANT
---------
For NAT32 autoconfiguration to work correctly, you MUST have at
least one private LAN adapter which has been assigned a FIXED IP
address. That address should be private, but it needn't be.
A Dialog Box will be presented listing all Network Interfaces available
on your system, and you should then select the Interfaces you would like
NAT32 to use. For each of the selected Interfaces, you must click a
radio button indicating the type of network to which the interface
connects (Internet, Private, or One-way).
If Windows Internet Connection Sharing is enabled, please turn it off or
click Help for further details.
A yellow shortcut will be added to your Desktop, and you should use that
shortcut whenever you subsequently wish to run NAT32 with the selected
interfaces. A grey shortcut is also added. It can be used to start a new
NAT32 configuration run. The green shortcut starts a Web interface to
NAT32 using the default browser on your system.
IMPORTANT
---------
The registered version of NAT32 can be run as a Service, but
you MUST NOT start it as a service until it has been correctly
configured and you have familiarized yourself with its operation.
Full NAT32 documentation in the Help File: help.zip.
************************* HOW TO UNINSTALL NAT32 *************************
* *
* Click Start/Programs/NAT32/Uninstall *
* *
* Uninstall leaves a few configuration files in your NAT32 directory, so *
* you should subsequently drag the NAT32 directory to the Recycle Bin. *
* *
* To uninstall NDIS3PKT, use Control Panel Network to remove the driver. *
* *
**************************************************************************
NAT32 is FREEWARE when run in Winsock Mode. No time limits or other
restrictions apply in this mode, but IP Routing is not possible because
only Winsock network I/O is available.
NAT32 behaves as SHAREWARE when NDIS3PKT is installed and started. When
unregistered, this version will run for 2 hours to allow you to evaluate
its capabilities. Several features are disabled, but the program can be
restarted any number of times. In some cases, you may need to reboot
Windows in order to restart the NDIS3PKT driver.
NDIS3PKT has been modified to run with NAT32 only.
**************************************************************************
* *
* Online Registration: see menu item Help/How to Register *
* *
* Web Site: see menu item Help/About *
* *
* Support: see menu item Help/About *
* *
**************************************************************************
What's New in each release (by days of the month)
-------------------------------------------------
May, 2009 BUILD 1052 *** Upgrade recommended for all users ***
5 Scripts now execute the break command after an if correctly.
Shell modified to always return either the child pid or the
return code from a function or 0.
Command wchecki added. Same as checki command except that it
works in WINSOCK mode.
Dial and hangup commands now also work in WINSOCK mode. Be sure
to create the files dialup.txt and hangup.txt for this to work.
File dialup.txt sample:
echo "About to dial UniVPN"
dial UniVPN
dialcfg
File hangup.txt sample:
hangup UniVPN
Note that additional processing can be done in those files if
required.
File wuser.txt (if present) is now executed by startup if NAT32
is running in WINSOCK mode.
6 Demo version no longer times out when running in WINSOCK Mode and
it can now also run as a service.
8 Exit problem fixed: NAT32 was exiting when a builtin command
terminated.
TCL now links in all NAT32 vars. If such a variable is modified
within TCL, NAT32 sees the modified value thereafter.
April, 2009 BUILD 1052 *** Upgrade recommended for all users ***
2 Function use_gateway modified to return SYSERR if a MIB entry is
not found.
Function setgw will retry up to 10 times at 1 second intervals if
use_gateway returns SYSERR.
This fixes the problem of the gateway sometimes not being found
when a dial-up connection is established.
4 Winclose modified. WM_CLOSE now resets all the needed variables
windows now close instantly.
Function icsute modified to check pNSC before using it. This should
fix the GPF problem on some machines when NAT32 starts.
5 Winchar modified to honour \r. This is useful for printing repeated
status messages without filling up the screen.
7 Resize problem in nav.htm and nav.js fixed.
10 Several web page problems fixed.
12 Winchar \r support removed.
27 Ajax pages were not being refreshed at 1-sec intervals because of
IE problem with "Expires: -1".
29 A few IE6 compatibilty problems discovered. Install IE7 for full
functionality, as IE6 is considered obsolete.
March, 2009 BUILD 1052 *** Upgrade recommended for all users ***
2 Web client now warns about frames with lengthy names, as they are
most likely layer ads. Names longer than 8 chars are detected. To
stop the ads from appearing, simply ignore the warning dialog but
be sure to close it before navigating away from the site.
7 Command 'setwd' now supports a 'test' setting that turns frane
name checking on or off.
14 Frame checking refined.
IE command added. Usage: ie [url] | [-e path]
26 BUGFIX: DNSRD was faulting when turned off.
This was because dgclose was sending a null message to dgread.
29 Command 'gw' modified to allow setting the gateway address of an
interface.
Usage: gw [ifn] [gw]
To force the addition of a gateway when a DUN connection comes
up, create a connection-specific script containing the following:
gw $2 $3
setgw $2
February, 2009 BUILD 1052 *** Upgrade recommended for all users ***
1 Dial-up networking now writes all messages to nat32.log instead
of ppp.log.
Dial-Up Networking error fixed: mappings weren't being turned on
for connections that don't have a default route.
2 Dial-Up Networking error fixed: a GPF occurred if an add route
attempt was made with an invalid gateway address,
6 Command js: Redirection supported. Pipe and CTRL-C not supported.
Note that "js > monitor" can be used instead of "js | more".
7 Ctrl-S in a web window now always shows the source of the top
document of the web page.
10 Various scripts modified. Edit command modified to return a
message when invoked via a TCP connection.
16 HTTPPUT command fully implemented.
18 Editor modified. HTTPGETE now works correctly.
22 Various problems with web pages under Mozilla tidied up.
CDATA bug workaround implemented.
January, 2009 BUILD 1052 *** Upgrade recommended for all users ***
4 IPPROC: when an ICMP DEST UNREACHABLE was sent, the source IP
address was set to 0 until a route was found. This caused an
incorrect destination address to be printed to the Console.
Command setgw modified so that it adds a default route if
use_gateway returns true.
8 Function preceive modified to return SYSERR rather than NULL.
All calls to preceive now check for SYSERR rather than NULL.
10 In host transfer mode, some packets were being blocked
unnecessarily. This caused incoming traffic that was ppmap'ed to
the local MSTCP stack to be discarded.
17 Fault in ICSUTE Line 145 on startup: This fault occurs if the
winmgmt service is not running. NAT32 does not check this service
as it is generally considered to be an essential Windows service.
19 Trace window now supports an inverse filter. If the filter string
starts with !, then display only lines that contain the remainder
of that string. This is useful for displaying only packets that
contain the specified string.
21 If the trace filter string is of zero length, then check all the
filters that were loaded from file filter.txt at the time the
trace window was opened.
25 Trace window modified.
28 Javascript (inline and included) can now be listed with the js
command and the webcmd scripts option. Named inline functions on
any web page can also be executed.
December, 2008 BUILD 1052 *** Upgrade recommended for all users ***
1 Command dhcpd modified so that it does nothing if the DHCPD is not
running.
3 During configuration, DHCP-configured private interfaces now remain
untouched if the warning about this is cancelled.
4 Admin: Error message for local traffic removed.
6 ARP: arpsend was enforcing minimum Ethernet packet length and this
caused OpenVPN traffic to fail.
OpenVPN connections can now be shared, but note that the NAT32
TAP-WIN32 interface must be configured to "Share the Windows IP
address". This is required because OpenVPN wants a 255.255.255.252
subnet mask.
Command setht now disallows Host transfer Mode for private
interfaces that are in shared mode. This is because there is no
unique IP address for NAT32 to use on a shared mode interface.
Note that if any private interface is configured for shared mode,
you MUST specify and external DNS server address on your private
machines.
10 Gateway issue in netstart modified.
11 Default DNS Server now OpenDNS (208.67.220.220 or 208.67.222.222).
New command: setgw ifn
Adds a default route if the specified interface has a gateway.
Command 'if' modified: If a file of the specified name exists, the
if action is executed.
12 Command 'for' modified: Now supports the following ifn suffixes:
ifn.private ifn.internet ifn.gateway and ifn.ip
14 Memory leak in winclose fixed: color memory was not being freed.
Service dependency changed to Tcpip (was Print Spooler).
New Command: break
Use in script files to terminate execution prematurely.
16 Command checki modified. If the interface has no gateway, the test
packet is now sent via an interface-specific route to the
destination (if one exists).
22 ICMP support enhanced. If an ICMP packet is received from the
Internet, and if no ICMP mapping for that packet is in place,
then use its original packet header details to find an entry
in the port mapping table so that we can route the ICMP packet
to the machine that caused it.
23 NAT32 can now be started with a third argument to specify that
the user.txt file NOT be executed.
UPNP client modified.
30 FritzBox DSL trace feature added. Command fritz_on turns on the
packet capture feature. All DSL IP traffic is captured, decoded
and displayed in the Monitor window. Command fritz_off turns the
capture off.
31 Commands 'url' and 'httpget' modified to better handle proxy
connections.
DoLoadS is now never called for Internet URLs on any web page
to avoid browser lockups until the request completes. This is
actually a very common problem on the Internet: many sites make
synchronous XMLHttpRequest calls without realizing that IE will
hang until they complete.
November, 2008 BUILD 1052 *** Upgrade recommended for all users ***
16 Error in x_mstcp fixed. IP fragments from MSTCP are now handled
correctly.
Netin1 and netin2k modified.
18 Errors in the handling of IP fragments fixed.
Command: ping x.x.x.x 1600 now works.
19 Host Transfer Mode fixed for Dial-Up interfaces.
20 Interface Selection bug fixed.
23 For PPP connections, don't add a default gateway unless one is
actually reported in the registry.
October, 2008 BUILD 1050 *** Upgrade recommended for all users ***
4 Shutdown command modified: shutdown [-h | -r] [when]
The above command shuts down NAT32 after 'when' seconds have
elapsed. Argument -h halts Windows, argument -r reboots it.
The setht command creates a batch file containing the Windows
commands needed to restore default routes.
5 NAT32 now generates the files restore.bat and nat32.bat.
File nat32.bat can be executed to restart NAT32 after a crash.
File restore.bat restores any Windows routes that NAT32 might
have been changed (via the setht commeand).
File nat32.bat executes restore.bat before starting NAT32 with
the last-used number of interfaces.
10 Several changes to check_pmap, map_port and unmap_port made.
Command pmap now shows total traffic per entry.
12 Port mapping now deletes TCP entries immediately when:
- both fin1 and fin2 have been received OR
- rst has been received
This makes entries disappear faster. NDIS3PKT also deletes mux
table entries in the above two cases.
Error in check_pmap fixed. It was causing bogus entries to be
added to the pmtab when belated TCP fin segments came in.
13 Error in x_mstcp fixed. Our packet header wasn't being fully
initialised unless tracing was on.
15 Bug in x_mstcp fixed. Packets with VLAN tags are now ignored,
Packet buffer size increased.
September, 2008 BUILD 1050 *** Upgrade recommended for all users ***
9 Minor bug fixes and web page enhancements.
10 New commands:
form url The command opens a small web window and displays the
url in it.
mon string The command displays the string in the Monitor window.
11 Problem with use_gateway fixed. Note: For Dial-Up connections, the
'connect' script must be edited if a default gateway is NOT to be
added when the connection comes up.
12 Minor bug fixes.
13 The special "app:cmd?" feature in the embedded browser has been
replaced with "app?cmd=" to achieve the same effect. This was
done because pages containing "app:cmd?" were giving errors like
"unregistered protocol" when viewed with standalone browsers.
Bugfix: an incorrect pDisp was being saved in the embedded browser.
This was causing a GPF in Google Picassa searches (and possibly
others).
16 Bugfix: Output to the Console by a web page (e.g. when debug is on)
was causing lockup if the page made synchronous Ajax calls. The
problem had to do with SendMessage reentrancy issues. They were
fixed by means of a semaphore and not calling SendMessage in WinChar
whenever the Console was displaying a web page.
17 Form command enhanced and modified.
August, 2008 BUILD 1050 *** Upgrade recommended for all users ***
2 ADMIN feature: proxy authentication is now required.
HTTPD feature: A href like the following can be used to put data
into a
:
"javascript: doLoad('shell?cmd=echo+test', 'Data')"
4 HTTPD qlen increased from 5 to 32. This solves the problem of
connection refusal when debugging is on.
WEBCMD: Busy command added, Get command fixed.
9 Command added: httpput url "data"
The command does a POST and passes data in the request body.
12 Command ps: pipe to an invalid command was causing a GPF.
This was because p32die was not resetting argmem and argmeml.
14 Command setns e1 caused problems because dnscheck is called
in ipgetp. Dnscheck does a wname2ip, which can block for
up to 20 sec. This was fixed by making the wname2ip lookup
optional via a flag argument in dns_check.
Command dnsrd now starts a multithreaded DNS resolver that
resolves names by calling wname2ip. Note that the resolver
only receives traffic on interfaces for which dnsmap is off.
Command wdnsd now starts a Winsock DNS forwarder that forwards
DNS request to the current NSERVER.
15 Command wdnsrd now starts a multithreaded Winsock DNS resolver
that resolves names by calling wname2ip.
16 HTTPD POST support fixed.
18 Wname2ip now caches entries if setns e2 was done.
Dgclose now makes pending dgread calls return SYSERR.
DNSD, DNSRD, WDNSD, WDNSRD fixed.
Memory leak in browser device fixed.
20 Commands httpget and httpput modified.
Web DisplayHTMLStr modified: if a base url is specified, a
tag is written before the string is written.
28 For DHCP-configured LAN interfaces without a DhcpDefaultGateway,
NAT32 now assumes that the DhcpServer is the gateway. This was
needed to make certain ISDN adapters work.
30 Admin bugs fixed: password and IP address checked, login.htm form
now uses POST rather than GET so that passwords
don't appear in the browser address bar.
31 Agent string table added. Command 'agents' list that table.
Command 'agent n' sets the User Agent to the n'th string.
Command 'wproxy' fixed. The ProxyEnable registry setting was being
written as a binary value instead of a DWORD value.
July, 2008 BUILD 1050 *** Upgrade recommended for all users ***
1 Various embedded browser enhancements.
11 Admin: adminu command modified so that usage details for already
logged in users are not altered.
12 Admin: TCP options were not being handled correctly in unmap_port.
As a result, Linux boxes were not displaying the login.htm page
when disabled in NAT32 Admin.
13 Various fileexec calls were inheriting handles in CreateProcess.
This was causing NAT32's Winsock handles to remain open if NAT32
was terminated and any created processes were still running.
This then caused "Can't listen at port..." errors on restart.
The only fileexec calls that now inherit handles are fileexecw
and fileexecwh.
15 Vista support enhanced.
Shortcuts modified.
16 Web pages modified.
18 Vista support enhanced but still incomplete. Basic NAT and Port
Mapping works for LAN Adapters only. Most other features will
be ported in the near future. Note that all WEB32 functionality
is present on Vista.
22 HTTPD can now block POST requests at all debug levels, but only
if the local browser is set to use HTTPD as its web proxy.
30 Bug in Tcl_CloseCmd fixed.
Shell more command fixed.
June, 2008 BUILD 1050 *** Upgrade recommended for all users ***
3 The code to connect to the TAP-WIN32 driver and set its Media
Status was removed because other apps (e.g. coLinux) could no
longer attach to the driver. There seems to be no solution for
this problem so it is probably best to configure TAP-WIN32 to
run in the "Always Connected" mode. Note that NAT32 isn't
dependent on the media status as it can read and write packets
as needed via the NDIS3PKT driver.
NOTE: The tap command has been retained.
8 The number of DHCP-configured machines per network has been
increased to 256. Note that the following adresses are reserved
and will never be assigned:
x.x.x.0 x.x.x.255 x.x.x.n x.x.x.w
where x.x.x.n is NAT32's IP address on network x.x.x.0
and x.x.x.w is the Windows IP address on that network.
26 Command webcmd expanded.
Command ps now also shows the command line.
April, 2008 BUILD 1050 *** Upgrade recommended for all users ***
9 Minor problem with the IPHLPAPI on Windows 95 platform fixed.
11 Experimental:
Incoming traffic is allowed for certain ports even when the
blocking host transfer mode is on.
The allowed ports are specified using the ppmap command.
Note that if the listener is on the NAT32 machine, the ppmap
command must specify a destination address of 0.0.0.0.
14 Experimental:
All MSTCP traffic to/from a port range specified in the ppmap
table is now forwarded. This allows servers on the network of the
Internet connection to be reached when the blocking host transfer
mode is on. Note that traffic to other servers is forwarded by
NAT32 via the default route, not via the MSTCP network-specific
route for the connection.
27 Fixed the NOD32 false positive alarm. Note that the fix was very
simple, and full functionality was retained. One might wonder
whether programs like NOD32 really can protect a computer against
a determined virus attack.
March, 2008 BUILD 1050 *** Upgrade recommended for all users ***
8 Major problem with the NDIS3PKT Intermediate Mode corrected.
It now works for adapters that implement checksum offloading.
The NDIS3PKT Intermediate Mode can now be used with any number
of interfaces. Details are in file mstcp.htm.
Major problem with the Host Transfer Mode corrected. The problem
was related to XP and later MSTCP optimization issues.
Host Transfer Mode now works correctly for multiple Internet
interfaces.
Support for IE8 Beta added.
Promiscuous mode for PPP adapters is now disabled. The trace
window still shows it as set but only changes filter settings,
not the Receiver Mode. This was doen because setting the Receive
Mode for PPP adapters breaks the MSTCP modes for the adapter.
Simple Honeypot added: start honeypot
It listens at NAT32 Port 80 and responds with ip:port of the
NAT32 HTTP Server.
10 DNS resolution was failing when Host Transfer Mode was on and
the DNS Extra flag was on. DNS Extra processing is now skipped
for all DNS requests originating from the Windows IP address of
a private interface.
12 The SETHTB command can be used to set the Host Transfer mode and
block all MSTCP traffic for the host interface. That interface is
now totally invisible to the Internet, and not even ARP requests
are answered.
The setns ex command now checks that no Internet interfaces have
an MSTCP block. If so, turning on the DNS Extra Features has no
effect, as this feature can't work if the underlying Internet
connections are not available to Windows Apps.
14 The setht command now tests for Windows IP Forwarding. If it is
on, it does not set the Host Transfer Mode for any interface,
because DNS lookups cause packet cycles.
15 Bugfix: IPPGETP - the code that added a Windows Routing Table
entry was freeing the packet buffer too early.
20 Bugfix: MSTCP - argv was being referenced in the while loop of
the two threads it started.
23 Bugfix: Uninstalling the NAT32 Service while running as a service
did not terminate NAT32 correctly.
24 Bugfix: Some web pages were crashing the embedded browser.
New: Command 'kill 99' removes the NAT32 user interface windows.
Point a web browser at localhost to interface to NAT32.
25 Bugfix: Demo version was not executing file 'onexit' on timeout.
27 New: Command 'tap [ifn] [attach | detach]' added.
The TAP-WIN32 driver is detected in netstart and attached
per default (function tapinit).
Environment variable 'tap' holds the IFN of the TAP-WIN32
interface.
Bug: Some web pages that link to some advertising sites are
causing a GPF in DispatchMessage. A workaround for this
has been added: After the GPF is displayed, clicking OK
again dispatches the message and operation seems to
continue normally.
February, 2008 BUILD 1049 *** Upgrade recommended for all users ***
18 Major problem resolved: ICMP FNADF packets were being dropped
whenever dial-up connection establishment had been triggered via a
TCP packet. If the trigger was a UDP packet (e.g. a DNS lookup) no
problems arose.
February, 2008 BUILD 1048 *** New help files included ***
2 Various htm files modified.
Multicast support modified: NDIS3PKT receiver mode is now RCV_MCAST.
Netin1 now marks reflected Class D packets as [reflected][Class D].
Nbname broadcast propagation bug fixed.
Local out packets to multicast (Class D) addresses now bypass
routing and leave via the interface found in the IGMP Host Group
Table. The igmp command can be used to manipulate that table.
A setmc command has been added so that the NI_MULTICAST interface
can be modified at run time.
DHCP client support modified.
4 Multicast support is now started with command: mcinit ifn
in file startup. This also initializes IGMP support on the
specified interface.
The multicast interface number can be modified with command:
setmc [ifn]
This also reports IGMP memberships.
Note that NAT32 now implements IGMP and Multicast for all
interfaces. Environment variables show if IGMP support is enabled
and the default multicast interface.
Previous builds had several bugs in the both the Multicast and IGMP
support that rendered it inoperative (cksum problems, len problem,
ifn problems and multicast receive mode not on).
Version string added to startup file. The string is checked when
NAT32 starts and a red warning is printed if the version number
does not match the build number.
5 Arpadd and arpdel commands now support an optional ifn argument
and allow 255.255.255.255 entries to be added to the ARP Table.
As a consequence, ping 255.255.255.255 now works as expected, but
only if an ARP broadcast entry for a specific interface exists in
the ARP Table.
6 Arp Table size increased from 256 to 1024
Web Browser UI_GetExternal implemented.
8 Much time wasted compensating for a redraw bug in Java 6:
When another window covers an applet's window, moving that window
away leaves the exposed applet window undrawn. A focus click fixes
it, but it should be automatic. The problem was eventually fixed
by handling hWebIE WM_PAINT messages in NAT32. Previous versions of
Java did not have this bug. This is a classical example of the risks
one takes when one relies on software from another party.
Various other focus and redraw issues in winio.c were also corrected.
The resulting code is now simpler than the previous version. As a
general rule, a WIN32 app should keep all focus change handling as
simple as possible to avoid complications.
9 Winio.c now does a DoPageAction WEBPAGE_BLANK in its WM_CLOSE
handler. This stops any controls like Java or similar and allows
NAT32 to terminate quickly and cleanly.
11 Various HTM page updates.
13 Problem in winute: ni_ovalid not set on startup. An incorrect
ni_other value was subsequently set. This could have caused various
problems.
14 Problem with ni_ovalid fixed for DHCP-configured interfaces too.
New command: setwd [on|off]
Enable or disable web dprintf output (default is off).
RSS.TCL script modified to strip \ characters from titles.
SETW and SETI commands modified. The SETW command was erroneously
assuming a TCP MTU of 1460 bytes (1500-40). Now modified to compute
the actual MTU - 40. The SETI command was setting the default MTU to
1412 instead of to 1400 (a safer value).
15 Ipmap command now calls pmap to explicitly turn off port mapping
so that the port mapping table is cleared. This was causing problems
when an NDISWANIP connection went down. When the connection was
restored (with a new IP address), existing mappings were being used
for private TCP and UDP traffic being handled at the time.
Monitor window now supports command input.
January, 2008 BUILD 1048 *** New help files included ***
2 Major changes to Host Transfer Mode and Multiple Internet Interfaces
support.
Port mapping table increased in size to 1024 entries.
Admin features improved.
Incorrect token.htm file included in demo build.
6 Host Transfer Mode VPN connections now work. Please see setht.htm
for details.
8 BUG: Version 1.6 of the Java Runtime has a compatibilty bug that
occurs when IE 6 and later Embedded Browser Objects encounter
an Applet tag on a web page. This bug crashes the application
hosting the Browser Object (NAT32 in this case). Java 1.5 and
earlier does not have this bug. The author is working on a fix.
Admin default value now saved in Registry.
NAT32 command line switch 'e' added. It denotes that an IE browser
is to be embedded in the Console windows.
While several bugs in the embedded IE code have been fixed in this
release, there are still many opportunities for things to go
wrong in the embedded browser. NAT32 therefore now defaults to NOT
embedding an IE Browser object in its user interface.
The 'e' command line switch (or option E in file conini) can be
used to override this default.
10 Minor web page changes.
11 Webcmd functionality modified.
12 Function wcmd (called when app:cmd? is executed) was overwriting
the 1024 byte command buffer.
13.12.2007 BUILD 1047 *** Now includes all help files ***
Port Mapping code modified.
New web interface.
Environment variables added: ifn.internet, ifn.private ifn.gateway
Web pages updated.
Netstart modified to add correct routes for existing PPP client
connections (private and Internet).
DHCPD modified: Whenever an IP address is assigned, released or
renewed, the file dhcp.tcl is executed as follows:
dhcp.tcl ifn ip mac [name] op
where ifn is the interface number, ip is the IP address, mac is
the Ethernet address, [name] is the host name and op is one of the
strings "assigned", "released" or "renewed".
New command: daten
returns the current date string without a closing new line char.
Route add commands now accept a DNS name as the dst argument.
Editor bug fixed: find now scrolls correctly.
Shutdown command modified: shutdown [-windows]
Now shuts down NAT32 and then Windows.
NAT32 now terminates if file scrini is not found.
Numerous HTML fixes and improvements. Firefox compatibility
improved.
Hang on exit problem solved.
File conini no longer contains httpd port number. That is now
set when the httpd is started.
File nat32.js is now created via the 'jsf' command executed in
file startup. The default port is 8080.
HTTPD bug fixed (incorrect Header response sent for commands).
Default page for web server is now nav.htm
New command: shutdown [-h] [when]
Terminates NAT32 in 'when' minutes. Also shuts down Windows if -h
is specified. Works for 9X too!
Command setns modified: setns [ipAddr | dx | ex]
Arg d1 turns debug on, d0 turns debug off.
Arg e1 turns extras on, e0 turns extras off.
The "extra" features are:
1. A DNS query from a private machine for 'nat32.win' returns the
Windows IP address of the NAT32 machine.
2. A DNS query from a private machine for 'nat32.box' returns the
NAT32 IP address of the NAT32 machine.
3. All DNS queries from private machines to NAT32 are resolved via
Winsock lookups. This has the advantage that if the HOSTS file
under Windows contains ad-blocking entries, all private machines
benefit from this.
Help pages added and updated.
DNS debugging output cleaned up.
HTTPD and HTTPGET now work correctly in Proxy Mode.
Remote command now works correctly.
WinChar modified to skip 0 chars in buf.
If NAT32 is started by a service (e.g. CoLinux), if another user
attempts to run it, a dlialog box is displayed and a web browser
can be launched to interact with the running NAT32. The correct
port is extracted from the htm\nat32.js file that will have been
updated by the already running NAT32 instance.
A Web Shortcut to file MYNAT32.HTM is added to the Desktop so that
one can always interact with the running NAT32 instance
irrespective of the current port number.
Various web pages updated.
DNS default address now set to 208.67.222.222 (OPENDNS.COM)
This enhances parasite protection.
26.09.2007 BUILD 1046 *** New HELP.ZIP ***
UPNP Client added. The UPNP client can be used to set Port Mappings
on attached DSL Routers or similar.
ARP support modified: configurations with two or more external
routers on the same subnet are now supported. No duplicate entries
for the gateways seen on each network are added to the ARP table.
ARP modified: check for full ARP Table added (arpalloc returns 0).
Routing modified: rtadd now honors the interface number when
checking for duplicate entries. As a result of this, two or more
network routes, each for a different interface, can now be present
in the routing table.
Interface Selection modified: the value 0 is now Best Metric,
the value 4 forces the use of the Primary interface.
IP Routing modified: local outgoing traffic now honors Interface
Selection modes 4 and 5.
Backup mode modified: command setb now sets backup mode and makes
appropriate adjustments to the interface selection mode.
In previous builds, setb was the command used for setting Best Match
UDP mapping. That is now done with command setbm.
Backup mode can now be used to fallback to a DUN connection or to
another Internet-connected interface. See backup.htm for details.
New Tcl script: checkb.tcl added. Usage: checkb ifn backup_ifn
Put this script in your crontab and then start cron. The script will
then be executed every minute and the specified backup interface
will be used whenever interface 'ifn' looses Internet connectivity.
When connectivity is restored, the script will restore the use of
interface 'ifn' for Internet traffic.
New command: base64 string
Converts string to/from base64 encoding.
Clipboard functionality cleaned up. Selected text is now copied to
the clipboard and the selection cleared if any key is pressed or
the right mouse button is clicked.
Clicking in the Console while NAT32 is starting prevents the window
from being hidden.
Sockio modified so that a thread switch (sleep(0)) is done after
each call to closesocket.
IPPROC: prt check added, debug checkpoints added.
Icon problems fixed, a few missing gif files added.
Vista compatibility improved: manifest modified to require
admin rights, check for NDIS3PKT driver failure due to Power
Management issues added, ICF is independent of ICS on Vista.
Icons modified. Dial-Up Networking support coming soon.
Windows connection names now displayed.
The IP thread can now be started via the start command.
Admin addHost now checks for bad pep->ep_ifn.
Dial! menu item now dials the first connection name found in a
netcfg file.
Network configuration dialog box now handles quoted connection
names correctly.
A few minor bugs in UPNP Client fixed (crash if device is down,
various values set to 0 if device is booting).
Trace window now shows Windows connection names. Unknown types
now show the actual type value rather than "????".
LoadIcon replaced with LoadImage.
Permanent port mappings now work correctly when multiple Internet
interfaces exit.
Command: route addi
was using the IP address of the interface as the gateway, rather
than the actual gateway address. If no gateway exists for the
specified interface, the command now correctly reports an error.
Web browser: popup_flag added, child_flag added, query_flag added.
If popup_flag is 0, no popups are shown.
If child_flag is 0, no child windows are shown.
If query_flag is 1, all GET Requests are queried before fetching.
If auth_flag is 1, all GET Requests are sent with an auth header.
If filter_flag is 1, all GET Requests for URLs in block.ini are
cancelled.
Use the webstat command or the Window menu item to modify these
flags.
Web browser: more proxy support added. See new commands:
proxy [on|off] | [hostname:port] | [username password]
agent ["agent string"]
hgstat [proxy on|off] | [debug 0|1|2]
hstat [local | private | public | acl | dx | lx]
New script added to IE Context Menu: Google the selected text.
Many changes to web pages. See help.zip for the latest changes.
Command js added. This command enumerates (and dumps) all
inline Javascript functions in the current web page.
ICF settings were being restored after an initialization run.
ICS and ICF settings are now only restored during after a normal
run.
20.05.2007 BUILD 1045 *** New NDIS3PKT.SYS ***
Admin redirection added. Disabled stations can now be enabled
after the user enters a username into a browser login window.
See http://www.nat32.com/nat32e/htm/admin.htm for full details.
Admin logging modified.
At long last, Google Suggest now works in the Web Browser window.
Javascript errors are also supressed.
A few other minor bug fixes, mostly in WebBrowser.
One major WebBrowser problem still occurs on systems that have
old Flash players installed (flash8a.ocx):
The Flash Player sometimes crashes and takes down NAT32 with it.
To fix this, please install the latest Flash version from the
Adobe website.
Vista support added, but not yet complete. A new NDIS3PKT.SYS should
be available soon.
P32 thread wrapper now nested in try, catch. This means that a
NAT32 thread should now terminate cleanly if a GPF occurs.
Problem with token.htm in help.zip fixed.
Color support added.
Commands: color [r [g [b]]] # set color RGB values
color [red | green | blue | black | white | grey |
yellow | cyan | magenta | maroon | navy | lime]
cecho [color] ....
NAT32 now prints notices requiring user action in red. Notices
indicating all is well are printed in green.
MSTCP command modified to set RECV_FLAG_INTERRUPTIBLE in both
nd_recv calls.
Flash detection built in. If your Flash OCX is Flash8a.ocx, then
you definitely need to upgrade or NAT32 will crash when you view
a Flash web page.
UPDATE: Other Flash8 versions are also crashing depending on Flash
content. An upgrade to a higher version is recommended.
The NAT32 Browser now displays a list of windows that Flash has
created and lets you close them. See the Window menu item.
New setup.exe version 1.8.2 adds an App Path entry to registry.
NAT32 updates App Path each time it runs.
Major change in how private, DHCP-configured interfaces are handled:
1. NAT32 defaults to 172.16.x.200, where x is the wincfg index.
2. NAT32 always does an ipconfig /release during a configuration
run if a Windows DHCP-configured adapter is selected as a
private NAT32 adapter.
3. A Windows DHCP renew is done in file startup, but note that
this is optional and only needed if the private machines on this
network require connectivity to Windows on the NAT32 machine.
4. A new environment variable pdhcp is set during configuration runs
if a renew needs to be done.
Netin2 modified so that ARPs from MSTCP are not ignored.
DHCP Server menu item now greys out all entries if DHCPD is not
running.
DHCPD command modified.
Start DHCPD command now takes no arguments. All settinsg are now
modified per interface via the dhcpd shell command.
Dhcp command usage:
dhcpd [ifn [on | off | d | D]
dhcpd ifn lease n
dhcpd ifn offset n
dhcpd ifn real on | off
dhcpd ifn dns ip
dhcpd ifn delete ip
dhcpd ifn reset
dhcpd ifn dump
Netstart now initializes DNSDOMAIN to MSHOME.NET. This value will
be overwritten by the value detected in the Windows TCP/IP during
configuration. As many systems never set a domain, and some DHCP
configured devices require a domain, a default value of MSHOME.NET
seems to be a safe value to use.
Note that this value can be overwritten with a setd command in file
user.txt.
GPF dialog box now shows more detail.
SetDlgItemUrl added.
All help files modified to be HTTP port independent. The actual
port to be used by the HTTPD is now specified in file conini.
Device change message removed.
DHCPD delete command added. This allows an assigned entry in the
dhcpd table to be deleted. The MAC address is left unaltered to
ensure that the same IP address will be assigned when that client
again requests a lease.
RAS support modified: A GPF was occurring in pprintf when RAS
functions that display the phone number were called from within
ipproc.
Rttimer was not adding a gateway for DHCP-configured interfaces
because use_gateway was returning stale MSMIB information. For
all non-PPP interfaces, the gateway is now always added without
consulting the MIB. For PPP interfaces, a route addi command in
file 'connect' adds a default route if needed.
Note that for PPP interfaces, if Windows is not using a gateway,
and if the connection is up when NAT32 starts, then NAT32 will not
add a gateway either. If this behaviour is not desired, then file
user.txt should contain a command like the following:
route addi 0.0.0.0 0.0.0.0 i
where i stands for the interface number.
The nsdetect flag is now checked before NSERVER updates are done.
This allows a DNS address specified in a setns command to be
used permanently (but see setns1 and setns2 below).
NsUpdate function modified so that wincfg dns settings are
transferred to the nif table for Internet-connected interfaces.
Bugfix: problem with default route detection corrected.
New commands: setns1 [ifn] [ip]
setns2 [ifn] [ip]
The above commands are used to set the first or second name server
for a specified interface.
New command: setdx [ifn] [domain]
The above command is used to set a domain name for an interface.
Bugfix: specifying a DNS server address in the Interface
Configuration dialog mow transfers the value to ns1.
Admin: new password command added.
adminpw [password | ""]
The above command can be used to specify a common password for all
machines. If authorisation is enabled, the user can login with
either a valid name, or the above password. The Admin dialog box
also allows the password to be set or cleared.
Steganos VPN support added. To use this feature, add the following
commands to your user.txt file:
set steganos ifn
setsteg ifn
where ifn is the TAP interface used by Steganos VPN.
An updated 'change' file is included in the Demo Distribution
and it now executes a 'setsteg' command to add the needed default
gateway to the NAT32 Routing Table and turn on the needed mappings.
File setsteg.htm has been added to the help.zip file.
New variable: backup
When set to 1, NAT32 always uses Interface Selection Mode 0 (best
metric) when multiple Internet connections are available. This is
desirable when connection fallback functionality is required.
New command: checki ifn [ttl [ip|name]]
The checki command sends an ICMP Echo Request via the specified
interface and with the specified TTL to the specified host. If
a response is received, the ICMP Type and Code is printed,
otherwise "TIMEOUT" is printed.
The command can be used to determine if a given interface has
Internet connectivity. The default TTL of 2 means that the
second gateway on the path to the host will return a Time Exceeded
response and hence Internet connectivity is available.
New Tcl script: checki.tcl added. Usage: checki ifn connection
Put this script in your crontab and then start cron. Execute the
script every minute and the specified connection will be dialed
if the specified interface looses Internet connectivity. When
connectivity is restored, the script will hangup the connection.
Command setf (set filter) now allows DNS names to be specified
for source and destination IP addresses.
19.12.2006 BUILD 1044 *** NEW NDIS3PKT.SYS Version 3.2 ***
Problem with DHCP-configured private LAN adapters fixed. NAT32's
DHCP Server can now configure Windows Adapters on the same
machine. Full details are in the updated help file:
http://www.nat32.com/nat32e/htm/dhcpd.htm
Problem with incorrect address masks corrected. For example, a
mask of 255.255.0.0 for a Class C address such as 192.168.1.1
now causes no problems, although the mask is clearly incorrect.
Note that this does NOT mean that CIDR is supported.
Host Transfer mode again defaults to off. This was needed because
VPN connections can't be established while HT Mode is on.
CoLinux support removed because of Windows 9X compatibility
issues. The same functionality will soon be available via an
external program.
Trace now shows up to 1500 bytes per entry.
Trace now has an edit control that displays status info and details
of a packet when an entry is double-clicked.
NAT32 Kernel now stops any pending web page loads before terminating.
The NAT32 Stop icon in the Taskbar now shows termination status as
a tooltip.
Chat feature enhanced.
Play command extended. Funtion keys: F5 - Play first entry in
radio.txt, F6 - Play "off" entry in radio.txt.
WM_MOUSEACTIVATE in winio was forcing the focus to the Console.
This caused text that was typed when web page input text was
selected to appear in the Console.
Splash screen removed as it served no useful purpose.
Only essential processing (files saved, registry updated) is now
done when a Windows Shutdown is taking place.
Prompt command modified. Usage: prompt [dir] | [time] | ["string"]
Setup.exe modified to detect if it is running from an uncompressed
Windows XP/2003 folder.
Command ns extended to support SRV queries.
Example: ns -s _sip._udp.netzquadrat.de
Returns: _sip._udp.netzquadrat.de:SRV 0 0 5060 sipdev.netzquadrat.de
Function dns_resolve extended to handle AAAA (Type 28) and SRV
(Type 33) responses.
Tcl echon command added. Same as echo, but no NL added.
Tcl socket gets() now calls sReadLine1 rather than sReadLine. Also,
the specified length is used rather than BUFSIZE (was 512).
Additional WM_MOUSEACTIVATE fix.
SMTP Server added.
POP3 Server added.
Command "ifn" was calling the "change" script without the needed ifn
argument.
Command "email" now has the following usage:
email subject file from to
Wintrace modified so that the display is filtered of any string
entered in the Filter list box.
NAT32 Consoles now support a single-line copy to clipboard. Select
characters on a line from left to right with the left mouse button
and then hit Enter.
Web Browser support extensively modified and now works with IE7.
Termination problem and Accelerator problem fixed.
Warning message for bad adapters with an NDIS3PKT entry now written
to file nat32.log.
File device support modified (pid issue).
New command: timed cmd [args]
The specified command is executed and the elapsed time (in sec) is
printed as a floating point number.
Configuration issues for bad adapters and Windows DHCP-configured
adapters modified.
26.08.2006 BUILD 1043
A few small problems with Host Transfer Mode fixed. Script files
"connect", "disc" and "startup" now turn Host Transfer Mode on/off.
Note: While Host Transfer Mode results in the Windows TCP/IP
stack no longer having unmodified Internet access, the
total protection against incoming malicious traffic more
than compensates for this.
If you ever need to turn off HT mode for an interface,
simply use the command: setht ifn off. But be aware that
your machine is vulnerable in this case, even if the
Windows Firewall is on.
29.07.2006 BUILD 1042 *** New NDIS3PKT.SYS ***
Rttimer was deleting an existing default route when a new
Internet interface came up. Function rtdel modified so that
if never deletes a default route. Function rtdeld is now used
for that purpose.
Function ns_update is now called to ensure that the DNS address
list changes whenever a connection goes up or down and when changes
occur on DHCP-configured interfaces.
Sbprintf and sbcprintf now use different buffers for each part.
TDI support modified. It now works on XP in non-admin mode. It
seems that XP adds the TCP DOS Device per default, whereas 2000
doesn't. Admin rights are required to add a DOS Device, so TDI
now first checks the TCP DOS Device and adds it only if needed.
When a removable device is added, the ETH and NIF tables are now
updated, even if no DHCP change took place. This is done in
ethwrite whenever the MAC address of the interface is 0-0-0-0-0-0.
Arp_in now ignores Gratuitous ARP requests. They were confusing
the Windows DHCP client, making it send a DHCP DECLINE if NAT32
responded to them.
Token.htm file removed as it is generated when needed.
New version of NDIS3PKT.SYS added.
Debug printf added so that unknown packets arriving at an Internet
interface are printed. Use dbgview from sysinternals.com to view
that output.
Colinux command added to start coLinux.
Usage: colinux help | hide | show | status | stop
14.06.2006 BUILD 1041
Major change: problem with TCP connections to one and the same
host using various interfaces when setis is true
fixed as follows:
For each new TCP connection, add a host-specific
route with a source address and ttl of 600 to the
routing table. All subsequent traffic from the
same client to the same server will then be routed
via the ifn in that route. Command setrr [on|off]
is used to turn this record route feature on or
off.
New commands:
setrr [on | off] # Turns the above record route feature
# on or off.
# Default off, but setis overrides it.
setmem [on | off] # Turns the display of memory usage
# and thread count in the status bar
# on or off (default off)
route delete all ifn # Delete all src routes for an ifn
Several cases of rtget not being followed by an rtfree found and
corrected.
PMFREE macro added to guard against a port mapping entry being
aged out of the table while IPPROC was still using it. This bug
was causing strange entries (0.0.0.0 src addr) to appear in the
table (experimental).
Rttimer modified to call sbcprintf, not sbprintf. For DHCP changes,
setmask is now called only once.
Several modifications in udpsend and local_out made to fix the
problem that UDP traffic to 127.0.0.1 was not working.
Snmpd and Wsnmpd now accept community strings of any length.
Kernel/start was not closing the IDENTD socket correctly on exit.
Ajax status pages added. See http://localhost:8080/settings.htm.
Sbprintf and its variants now use an array of global buffers.
06.06.2006 BUILD 1040
Major change: problem with multiple Internet connections fixed.
NI_PRIMARY and NI_SECONDARY dependencies removed.
ICMP mapping table increased from 20 to 64 entries.
ICMP mappping now ages out entries for non-responding hosts.
This means that the table can now only fill up if there are more
than 64 different pings to non-responding IP addresses in a 5 sec
interval. Entries for hosts that do respond are removed when the
response is received. If the table is ever full, a random entry
is reused.
Function ICMP_IN now frees the buffer if the send to the thread
in the ICMP ID field fails. The global ping_pid is no longer
needed. This means that concurrent pings from any NAT32 console
now work correctly.
Setup.exe modified. It now cleans up properly and opens Explorer
to allow the user to delete the NAT32 folder.
NAT32 now places a dynamic Run link in Start, Programs, NAT32E if
setup.exe was run. This allows users who don't use Desktop
shortcuts to start NAT32 via Start, Programs, NAT32E.
28.05.2006 BUILD 1039
WEB DLL no longer used. WEB support is now linked in from a
static library.
Bug in Alive thread fixed. This bug was causing memory depeletion.
DHCPD now logs to nat32.log.
DHCP Server dialog box now applies Debug and Active immediately
and receives change notifications while open.
Bug in HTTPD fixed: if TCP Port 8080 was in use, HTTPD didn't
signal the semaphore that the start command was waiting on.
Similar issue modifed in IDENTD.
CFOS support added. See: http://www.nat32.com/nat32e/htm/cfos.htm
Note that when NAT32 runs as a service, the cFos htm links do not
work because of ActiveX restrictions.
19.05.2006 BUILD 1038
*** NEW NDIS3PKT.SYS, NDIS3PKT.386, HELP.ZIP WEB5.DLL ***
Fixed a blocking issue that was preventing NAT32 from receiving
packets. Functions ip_in, ipgetp and ipsend now again communicate
via send/receive. The problem was that deadlocks could occur if
packets arrived at any interface faster than ipproc could handle
them. Ipgetp extracts exactly one packet per interface for each
received message and then waits for another message to arrive from
a netin thread. But if the bpool is ever depleted, no further
messages arrived because the netin threads were sleeping until
getbuf succeeded. All the netin threads now send a message to
ipproc whenever a packet arrives or getbuf fails.
Pingt command added. This command should be used with caution
because it pings the destination with no delays between pings.
Pingt waits up to 1 sec for the response and only reports packet
loss. A summary is printed on completion.
Ps command now also prints the semaphore a waiting thread is
blocking on.
Command chprio now has an expanded syntax:
chprio pid | net + | 0 | -
If net is specified, the priority of all the network threads (ip,
netin and netout) is modified. Raising the priority of the network
threads improves routing throughput at the expense of lower
responsiveness of other threads during periods of heavy network
traffic.
Chat dialog now always appends text to chat.txt when closed.
Command 'mux' modified:
mux [on | off | restart | [reset [all | ALL | port | ip]]]
If 'reset all' is specified, all NAT32 entries are cleared.
If 'reset ALL' is specified, all NAT32 and all Windows entries are
cleared.
File 'onexit' modified to invoke 'mux reset all'. This clears all
NAT32 mux table entries but leaves Windows entries unchanged.
New NDIS3PKT driver supports clearing of ALL entries from the MUX
Table, including those belonging to previous VMs.
New command added: ipnat [start|stop]
The ipnat command is used to start and stop the Windows 2000 and
higher IPNAT Service. In most cases, you should ensure that the
IPNAT Service is not running, as the driver modifies traffic and
interferes with the operation of NAT32.
Arpsend now writes debug info to nat32.log.
Ethcntl now saves previous mode when promiscuous mode is turned on.
The previous mode is restored when promiscuous mode is turned off.
Ethopen was setting mode instead of class in call to nd_driver_info.
Ethinit displays a warning message for all adapters that have no
NDIS3PKT binding.
Netin2k modified so that the RAS Server doesn't see traffic for
a RAS Client that we're not bound to.
Muxreset modified so that tcp_rst() ignores entries with flag = 0.
DNS Settings dialog now has a "Test using the Windows DNS cache"
checkbox. If set, DNS tests are done via WINSOCK. Note that results
may be cached and therefore not up to date.
NETIN2K modified to use netmask() for PPP clients and getmask()
for the PPP Server. This solves the problem that arises when the
RAS Server is using the same address Class as is some other private
interface (see the behaviour of netmask()).
Note that a fundamental problem with RAS is that it does not
understand subnetting. The safest way to configure NAT32 in this
case is to ALWAYS use a unique address class for RAS interfaces.
In other words, never use the same address class for RAS as some
other private interface is using.
Command rdial and function dodial modified so that no dialing takes
place if a dial is currently in progress.
Command rdial no longer prompts if no NAT32 PPP client interface is
available. The dial always proceeds in this case but the connect
script will not run and the Hangup toolbar icon will not show a
checkmark against the connection name.
Note that if two or more connections are up and only one of them
is bound to a NAT32 interface, when the bound connection is closed
its NAT32 interface will automatically bind to one of the other
open connections and the connect script for the new connection will
run. This behaviour is by design.
But note that the DISC script is not run for the connection that
went down. This will be fixed in the next version of this build.
Major change: Setting an access type in NDIS3PKT enables reception
per default. As this is done in ethopen(), NAT32 was
picking up traffic it couldn't yet handle, resulting
in unpredictable behaviour. The fix was to disable
the receivers in ethopen() and to enable them as
needed at the very end of netstart().
New command: setrcv ifn [on | off | bcast]
Sets the NDIS3PKT receiver for the unit of the specified interface
on (directed), off or bcast (directed + broadcast).
When Windows IP Forwarding is on, clearing a MUX table entry caused
the MSTCP to react to the TCP RST segment in undesirable ways. The
fix was to make send_rst_as_tcp use fake MAC addresses of all 0.
Winrt command now sets the global winipf and nbprop flags. If IP
Forwarding is turned on, NetBios propagation will be turned off.
No NetBios propagation will be done if winipf is on, even if nbprop
is on. Note that if Windows IP Forwarding is turned on outside of
NAT32, the winipf flag is not updated unless the winrt or nb command
is executed. This is because the IP Forwarding value is stored in
the Registry and we don't want to check it each time we send a
packet. One way of automating this would be to register for Windows
network change notifications, but 9X platforms don't support that.
Function nd_driver_info no longer modifies a global nd_info
variable. It has an additional argument into which the info value
is written.
Netstart modified so that nd_set_rcv_mode works reliably on XP SP2.
A sleep(100) was needed after every call to ethcntl().
Note that a new NDIS3PKT.SYS is now available that
overcomes this problem, making the sleeps unnecessary.
Winio modified so that the Console minimize button again works.
Ipproc modified so that flow processing is not done for TCP packets
destined for a private address behind a private gateway.
Winrt off command now also turns off IPEnableRouter for 2K and
higher platforms. Windows must be rebooted in this case.
Netstart modified so that hginit is called after NDIS3PKT
receivers are enabled.
Netstart no longer adds a network-specific route if a gateway is
specified on a private LAN interface. This caused problems with
private RAS connections. The user should add the needed subnet-
specific route manually (route add command in user.txt).
New weather.htm, xml.htm, data.js.
Ping now checks the ARP cache and prints a firewalled message if
the machine exists on the local network but is not responding.
Httpd.acl file corrected to allow 127.0.0.1 access (not 128.0.0.1).
Rdial now calls enum_connections so that it blocks until any
pending dial or hangup operation is complete.
Httpd now writes Access Refused messages to nat32.log.
DNS Settings dialog box now has a "Discover" button. This makes
NAT32 do a DNS test via Winsock. The current DNS address is
updated on success.
WEB4.DLL now handles the TAB key correctly.
Demo version now runs for 2 hours.
DHCPD Settings dialog box implemented.
Ftp command now uses Passive Mode.
Warning if TerminateThread is ever called.
Static buffer now passed to PostMessage in sbprintf.
Current memory usage and thread count now posted to status bar.
WEB5.DLL now sends a WM_APP to NAT32 for app:xxxx URLs. The full
URL is previously placed in the pw->command buffer. This will be
used in the next build for interrogating and modifying NAT32
settings.
24.02.2006 BUILD 1037 *** NEW HELP.ZIP ***
Route addi command added: allows a route for the IP address of a
specific interface to be added.
Windows 98ME detection added. Used only in winrt command.
DHCPD, dgwrite, udpsend and ipproc modified to support UDP checksums
for DHCPD.
DHCPD modified to comply 100% with Windows 2000.
Default NAT32 private IP address is now 100 + 4'th byte of the
Windows network mask. If this value is less than or equal to that
mask byte, the value of the 4'th mask byte + 2 is used instead.
Note that single-byte arithemetic is used.
Shell bug fixed: winwrite is no longer being called to output a
prompt of 0 bytes length.
Win command modified: lockup issue fixed.
Several HTTPD security vulnerabilities fixed.
Chat dialog now has a Save button.
Mfopen now honours "a" (append) by seeking to EOF on open.
The Admin Host Table is now 1024 entries long. Searching it was
timed and the worst case took 16 micro seconds on an 800 MHz host.
HTTPD now always requests a password when password checking is on.
For the DEMO version, the default password is the build number.
It can be changed and viewed via the 'password' command.
Menu item Config, Password added. The pcheck [on | off] command
can also be used to turn password checking on or off.
The registered version defaults to password checking on. The
password cannot be modified.
Command "hide" resets an access flag so that password entry is
required for Console and Quick Dialog access.
If NAT32 is totally hidden, starting it via the Desktop shortcut
will display the System Tray icon. To gain further access, the
password must be entered if password checking is on.
Dialer modified so that no dial attempts are made while a dial
is in progress.
Program smail.exe added. Sends a specified file such as info.txt
directly to NAT32 support via the MAPI dll. Note that this depends
on a correctly installed and configured Outlook or Exchange Client.
Function hExec now also redirects STDIN.
Function execr (win) now checks the dev and calls either pkbd or
just kills the iread thread.
HSTAT command now shows State and Access Mode strings rather than
numbers.
Wintcp command added to allow Windows TCP connections to be viewed.
Muxreset modified to remove connected SYSTEM_VM entries that aren't
in the Windows TCP Connection Table.
23.01.2006 BUILD 1036 *** NEW WEB3 Dll, NEW connect and disc scripts ***
ICMP FNADF packets contained the original IP header in host order
instead of in net order. In addition, the original IP header had
already had its TTL field decremented, hence its checksum had to be
recalculated. Also, Windows 2000 sometimes ignores correct ICMP
FNADF packets and so the long packet causing it is fragmented
anyway. If Windows honours the ICMP FNADF packet, only the first
packet is fragmented, all packets thereafter will be of the correct
length.
This bug will have caused problems for DSL and Modem users.
Chat dialog added.
MAC Address recognition added in registered version.
Bugfix: double-clicking the NDISWANIP Ras Server entry in the
Interface Selection dialog caused a GPF.
Drag and Drop added for NAT32 Console, Web and Edit windows.
Editor accelerators added, request headers viewer added.
WEB3 Dll now supports the following accelerators:
Ctrl-C Copy selection to Clipboard
Ctrl-F Open the Find dialog
Ctrl-G Enter a URL (supports wild-cards)
Ctrl-H Show Homepage
Ctrl-V Paste from Clipboard
Ctrl-S View page source
ESCAPE Stop current load
F2 Switch window
F3 Display Find dialog
F5 Refresh
F10 Display Browser Settings dialog
Alt-Left Go back
Alt-Right Go forward
HTTPD password checking bug fixed.
Mux command enhanced so that entries can be deleted by IP address.
This is useful when DUN Connections go down because all entries
with the old local IP address can be deleted (see disc script).
Rttimer now runs the change, connect and disc scripts as follows:
change ifn new_ip
connect ifn new_ip
disc ifn old_ip
Shell now supports $ substitution when script files are executed
with arguments. Within the script, commands can access the first
argument as $1, the second argument as $2 and so on.
The change, connect and disc script have been modified to use this
feature. In particular, the disc script now calls mux reset with
the old IP address as follows:
mux reset $3
The above command will reset all entries for the specifed old_ip,
which is $3 (the third arument) in the disc script.
10.12.2005 BUILD 1035 *** New WEB3.DLL ***
MUX Reset now no longer crashes WANARP.SYS in cases where the
RAS Server is running but no connection is or was up.
Admin now filters correctly.
RAS Server configuration modified.
RadioLAN support modified. To set the MAC DST Address, use command:
setrl ifn 00:A0:D4:00:00:01
This turns ARP mode off for the specified interface and sets the
needed MAC DST address for RadioLAN adapters.
Command: setrl ifn off
turns RadioLAN mode off and ARP mode on.
Portmapping PMTTL_TCP_SHORT now 30 sec.
Browser scripts modified to support Google, Yahoo and All The Web
wildcard image searches.
Web3.dll now prompts the user before a popup window is created.
The displayed URL is not always accurate though.
Termination icon tooltip now indicates that termination may take up
to one minute. This delay occurs in FreeLibrary(web_dll) if the dll
created an InternetExplorer process.
NDIS3PKT mux table now no longer cleared of unconnected entries
unless they have been in the table for longer than the muxreset
period (default 1 minute). New muxp command added that displays
entries that will be reset next time muxreset runs.
Function isPrivate modified so that it returns TRUE for all private
IP addresses, except if used on an Internet-connected ifn.
Command mstcp now supports processing of inbound MSTCP traffic on a
single interface. The Action Mapping mechanism can be used to carry
out actions when TCP port 1723 SYN and FIN segments arrive. For
example, the following amap entry will add a host-specific route to
the Windows Routing Table when a SYN arrives and delete the route
when a FIN arrives:
amap add 1723 "win route add $SRCIP mask 255.255.255.255 $GW" "win route delete $SRCIP"
17.11.2005 BUILD 1034 *** New WEB3.DLL ***
Ethwrite no longer clears bytes in short frames (experimental).
Ndis3pkt functions now all use MAXSIZE buffers (4096).
All NDIS3PKT functions renamed.
Number of supported NDISWANIP interfaces now 16 (was 8).
Cron command now handles killed CRON threads correctly.
Web3.dll modified so that pw->title is limited to 64 bytes.
Editor modified so that left mouse button up loads a URL if
nothing is selected. Tab key inserts 4 spaces.
Quick dialog box now displays Throughput Mode icon
Sleep(0) removed in ipsend and ip_in.
GPF when a NAT32 taskbar button was right-clicked fixed.
Admin now ignores all local packets and all packets not from
a private interface.
Httpd now handles filenames with spaces correctly,
Favorites viewer now preserves current directory.
IPproc was checking for the default route without first checking
for a direct route. This was making TCP connections to hosts on
the network of the gateway fail. Rtgeti is now first called for
a specific destination and then for 0.0.0.0. This problem only
occurred for flows (TCP), not for other traffic.
New value TcpNumConnections added to Interface Selection dialog.
This is the Windows maximum number of TCP connections and should
be set to 128 on NT and higher platforms. Otherwise, it defaults
to no limit on NT and higher (100 on 9X) resulting in a very large
NDIS3PKT MUX Table in cases where P2P filesharing is running.
Command settcp can be used to view or alter this variable on all
platforms (see settp.htm for details).
HTTPD now understands: GET /file?name=value
This is useful in forms when a button click is to fetch a specific
file.
Web Browser now understands F2 (switch modes) and F3 (find in web
page).
RAS Server IP now picked up from Registry for 2K and higher via
function GetRasServerIp().
RAS Server interface is now hard-coded on 2K and higher to be the
first NDISWANIP interface. The Interface Configuration dialog
allows that and only that interface to be the RAS Server.
Ethwrite now discards packets for a PPP interface if no connection
is in place.
Rttimer now no longer modifies routes as RAS Server connections
come and go.
RAS Phonebook now defaults to CSIDL_COMMON_APPDATA. Applies to
the NAT32 Service and App.
Service on 2K and higher now displays Network Connections via
WinExec of "control.exe netconnections".
Added Spooler dependency to service.exe to ensure that NAT32
doesn't start too early. But this is not essential so it will
be removed in the next build.
RadioLAN support added (experimental). To set the MAC DST Address,
use command: setrl ifn 00:A0:D4:00:00:01
This sets RadioLAN mode and the needed DST address.
Command: setrl ifn off
turns RadioLAN mode off for the specified interface.
02.10.2005 BUILD 1033 *** New WEB3.DLL *** *** New HELP.ZIP ***
WEB3.DLL replaces WEB2.DLL.
New Winsock mode requires no registration.
Audio capture added. This feature will soon be enhanced to
allow captured audio to be streamed to an Airport Express.
Audio output added.
App dialog box enhanced, app.htm file updated.
01.09.2005 BUILD 1032 *** New WEB2.DLL *** *** New HELP.ZIP ***
Presence of RAS checked with InternetGetConnectedState.
PPP support modified: no default route added for Internet
interfaces if Windows doesn't have one.
New WEB2.DLL supports AutoComplete.
Focus issues in embedded browsers fixed.
Clipboard copy issue fixed.
Various edit controls now support AutoComplete.
Web window close now done on shutdown, ICON_CLOSE deleted later.
Windows 9X bug fixed.
Windows 95 support modified.
IPHLPAPI Dll loaded at runtime.
HTTPD now multithreaded.
Admin modified. Admin now also available in DEMO mode.
Routing mode modified.
Loopback mode modified.
Editor modified (incorrect file length on save).
Ppmap command now opens a "dummy" Windows socket for UDP mappings.
This stops Windows from sending ICMP Destination Unreachable
packets in response to incoming UDP traffic.
Added Find in web page to web2.dll. Added Edit, Find... menu item.
Fixed shutdown hang when Favorites dialog was open.
Fixed ARP problem: NAT32 was responding to all ARP requests.
Registration pages modified. The Registration Token can now be
displayed in a small pop-up window if NAT32 is running at the time
of registration.
03.06.2005 BUILD 1031
Admin modified:
All packet types now handled
Admin now examines outgoing and incoming packets on Internet
interfaces.
Performance problem fixed.
No entry added to htab when MUX Resets are done.
DUN Server modified: closing the DUN Dialog box while a Stop was
pending caused buzzing.
RRAS on Windows Server 2000 and 2003 and higher may turn on RRAS
IPNAT. This causes NDIS3PKT to see packets AFTER they have been
modified by IPNAT. The MAC source address of the packet is correct,
but the IP source address is set to the address of IPNAT's Internet
interface. This problem will be corrected in Build 1032.
Versionx command added. It shows more detailed platform info.
Traffic isolation added (experimental)
20.05.2005 BUILD 1030 *** New HELP.ZIP ***
Windows Server 2003 SP1 support added.
Admin bandwidth limits now applied by discarding excess packets
instead of just delaying them.
Quick Usage: quick [t|T|d|D|0|1|2]
t = Hide throughput bar
T = Show throughput bar
d = Hide debug info
D = Show debug info
0|1|2 = Show I/O or Input or Output (Red, Green, Blue)
Setf command modified. See setf.htm for details.
Kernel worker thread mechanism added.
Web user interface modified, Editor change directory bug fixed.
Shell now understands URLs entered directly and displays them via
the urlw command.
Format long and time bugfix.
New Registration Terms and Conditions. The main change is that
you can now run the full version of NAT32 on up to 8 computers
at your site for the cost of one Support Token ($5.00) per
additional computer.
Service settings deleted each time NAT32 is configured.
Editor menu item Save added.
Bug in x_help fixed (files not closed).
Alive thread now sends NAT32 UDP packets, not Winsock UDP packets.
Throttle now works for UDP and TCP packets.
System Tray icon now red when no Internet connectivity available.
Clipboard device added. Command cb added. See cb.htm for details.
Shell command line paste bug fixed. Clipboard size checked.
Icon problem fixed.
29.03.2005 BUILD 1029
Bug in rtget fixed.
Bug in udpecho fixed (last byte of packet was being set to 0).
Bug in ICMP Redirect fixed (ttl now 1).
Builtin editor for URL lists added (experimental).
Several minor changes.
20.03.2005 BUILD 1028 *** New NDIS3PKT.SYS ***
*** New WEB2.DLL ***
Admin registry bug fixed.
Admin can now be used to throttle traffic from a private interface
to a private Internet-connected router. This feature allows NAT32
to be used to throttle Internet traffic to/from any private machine.
See howto.htm for full details.
Admin default bandwidth of 20,000 bps added.
Admin default throttle of 2 packets per second added.
New NDIS3PKT.SYS supports up to 4096 MUX Table entries.
Shutdown code modified.
DUN support for 9X platforms modified.
Mux Reset modified so that RSTs are not sent if routing_mode is on.
IP Filter mechanism extended to allow packet transmission delay.
HTTPD now started with: start httpd port
Password checking added for Private and Public access modes.
Getbuf now initialises the buffer to 0 instead of 0xff.
Sets and setsr modify the routing table only if netup is 1.
Netstart calls rtinit explicitly, all routing funcs print an error
if they are ever called prior to initialisation.
Help command modified. Related commands with common help pages now
supported. Settings viewer modified.
Simple file editor added.
04.03.2005 BUILD 1027
USB memory stick support for registered version.
PPMAP mechanism fixed, APM entries were not being deleted.
Shell #! handling modified.
20.02.2005 BUILD 1026
Error in MuxReset command fixed. Connections belonging to the
SYSTEM VM were being reset. This was causing local TCP connections
to be closed every 5 minutes. This problem only occurs if Windows
IP Routing is on.
Priority boost for IP and Netin threads removed. This was causing
starvation in other threads during prolonged heavy load.
Functions ip_in, ipgetp and ipsend now use psend/preceive instead
of send/receive. This prevents a deadlock if packets arrive at any
interface faster than ipproc can handle them. Ipgetp was extracting
exactly one packet per interface and then waiting for a new
message to be sent. But if the bpool was ever depleted, no further
messages were being sent.
Lockup during tracing under heavy load conditions fixed.
15.02.2005 BUILD 1025
GPF in ETHWRITE fixed.
RAS Server support extended.
Interface Selection dialog now warns if an unconnected PPP interface
is selected. In this case, dial the connection and then refresh the
dialog box. Note that the RAS Server interface can only be detected
if a dial-in connection had already been established. Generally, you
should only use the first NDISWANIP as a RAS Server interface, not
as a dial-out interface.
Bugfix for 9X platforms: The NAT32 Service was blocking in ShowIcon.
Bugfix for 2000 and higher: If ICS is on, handle this in NifUpdate.
Bugfix for NT4 and higher: Web functionality now works when NAT32
runs as a service. Still unexplained behaviour when WM_CLOSE is sent
to pw->hWeb (in x_webc and winclose), but not sending it seems to
have no negative effects.
Setup program now adds a Configure Icon to the Desktop. This allows
a configuration run to be started easily after a reboot.
Mousewheel support added to the NAT32 Console.
Router command now determines the registered IP Address of an
external NAT Router by fetching http://www.nat32.com/php/myip.php.
24.01.2005 BUILD 1024 ** new help.zip **
MTU on W2K and higher was not being set when connections came up.
Above fix modified, this now works correctly. RTTIMER now continues
checking until mask, speed and mtu have been set. Netcfg MTU and
SPEED settings are now override values. Mask problem fixed.
Major Port Mapping change: NATCHECK Version 3 compatibility added.
New command added: loopback [on | off]
Turns loopback mode on or off.
Broken ipmapa command fixed.
Problem with packet cycles fixed. IPPROC was cycling UDP broadcasts
from ifn x to ifn 0. The loopback code was forwarding packets for
which no match was found.
Fixed 'ndis3' command (was faulting if no args specified).
RAS Support enhanced. Please see the following link for details:
http://www.nat32.com/nat32e/htm/dialer.htm
Note that NAT32 now uses the RAS Phonebook of the account under
which it is running. The only visible DUN Connections will be those
contained in that Phonebook. To make other Connections accessible,
run the command: "setpbkf -d".
!!---> The NAT32 Service dialog box now allows the specification of an
!!---> Account under which the service is to run. When running NAT32 as a
!!---> service on XP and higher, ALWAYS use the SYSTEM account option.
The "Allow Desktop interaction" option is now handled correctly.
Sockets now closed correctly before the service removes itself.
New commands:
logon [account password [domain]]
ssname [account password [domain]]
setpbkf ["name" | -d]
Fixed GPF on double-click of adapters in Interface Selection dialog.
Fixed mibupd bug (mibcfg table now contains only entries with valid
IP address and no linkage to wincfg or nif entries). Note that mibcfg
entries are always complete, i.e. they do not appear until a
connection is stable.
02.01.2005 BUILD 1023 ** new help.zip **
Problem of NAT32 Service crashing on exit fixed. A web browser is
no longer embedded if the NAT32 service is running under the
SYSTEM Account. For full functionality, always configure the NAT32
Service to run under a specified user account.
Favorites added to Web window.
Problem with DHCP-configured Private interfaces fixed.
25.12.2004 BUILD 1022 ** new help.zip, web2.dll, dhcpd.ini **
Tcl problem fixed.
Browser device added.
Browser window now displays Internet Explorer Typed URLs. The
URLs are updated each time user switches to a Web window.
-----> New WEB DLL: web2.dll.
Wake command added for Wake On LAN.
Arpt command added for Wake on ARP.
Ethernet address format changed throughout. New format is:
xx-xx-xx-xx-xx-xx
-----> NOTE: change MAC addresses in DHCPD.INI to use the new format.
UDPECHO (for DUNSTAT) modified.
Net.minifs now initialized in netstart.
Url and Play commands now also work for an external browser.
Muxreset daemon now started in "startup". This will remove zombie
entries from the NDIS3PKT Mux Table every 5 minutes (adjustable).
07.12.2004 BUILD 1021 ** new help.zip **
Large buffer support added. Test version only released.
03.12.2004 BUILD 1020 ** new help.zip **
Problem with nif settings for connections already established when
NAT32 starts fixed.
Setis algorithm 3 (select an interface at random) added.
Routes for specific protocols and port numbers now supported.
This allows routes to specific gateways for specific protocols and
port ranges to be added to the NAT32 routing table. Portless
protocols such as ICMP and others are also supported.
A few small changes in Quick dialog and RAS Server settings.
Telnet command modified: now turns off local echo.
Winio modified: now honors wtty.iecho setting.
Uptime command added.
Window close code modified.
Ipcfg command fixed for NT and higher.
17.11.2004 BUILD 1019 ** new help.zip **
NDISWANIP runtime binding for Windows 2K and higher implemented.
Notes:
1. If any DUN interface is already connected when NAT32 starts, the
CONNECT file is not executed. The DISC file is executed if NAT32
is using the connection and it goes down while NAT32 is running.
2. Connected interfaces are never modified in any way, even if the
netcfg file specifies a connection other than the one currently
in use.
3. Only as many connections as there are NAT32 PPP Client interfaces
can be bound at runtime.
4. Further details can be found in file:
http://www.nat32.com/nat32e/htm/dialer.htm
DUN support for NT4 modified. Problem with connection state detection
fixed.
DHCP detection modified for W2000 and higher.
NT4 Note: Only new addresses on DHCP lease renewal are detected.
If the new address equals the old address, the CHANGE script is not
executed. When an address is released, the TCP/IP Parameters Key does
not change, and so RegMon notices nothing. NT4 does modify the
adapter-specific key in the Registry in this case, but RegMon isn't
watching that key. This means that, after a release, NAT32 will keep
on using the old address. On renewal, NAT32 will pick up the new
address, but only if it differs from the previous one.
9X Note: DHCP releases and renewals are noticed. Windows 98 disables
networking for up to around 30 secs after a DHCP lease has been
renewed.
Permanent Port Mapping modified: pmap table entry no longer added
for incoming mapped connections. Target name or IP now supported.
On Windows 2000 and higher, the order of NDIS3PKT devices is no
longer critical.
03.11.2004 BUILD 1018 ** new help.zip **
Problem with inetmib1.dll fixed.
Problem with NAT32 Service desktop interaction fixed.
Service Description added to Registry.
Shell cs command modified. All CS primitives now check the
csentry.state variable.
Command added: hosts [refresh]
Used to view or update the table of Windows hosts on all networks.
New whost daemon added. Start with "start whostd". This daemon
checks the Windows Network Neighborhood at one-minute intervals.
This feature can be used to keep track of how many private machines
are up.
The existing host daemon has been modified to write entries to the
table of Windows hosts. It monitors incoming UDP Port 137 traffic
on all NAT32 interfaces. It adds only the IP address and Ifn to
the table, it does not add names.
TCP Keepalive mechanism (setka [1 | 0] made more aggressive.
When keepalive is on, all TCP connections are now probed (towards
the local end only) at one-minute intervals. This will force stale
TCP mappings out of the NAT32 Port Mapping table, and remove
NDIS3PKT Mux Table entries as well.
Unmap_port now handles incoming RST segments correctly.
TCP FIN segments from server to client now set the entry's TTL to
10 secs. When that segment is forwarded to the client on the private
LAN, its pmap entry is deleted.
Crontab modified to clear partial connection and 445 entries from
the NDIS3PKT Mux Table every minute.
NDIS3PKT now opens fewer handles.
NDISWANIP interface detection modified.
20.10.2004 BUILD 1017 ** new help.zip **
NDISWANIP Interface selection modified (Windows 2000 and higher).
RegMon debug option added.
WanCfg command added.
WinCfg command ppp option added.
All printf variants now catch exceptions. If you ever see a NAT32
Kernel Exception dialog box, please send the complete error text
to NAT32.COM via this URL: http://www.nat32.com/message.htm.
Various minor changes.
16.10.2004 BUILD 1016 ** new help.zip **
ICS/ICF bug fixed.
Formatted time and large number support added.
Shell redirection now opens output files in binary mode.
Tcl 'file size' command fixed.
Tcl 'glob */' command fixed.
Various minor changes.
NDISWANIP Interface changes handled.
08.10.2004 BUILD 1015 ** new help.zip **
ICF debug code added.
Ask user before erasing log files.
Dial Dlg now no longer blocks during dial or hangup.
State variable added so that kernel calls are not done prematurely
or after the kernel has been shut down.
Window appearance flattened (except comboboxes).
Tab key now works correctly in most windows.
ShellExecute of help pages added.
Webf command added: displays a file in Web Window or Web Browser.
Console placement added.
Screen buffer size can be specified in file: scrini (rows:cols).
All placement variables in the Registry are now cleared on each
configuration run.
Fixed problem with hangups done from the Quick dialog, which were
blocking the dialog until completion.
30.09.2004 BUILD 1014
All console windows now behave differently. Press Page Down to
scroll the cursor into view. More details are below.
Private server mode modified.
Dial-Up Networking support modified. For full details, see:
http://www.nat32.com/nat32e/htm/dialer.htm
The PPPoE setting is now used only for MTU-related issues and for
setting the NDIS3PKT driver info variable. Changes in winute,
netstart and rttimer made.
GPF in admin command fixed.
Private DHCP-configured interfaces now handled correctly.
DHCPD command extended:
Usage: dhcpd [ifn [on | off | d | D | offset]]
Offset denotes a number between 1 and 64 that is added to the
allocated IP address. Example: if the DHCPD interface has the IP
address 192.168.1.100, then the first allocated address is
192.168.1.100 + offset.
For Private LANs with a gateway, a default route pointing to that
gateway is no longer added. To reach machines behind that gateway,
use the route add command to add one or more network-specific
routes to the NAT32 Routing Table.
Debug command added. Usage: debug [tid | name on | off]
Enables per thread debug ouput to a debug viewer such as
dbgview.exe from www.sysinternals.com.
Because all threads inherit the debug setting of their parent,
to enable debug output for any shell command, simply turn debug
on for the shell that runs the command.
A thread ID of 0 denotes the current thread.
New window manipulation and sizing commands added:
Command 'hide' modified.
Usage: hide [icon | noicon] [name | dev]
Command 'show' modified.
Usage: show [max | min | default | restore] [name | dev]
Command 'size' added.
Usage: size [max | min | col:row] [name | dev]
Window screen buffer size now set to 128 columns and 100 rows.
All windows now scroll within that screen buffer.
Filename length checked in namopen.
Read Me Help menu item added.
IPHLPAPI error messages now written to NAT32.LOG.
Internet Radio support added.
On W2000 and higher, dynamic binding of NDISWANIP interfaces to
NAT32 Interfaces now supported.
Windows ICS/ICF support updated.
Window placement bug fixed.
MTU handling for DUN connections modified.
Netstart: default route for each Internet interface now added.
13.07.2004 BUILD 1013
Various small modifications and improvements.
HT Mode modified.
Private DUN interfaces now supported.
20.06.2004 BUILD 1012
National laguage dependency fixed in 98 configuration code.
Command setht modified:
A Windows default route to NAT32's IP now only added once.
That route now only deleted when no longer needed.
Now only deletes an existing Windows default route.
'Setht off' turns off HT mode for all interfaces. This is
run in 'onexit' when NAT32 terminates.
Host Transfer mode now also works for VPN Connections.
Rttimer now passes the script name and the interface number to
the 'connect' and 'disc' scripts.
To run a custom TCL script on connect or disconnect, use a command
like #!xyz at the end of your connect or disc script, where 'xyz'
is the name of your script. It will receive 2 args:
the string "connect" or "disc" and the current interface number.
17.06.2004 BUILD 1011
Regmon modfied: when adapter details change, regmon flags all ifns
as modified and waits for a message from rttimer for each change
it has handled. This fixes the problem that regmon was sometimes
waiting for messages which were never sent.
14.06.2004 BUILD 1010
Http command modified to take a 'wide' argument so that a page
returned in a wide character set is translated to ANSI.
Ifn command now always displays ni_diag.
Ipproc modified to update ni_diag before dialing.
RAS routines modified to support up to 64 connections.
Udpecho modified: temp string length increased.
Udpecho modified: len returned by read checked.
Udpecho modified: check that connect verb is at start of packet.
Setpmd [on | off] command added. Turns Port Map Debugging on or
off. When on, warnings about full port mapping tables are printed.
Platform detection code modified.
Default connection detection fixed for XP and higher. A default
connection must "allow all users to use this connection".
Autodial fixed for XP and higher.
Config log checkbox added to Welcome Help dialog.
07.06.2004 BUILD 1009
Help command fixed so that it now fetches current help pages.
05.06.2004 BUILD 1008
Host Transfer mode added. This new feature allows Windows apps on
the NAT32 computer to communicate through NAT32 instead of using
the Internet connection(s) directly. This gives those apps all the
benefits which NAT32 offers, such as Bandwidth Aggregation,
Filtering, Tracing and protection against unsolicited incoming
traffic.
Set Host Transfer (setht host_ifn [0|private_ifn]) command added.
Add this command to your 'startup' file to turn this feature on.
Add the command: setht host_ifn 0
to your 'onexit' file to restore direct Windows Internet access
when NAT32 exits.
Alternatively, if your Internet Connection is a DUN connection,
add the setht commands to the 'connect' and 'disc' files.
Note: Host Transfer mode does NOT WORK with VPN Connections in
this release.
Windows Autodial and Hangup code modified.
Best Match UDP unmapping mechanism modified (pm_partial).
Setb command added to Best Match mapping to be turned on or off.
Support for TFTP added: Outgoing UDP packets to port 69 record an
ambiguous destination port in the pmtab. The source port number
of the incoming response is then recorded in pmtab[i].dp. This now
also works for shared VPN connections.
DNS Detection modified in netin1.
Promiscuous mode discard condition modified in netin1.
Rttimer modified so that ni_ivalid and ni_svalid are cleared on
DISC. This was causing several problems, including that the subnet
route was not removed for DUN connections and that routing failed
after a VPN connection to a private server was disconnected.
Gmap add and delete modified so that mapping incoming VPN
connections to a private VPN Server now works after the 1007
modification.
20.05.2004 BUILD 1007
Support for multiple VPNs to same VPN Server added.
Service on 9X Platforms now waits until the Desktop is up
so that autodials don't occur before IE is running.
Admin modified to use 64-bit integers.
Admin registry location now HKLM\Software\NAT Software\NAT32E
16.05.2004 BUILD 1006
Window placement bug fixed.
Placement for ADMIN, APP, MONITOR and TRACE windows added.
15.05.2004 BUILD 1005
Bug in Build 1004 fixed (NAT32's private IP address was wrong).
14.05.2004 BUILD 1004
Problem of bad gateway being added fixed.
DirecPC checkbox added. Set this checkbox if NAT32 could not
find a Gateway at config time.
US Robotics Cable Modem users may also need to set this checkbox
if no gateway could be found.
12.05.2004 BUILD 1003
Problem with getip and get_ip fixed.
MibUpd no longer called before the nifs are up.
DirecPC support may now require manual setup.
AutoDialing now no longer takes place if some other connection
is already up.
Window placement saved in registry (admin, trace, monitor).
25.04.2004 BUILD 1002
Service Control Manager problem fixed.
Service detection code fixed.
Configuration problem for PPPoE adadpters fixed.
18.04.2004 BUILD 1001
New registration method implemented.
13.04.2004 BUILD 1000
This build of NAT32 Version 1.8 was generated from Build 1074 of
NAT32 Version 1.7.
--------------------------------------------------------------------------