NetMap: program for supervision of IP connections Version 1.0.12 public The application manual Devoted to my dad. Contents ======== 1. Introduction 1.1. Requirements 1.2. Technical parameters 1.3. Software license 1.4. Disclaimer 1.5. Third party components 1.6. Technical support 1.7. Contact information 1.8. Acknowledgements 2. Installation 2.1. Contents of the program folder 2.2. Peculiarities of work under Windows Vista 2.3. Plugins and event handlers 2.3.1. Ping-like log files 2.3.2. Mail messages 2.3.3. Old-style error handling 3. Instruction on running the program 3.1. History files 3.2. Command line 3.3. Starting program as a service 4. Guidelines for use the program 4.1. The main window 4.1.1. The host list pane 4.1.2. Request status indicators 4.1.3. Mail status indicators 4.1.4. The history pane 4.1.5. Options 4.1.6. Controls 4.2. Menu and toolbar 4.3. The status bar 4.4. Ping options 4.5. Mail options 4.6. The print preview window 4.7. The tray icon 5. Deinstallation Appendix 1. Terms Appendix 2. Error codes Appendix 3. Ping data size Appendix 4. Format of history file Appendix 5. Language codes for auto-select Appendix 6. Known issues Appendix 7. What's new 1. Introduction =============== Hey, my name is Raul. I live in Ekaterinburg, modern city which is hidden between primeval forests and aged mountains of Urals. I'd written NetMap in year 2000 for my own purposes. It helps me to look after network of class C. In year 2002 NetMap became public available, so you can try it to your own requirements. Enjoy! NetMap sends ICMP echo (ping) requests to selected hosts and stores history of their echo responses, allowing to view it as either graphic or text report, to print it and to accumulate it for the archiving purposes. Functions of program can be extended thereby external batch files (plugins). Using fuzzy logic, NetMap determines the worst responding host and indicates its status at the tray area. If host does not respond to repeated requests, NetMap can invoke external batch file to provide for a variety of custom actions. 1.1. Requirements ----------------- - 100% IBM-compatible Intel Pentium(R) computer. - VGA compatible display. - Microsoft Windows 9x/Me/NT4/2000/XP/2003/Vista with TCP/IP stack, either 32 or 64 bit versions or Linux (partial functionality under Wine). - 16M of RAM memory (min). - 1600K of free HDD space to install the software. NOTE: For proper functionality under Windows 95/NT4 it is recommended to install Internet Explorer 3.0 or higher. To enable tray icon functionality, install Internet Explorer 4.0 or higher with Shell Integration. 1.2. Technical parameters ------------------------- - Maximal number of hosts to request > 100 - Maximal number of hosts to request simultaneously: 1 - Number of hosts to view simultaneously: 1-70 - Adjustable interval between consecutive requests: 100..600000 ms - Adjustable timeout to wait for response: 0..600000 ms (actual timeout may be greater due to discreteness of timer and multitasking delays). - Fixed resolution for graphic report: 1 min 1.3. Software license --------------------- The following copyright statement describes authorship of the software. (C) Copyright 2000-2008 by Raul N. Shakirov, IMach of RAS (UB). Author ensures that he has secured all necessary consents and approvals to use third party intellectual property rights for this software. Permission has been granted to use, copy and distribute this software without fee, including commercial applications, provided that this notice is present in user-accessible supporting documentation. This does not affect your ownership of the derived work itself, and the intent is to assure proper credit for the author of this software, not to interfere with your productive use of this software. "Derived works" includes all programs that utilize this software. Credit must be given in user-accessible documentation. Author confirms that this software does not contain parts, which are intended for the purposes, others than central purpose announced in this software documentation. 1.4. Disclaimer --------------- THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTY OF ANY KIND IS EXPRESSED OR IMPLIED. YOU USE AT YOUR OWN RISK. THE AUTHOR WILL NOT BE LIABLE FOR DATA LOSS, DAMAGES, LOSS OF PROFITS OR ANY OTHER KIND OF LOSS WHILE USING OR MISUSING THIS SOFTWARE. 1.5. Third party components --------------------------- Author have used the following third party sources and components: 1) RFC 790 Assigned numbers RFC 791 Internet protocol RFC 792 Internet control message protocol RFC 1034 Domain names - concepts and facilities RFC 1349 Type of Service in the Internet Protocol Suite Ref. http://www.ietf.org/rfc Public available standards. 2) Microsoft(R) Visual C++ 6.0 Compiler (Enterprise Edition). Licensed to Institute of Engineering Science of RAS (UB). 3) Sources from MSDN Subscriptions Library, April 2001 Licensed to Institute of Engineering Science of RAS (UB). 4) InstallShield(R) for Microsoft Visual C++ 6. Licensed to Institute of Engineering Science of RAS (UB). 5) InstallShield PackageForTheWeb(R) 4.01. Freeware. 6) Artistic C++ classes from from Paul DiLascia: CTrayIcon and CSubclassWnd, Microsoft Systems Journal, Feb 1999, CCommandLineInfoEx, Microsoft Systems Journal, Oct 1999, COneInstance, MSDN Magazine, Sep 2000. Public available source. 7) ms_icmp from Bob Quinn, http://www.sockets.com Public available source. 8) Vista UAC elevator from Andrei Belogortseff, http://www.codeproject.com/KB/vista-security/VistaElevator.aspx Public available source. 9) Russification of MFC from Konstantin Vlasov and Michail Patutin, http://www.flint-inc.ru/Russian/Descript/vc60rus.html Public available source. 10) Table of Winsock error codes from Winsock programming FAQ by Warren Young. Ref. http://www.cyberport.com/~tangent/programming. Public available source. 11) Blat mailer by Pedro Mendes, Mark Neal and others, http://www.blat.net Public domain. 1.6. Technical support ---------------------- Updates are available at http://www.imach.uran.ru/netmap Please, send your comments and bug reports to author of program. 1.7. Contact information ------------------------ Author: Dr. Raul N. Shakirov, Institute of Engineering Science, Russian Ac. of Sci. (UB), 34 Komsomolskaya str., Ekaterinburg, 620219, Russia. Phone: +7 (343) 375-35-80 Email: raul@imach.uran.ru 1.8. Acknowledgements --------------------- Thanks to great programmers - Alexander Zadorin for discussing of UI and documentation, and Nickolai Logazyak for consulting on some knotty problems in MFC and Windows API, Ayrat Davlyatov for translation of documentation to Russian, Ivan S. Zamaltynov for translation of interface to Ukrainian, and Ilya Kovalenko for valuable ideas to improve the program. And - gratefulness to numerous experts that have posted theirs advises to Internet. 2. Installation =============== Program is distributed as setup program NetMap10.exe. To install run NetMap10.exe and follow instructions of the setup program. Setup program creates the program folder containing main executable file NetMap.exe and support files. NOTES: To install NetMap under Linux use command wine NetMap10.exe Wine may be downloaded from http://www.winehq.org If previously installed version of NetMap is running, close it with "Exit" button before installing the new one. 2.1. Contents of the program folder ----------------------------------- If program folder is not changed during installation, NetMap is installed to \Program Files\IMach\NetMap on 32-bit systems and \Program Files (x86)\IMach\NetMap on 64-bit systems. NetMap.exe The program. NetMapRu (Russian).dll Russian language file. NetMap?? ( ... ).dll Other language files (ref. Appendix 5). YYYYMMDD.nmp History files, created by the program. ReadMe.txt Manual in English. ReadMeRu.txt Manual in Russian. Uninst.isu Uninstall information. NOTE: To create history and log files (see below), the program requires for write permissions to the program folder. If it is necessary to put these files to another folder, use command line option /dir (ref. Section 3.2). The following files are involved to the processing of plugins and event handlers (ref. Sections 2.3 and 4.1.5). NetMapEx.bat Plugins launcher (do not modify!) NetMapEx.pif Plugins launcher (do not modify!) NetMapEx_host.log Ping-like log files, created by NetMapEx.bat. blat.exe Mailer. blat.cfg1 Preferred server options (if defined). blat.cfg2 Alternate server options (if defined). blat.dbg1 Preferred server log for last connection. blat.dbg2 Alternate server log for last connection. blat_host.err Indicators of hosts non-accessible in the previous launch. NOTE: PLEASE, DO NOT MODIFY the file NetMapEx.bat and its companion file NetMapEx.pif AS THIS MAY TURN SYSTEM TO UNSTABLE STATE! NetMapLog.bat Custom batch file for error handling. NetMapLog.smp Sample file for NetMapLog.bat. host.log Log files, created by NetMapLog.bat. host.err Indicators of non-accessible hosts. host.bat Custom error handlers. PlugTest.bat Batch file for test purposes. 2.2. Peculiarities of work under Windows Vista ----------------------------------------------- Windows Vista includes user account control (UAC), which effectively prevents unauthorized change of files in Program Files, WINDOWS and other system folders. UAC is turned on by default, but it can be turned off ether globally for the entire system or individually for each program if program is run either on behalf of administrator or as a service. Beginning from version 1.0.12, NetMap entirely supports UAC. Under UAC mode history and other files of NetMap are actually created in user's VirtualStore, located in \Users\\AppData\Local\VirtualStore\Program Files\IMach\NetMap or \Users\\AppData\Local\VirtualStore\Program Files (x86)\IMach\NetMap. VirtualStore are virtually mapped into Program Files folder, making there subset of files allowed for editing and deletion. At that original files of program, located in Program Files from beginning are safely protected from editing an deleting. If NetMap is started with UAC turned off, VirtualStore is not in use, that is, NetMap files are created directly in subfolder of Program Files subfolder. To avoid mess, it is recommended to use sole mode, either under UAC or without UAC and do not combine them. For example, starting NetMap as a service (ref. Section 3.3) turns UAC off. TIP: When preparing NetMap for work without UAC it is greatly recommend to move manually history and other NetMap files from VirtualStore to Program Files. On back transferring under UAC these files must be moved back to VirtualStore (except from original files NetMap.exe, NetMap*.dll, NetMapEx.bat, NetMapEx.pif, NetMapLog.smp, Readme*.txt, blat.exe, Uninst.isu). If is sufficient just move files, not copy them, because presence of two copies of files creates mess when working and tuning the program. Moving can be done in explorer or other file manager, run under administrative rights. 2.3. Plugins and event handlers ------------------------------- Plugins are batch files which make external actions. Plugin can do either general-purpose action or be tighten to specific host as event handler. Initially, plugins are turned off; to turn them on set option "Run plugins" in the main window of the program (ref. Section 4.1.5). NOTE: To enable plugins support under Wine one must manually copy NetMapEx.bat, NetMapEx.pif and blat.exe to home folder, where Wine creates .nmp files. Internal function supported by NetMapEx.bat consists in automatic creation of ping-like log files and sending mail messages about hosts being either active or not active. To provide for extra functions you can write custom error handling plugins, which are run if host is not accessible during several (3-5) last ping requests. NOTE: NetMap 1.1 will contain new plugins engine with extended functionality. For example, is will be possible to create custom plugins for handling of active hosts' responses. NetMap runs plugins in hidden window. Before running, NetMap sets the program search PATH from environment variable NETMAP_SEARCH_PATH. If this variable is not set the program search path is not changed. 2.3.1. Ping-like log files -------------------------- Files NetMapEx_host.log contain lines of the following format: YYYYMMDD HH:MM (00000) Reply from IP: bytes=N RTT=Mms TTL=K YYYYMMDD HH:MM (0NNNN) System error message YYYYMMDD HH:MM (10NNN) Winsock error message YYYYMMDD HH:MM (11NNN) Ping error message (most general) YYYYMMDD HH:MM (11NNN) DNS error message Look Appendix 2 for error codes and messages. DNS error messages always start from word DNS, other error messages can be arbitrary. Some messages can be empty, that is, only numeric code is available. NOTE: You must set option "Run plugins every 0 min" if you need to keep all request records in file NetMapEx_host.log, otherwise many request records will be missed to keep space (ref. Section 4.1.5). 2.3.2. Mail messages -------------------- The program can send mail message about host become either active or not active. To exclude messages about accidental loss of packets program fixes state change after several (3-5) last requests. To enable mail set option "Send messages" in Mail tab of the program options (ref. Section 4.5), if necessary, correct recipients' list and records for preferred and alternate SMTP servers and press OK. TIP: To check if server receives mail messages from NetMap check file blat1.dbg for preferred server and blat2.dbg for alternate server. Alternate mail server is used if preferred mail server does not work. NOTE: The program send mail when running plugins so you must also set option "Run plugins" in the main window of the program (ref. Section 4.1.5). Otherwise mail will not be sent. Mail messages are short, so you can redirect them to SMS gateways. From field contains Sender name from mail options, by default: NetMap [computer name] Subject line contains error number and host name, for example: (00000) www.somename.com (11010) www.somename.com Message body contains last line from ping-like log (ref. Section 2.3.1), for example: YYYYMMDD HH:MM (00000) Reply from IP: bytes=N RTT=Mms TTL=K YYYYMMDD HH:MM (11010) Request timed out 2.3.3. Old-style error handling ------------------------------- This way of error handling is specific for NetMap versions 1.0.x. It has architecture limitations, so it will be supported in future versions of NetMap only as a compatibility option. Before running plugins, NetMap creates indicator file "host.err" for each host, which is not accessible during several last ping requests and deletes indicator file for those hosts, which were accessible for at least one of several last ping requests. "Several" here means 3-5. To run plugins, NetMap 1.0.x uses custom batch file NetMapLog.bat, which can be modified for variety of actions. This file does not exist after first installation of NetMap, you must create it manually by copying the sample file NetMapLog.smp. The sample file appends log data to the file "host.log" and also runs batch file "host.bat", if this one exists. NOTE: Under Windows Vista with UAC turned on custom batch files are created in system VirtualStore, which in mapped into the program folder (ref. Section 2.2). It suites if NetMap itself runs under UAC. But if NetMap runs without UAC, for example as a service (ref. Section 3.3), custom plugins must be actually placed to the program folder. To do this, create them in explorer or other file manager, run under administrative rights. TIP: If you do not need for old-style error handling just delete or rename file NetMapLog.bat. Batch files run in hidden window and receive the following parameters: %1 - host name %2 - request date (YYYYMMDD) %3 - request time (HH:MM) %4 - error number: 00001..09999 - system error 10000..10999 - Winsock error 11000..11255 - either DNS or ping error %5-%9 - error message (optional): Winsock: ... - Winsock error DNS: ... - DNS error IP: ... - ping error other - system error NOTES: When building parameters for batch file program scans host name and replaces spaces, all other non-printable symbols and special symbols "\/:*?|<> ,;=+%&^!~()[]{} by symbol # to ensure that mistyped symbols in host name do not cause some side effects when executing batch file. When creating files based on host name add some prefix as host name may accidentally coincide with predefined streams PRN.* NUL.* CON.* AUX.* COMn.* LPTn.* Hidden window will not been closed until all plugins complete execution, so DO NOT PAUSE THEIR EXECUTION! It is prohibited to use in plugins command "exit", because in such case hidden window may not be closed. TIPS: To check if error indicator is set use operator: if exists host.err goto label ... :label To call sub-plugin use the following command: call plugname.bat %1 %2 %3 %4 %5 %6 %7 %8 %9 To debug plugins in visible window start batch file PlugTest.bat 3. Instruction on running the program ===================================== To start the program, run NetMap.exe from either the program folder or Start menu. You can run only one instance of the program. After the first start, program shows status of localhost (127.0.0.1), thus indicating state of IP network subsystem on your own computer. To view another hosts, type in either their DNS names, such as "www.somename.com" or IP addresses. TIP: Please, do not copy entire URL strings from browser! For example, neither "http://www.somename.com" nor "www.somename.com/catalog" will not work. NetMap 1.0.x understands dotted names with no slashes. NOTE: To send ping requests under Wine program requires for root privileges. To stop the program, either select "File-Exit" from the main menu or just press "Exit" button from the main window. On exit, program prompts to save the daily history to .nmp file. NOTE: To prevent accidental closing of the program, system exit button minimizes NetMap to the system tray. The tray icon has context menu, which contains items for restoring of main window, exiting, etc. 3.1. History files ------------------ After first start. program registers extension .nmp for history files which contain list of hosts and daily history of their responses. Double-clicking on .nmp file start the program to show the history, provided that no instance of program is currently running. Program do not saves history to a file until you either ask to save it or turn on up the Autosave option (ref Section 4.1). Default file name for a history file is YYYYMMDD.nmp, where YYYY is a year, MM is a month and DD is a day, for example: 20020912.nmp for Sep 12, 2002. Each file can hold history for one day. Internal format of history files is described in Appendix 4. 3.2. Command line ----------------- NetMap [options] Open history file for the current date YYYYMMDD.nmp for viewing, if it exists in the default directory and start recording history. NetMap [options] file Open the specified history file for viewing and start recording history for the current date. NetMap [options] /p file Print history file to default printer. NetMap [options] /pt file printer driver port Print history file to the specified printer. NetMap /unregister Remove all NetMap registry entries NetMap /unregserver and extension for .nmp files. Options: /lang ?? Load the specified language interface (ref. Appendix 5). /dir path Use the specified default folder for history files instead of the current folder. /service Should be set when starting NetMap as a service to block some controls. NOTE: The program does not warn if command line contains unknown options. 3.3. Starting program as a service ---------------------------------- Windows NT/2000/XP/2003 can start special programs, called services, before any user has been logged on. The benefits include: - services survive logoff/logon sequences, hence saving the overhead of re-starting them for each new user; - allow server apps to come-up and service requests even when no user is logged-on. NetMap does not directly provide an option for running as a service. However, you can use the MS SRVANY utility in order to make NetMap run as an service. SRVANY is available from the Windows NT Resource Kit at ftp.microsoft.com/bussys/winnt/winnt-public/reskit/nt40/. It's recommended to obtain most recent version of SRVANY.EXE from Windows 2000 Support tools (look for the archive srvany_x86.exe). Here is a summary of the steps: 1. Obtain a copy of SRVANY.EXE and its supporting files and copy SRVANY.EXE to the Windows SYSTEM32 sub-folder (for this discussion, we assume the folder c:\windows\system32). 2. Obtain a copy of application, which can register services, for example, INSTSRV.EXE from Windows NT Resource Kit or GUI version of INSTSRV, called SRVINSTW.EXE. Type: INSTSRV "IMach NetMap Application" c:\windows\system32\srvany.exe This step adds a service called "IMach NetMap Application", which will use the SRVANY utility to control the NetMap application program. 3. Run the registry editor (Regedit.exe) and add a "Parameters" key to the "IMach NetMap Application" service under the following location: HKLM\System\Current Control Set\Services\IMach NetMap Application. Within this new key: - Add a value of type REG_SZ called "Application". The value of this string should be the full path to the NetMap application, for example "C:\Program Files\IMach\NetMap\NetMap.exe". - Add a value of type REG_SZ called "AppDirectory". The value of this string should be the full path to the NetMap folder, for example "C:\Program Files\IMach\NetMap". - Add a value of type REG_SZ called "AppParameters". The value of this string should be "/service". TIP: To speed up step 3, one can just create and run text file named NetMap.reg containing the following lines: REGEDIT4 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IMach NetMap Application\Parameters] "Application"="C:\\Program Files\\IMach\\NetMap\\NetMap.exe /service" "AppDirectory"="C:\\Program Files\\IMach\\NetMap" "AppParameters"="/service" or under 64-bit operating system: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IMach NetMap Application\Parameters] "Application"="C:\\Program Files (x86)\\IMach\\NetMap\\NetMap.exe /service" "AppDirectory"="C:\\Program Files (x86)\\IMach\\NetMap" "AppParameters"="/service" 4. Open the Services Control Manager and check the "Allow interact with desktop" checkbox for the "IMach NetMap Application" service, then try start it. TIP: If NetMap is installed under Windows Vista with UAC turned on, then when running as a service its UAC mode will change - it become turned off. Therefore it is recommended to move manually history and other NetMap files from UAC VirtualStore (ref. Section 2.2) to Program Files. Doing this, you'll save accumulated history, logs and custom plugins. Moving can be done in explorer or other file manager, run under administrative rights. In future do not mix service and user modes because of access problems. In particular, if history file is created when NetMap runs without UAC, then after restart of NetNap under Windows Vista UAC it will be opened in read-only mode, thus locking saving of history. NOTES: NetMap is not true windows service, so it has some limitations that must be taken into account: a) Running as a service, NetMap works under LOCAL_SYSTEM account, which has unlimited access to file system. Any local user can work in open/save/print dialogues of NetMap under LOCAL_SYSTEM account. Please, take into account that this behavior breaks C2 security demands. Do not use NetMap as a service if C2 security is a must. b) Running as a service, NetMap works under LOCAL_SYSTEM account, which has no access to the Microsoft network. That is, NetMap has no access to network folders and printers. Only local folders and printers are available. c) DO NOT use the Services Control Manager to stop NetMap service, because it simply terminates NetMap giving it no chance to save the daily history to .nmp file. To stop the program, either select "File-Exit" from the main menu or just press "Exit" button from the main window. On exit, program prompts to save the daily history to .nmp file. d) NetMap running as a service have individual settings and host layout, different from case when NetMap is running as an ordinary program. As opposite, history and log files are the same in both cases, except for running NetMap under Windows Vista with UAC turned on. 4. Guidelines for use the program ================================= NetMap can accumulate history for more then 100 hosts, allowing to select some of them for simultaneous viewing. Maximal number of hosts selected for viewing depends on the size of program window an can vary from 1 up to 70. Each time when you start the program, it begins to request hosts in round-robin order, one host per each 6 sec. By default, program waits 4 sec. for the response of host. After either receiving or not receiving of response, program indicates host status and also accumulates daily history of responses, allowing to view the history, to print it and to save it as a history file. After the first start, program allows to view up to 5 hours of history for up to 8 hosts simultaneously. Program has slider to scroll the history and selectors to pick up hosts for viewing (ref. Section 4.1). To view more hours and more hosts simultaneously resize the program window in either horizontal or vertical direction. To expand window to maximal size use maximize button. If necessary, NetMap can be tuned up to load at the system startup and work in automatic mode with no questions, including the system shutdown and restart (ref. Sections 3.3, 4.1.5). When minimized, NetMap looks as a tray icon, consuming the minimal processor time. The tray icon indicates status of the worst responding host (ref Section 4.7). 4.1. The main window -------------------- Program is designed to carry out most of its operations within the main window. The main window is self-documented. Please, place mouse cursor over controls to read tool-tips. 4.1.1. The host list pane ------------------------- View hosts Use these fields to specify hosts for viewing at the history pane. You can type in either DNS name or IP of host, then separated by space optional comment in brackets and parameters of request if they are different from default (ref. Section 4.4). Syntax of each parameter may be any of the following: -name value -name:value -name=value -namevalue /name value /name:value /name=value /namevalue The latter form, namevalue is allowed for numeric values. Name of parameter is not case sensitive. NOTE: Program recognizes limited set of parameter and do not provide for diagnostic if some parameter is not recognized or has wrong value. Instead, it shows host name and current parameters of ping request as a tool tip. The following parameters are recognized in the current version: -l bytes Indicate size of ping data in the range 0..30000 -w timeout Set minimal timeout to wait for response to ping request in the range 0..600000 ms (does not limit time for DNS resolution). -x Turn off automatic requesting of host while keeping the host name in the list. Nevertheless, you can send request thereby clicking request status indicator (ref. Section 4.1.2). NOTE: Actual timeout may be greater due to discreteness of timer and multitasking delays. Regardless of field used for typing, host will be inserted to the accumulated list that may contain up to 100 or more hosts. NOTE: After editing of host name the previous name is inserted to the first free view, except when it is also contained in some other view. Each field contains selection button at the right, which provides for access to the accumulated host list: - Press selection button and select blank line if you do not need to view history for appropriate host but still need to keep the host in the accumulated list. That is, program will still send requests to the host and accumulate the history of responses. - To view hidden host again, press selection button and select host from the accumulated host list. Remove host Remove host from the accumulated host list. After removing, the history of host responses will also be deleted. 4.1.2. Request status indicators -------------------------------- Request status indicators are attached to hosts being selected for viewing. Indicators provides for information concerning with last request sent to corresponding host. You can click an indicator to send next request to the host out of order. Program shows the following indicators: o Host will receive next request out of order. > Host being currently requested. NOTE: If host being requested is not selected for viewing, program will not show indicator > and the undermentioned status information. Instead, look at the status bar (ref. Section 4.3). Outline face Host have not been requested yet. Green face Host has responded within 1/2 of timeout. Yellow face Host has responded after 1/2 of timeout. Red face Host has not responded within the specified timeout (ref. Section 4.1.1). Detailed diagnostic is available as a tool tip - place mouse cursor over an indicator to view it: 1) If host has not been requested, host name and optional IP are indicated. IP is indicated if DNS name has been resolved during last completed request. 2) If host has responded to request the following information becomes available: bytes=number of bytes Size of ping data. RTT=round trip time Time between request and response, ms. TTL=time to live Number of hops remained (ref. RFC 791). NOTE: Due to discreteness of timer and multithreading delays, actual RTT my be greater then timeout specified for the request. 3) If host has not responded to request, the program indicates the error number and explanation. Also, the program indicates router IP if router has replied about error. 4.1.3. Mail status indicators ----------------------------- Mail status indicators shows status of preferred and alternate mail servers (ref. Section 4.5). Indicators provides for information concerning with last mail sent to corresponding server. You can see indicators if mail is properly enabled in the program options and (ref. Section 4.5) plugins are enabled in the main window of program (ref. Section 4.1.5). Program shows the following indicators: o Message will be sent to mail server when running plugins next time. Outline cover Mail server have not been tested yet. You can click an indicator to send test message to mail server. Green cover Message is successfully sent to mail server. You can click an indicator to view detailed report and, if necessary, send another test message to mail server. Red cover Failed to send message to mail server. You can click an indicator to view detailed diagnostic and, if necessary, send another test message to mail server. Brief explanations are available as a tool tip - place mouse cursor over an indicator to view them. 4.1.4. The history pane ----------------------- The history pane shows daily history of responses, from 00:00 to 24:00 in per minute resolution. No mark Host has not being requested. Green mark Host has responded within 1/2 of timeout. Yellow mark Host has responded after 1/2 of timeout. Red mark Host has not responded within timeout. Height of mark matches the actual time of response. If host have responded several times per minute, program shows the maximal one. If host have both responded and non-responded pings, red mark becomes transparent, depending of percent of lost requests. Total number of green, yellow and red marks and rate of lost requests for the entire day is available as a tool tip - place mouse cursor over a graph to view it. Rate is calculated as (tr*nr)/(nr+ny+ng), where tr is average percent of lost requests on red marks, nr, ny, ng - number of red, yellow and green marks respectively. Slider to scroll the daily history and buttons for fast thumbing through the days are located at the bottom of pane. NOTE: At 00:00 NetMap starts recording of the new day history. Accumulated history will be saved if Autosave option is set (ref. Section 4.1.5). If Autosave option is not set, NetMap discards accumulated history. 4.1.5. Options -------------- Load at startup Run program at session startup. NOTES: If you run NetMap as a service (ref. Section 3.3) use startup type option in Services Control Manager instead of this checkbox. NetMap 1.0.11 and below register startup for all users. The following versions of NetMap registers startup for active user and automatically cancels registration for all users, except for case when Windows Vista UAC is turned on. Use installer to cancel all users registration under Windows Vista (ref. Section 2). Load at startup does not work under Wine. Run minimized Run program minimized to a tray icon. Run plugins every Run plugins (ref. Section 2.3) in a hidden ... min window. If time is 0, program run plugins for each host having been requested. If time is greater then 0 program run plugins depending of whether host is accessible or not accessible for the time specified. NOTE: The program run plugins if: 1) Host is at least partially available for the time specified, at that it is possible to have some missed requests or ever series of missed requests, but no more then 3-5 requests in each series. 2) Host is completely not accessible for the time specified. TIP: Set Run plugins every 0 min to get compete log of requests. Autosave every Save accumulated history automatically after ... min the specified time interval, as well as when starting the new day history at 00:00 and on normal system shutdown or restart. NOTES: If Autosave is not set, program discards accumulated history at 00:00 and on system shutdown or restart. If Autosave is set to 0 min, history is actually saved no more then once per minute. 4.1.6. Controls --------------- Minimize Reduce the program window to a tray icon (ref. Section 4.7). Exit Quit the program; prompts to save the history for the current date. 4.2. Menu and toolbar --------------------- Asterisk * indicates that menu item has corresponding button at the toolbar. File-Today * View the history being recorded today. File-Open * Open saved history. NOTE: If history being opened does not belong to the current date, program will continue recording history for the current date. You can view and print the history being opened, as well as remove hosts from the history, but you can not add any new hosts. Any changes to the history being opened do not affect the history which is being recorded for the current date. File-Save * Save the history being recorded today to a file. Default name is YYYYMMDD.nmp File-Save As Save the history being recorded today to a specified file. NOTE: It is not possible to save history which does not belong to the current date. File-Print Setup * Call standard dialogue for printer setup. File-Print * Switch to the print preview window Preview (ref. Section 4.6). File-Print Call standard dialogue for printing. File-Exit Quit the program; prompts to save the history being recorded today. Edit-Undo Undo the last editing action which can be undone. Edit-Cut * Cut the selection and put it on the Clipboard. Edit-Copy * Copy the selection and put it on the Clipboard. Edit-Paste * Insert Clipboard contents in place of selection. Edit-Delete Erase the selection. View-Toolbar * Show and hide the toolbar. View-Status Bar * Show and hide the status bar (ref. Section 4.3). View-Sort By Name * Arrange hosts by ascending order of their names. View-Show in Tray Show in the tray icon: -All hosts - State of all hosts; -Selected hosts - State of hosts selected for viewing. View-Options * Show the ping options dialogue (ref. Section 4.4). Help-Introduction Show brief introduction to the program. Help-Online * Open online support page. Support Help-Open ... * Open site ... Help-About NetMap * Display program information, version number and copyright. 4.3. The status bar ------------------- The status bar indicates context prompts for menu bar items and also contains the information on host being requested: - During request, host name is indicated. - After request, result diagnostic is appended, which is same as for pin status indicator (ref. Section 4.1.2). 4.4. Ping options ----------------- Timeout to wait Default minimal timeout to wait for for reply response to ping request in the range 0..600000 ms (does not limit time for DNS resolution). Initial value is 4000 ms. NOTE: Actual timeout may be greater due to discreteness of timer and multitasking delays. Time to leave Maximal number of hops in a route for ping request in the range 0..255 (does not affect the response to ping request). Initial value is 128. Number of bytes Default size of ping data in the range to send 0..30000. Initial value is 32. NOTE: The largest packet that can be sent unfragmented is equal to the smallest MTU (Minimal Transfer Unit) that exists along a route, minus the IP and ICMP headers (in other words, the smallest MTU minus 28). The field has dropdown list containing popular sizes of ping packet (ref. Appendix 3). Do not fragment Do not fragment ping packet if it can't pass a route unfragmented due to MTU limitations (ref. parameter "Number of bytes"). IP Type of Service Ref. RFC 791, 795, 1349 for explanation. Minimal interval Minimal interval between consecutive between consecutive ping requests in the range 100..600000 ms requests in ms Initial value is 6000 ms. NOTE: Actual interval may be greater, because NetMap does not send the next request until it completes the previous one. Reset Reset all options to initial values, which are same as for ping program. OK Save changes and close the dialogue. Cancel Discard changes and close the dialogue. 4.5. Mail options ----------------- Send messages to Checkbox to test mail servers and enable mail support when running plugins and list of recipients' mailboxes separated by semicolons or commas. If empty, mail is delivered to sender mailbox (see below). NOTE: Program sends messages if plugins are enabled in the main window. The following records sets preferred and alternate SMTP servers: Sender Sender mailbox, for example: user or user@server Mailbox must be known to SMTP server. Initial value is "administrator". Server Either domain name or numeric IP of SMTP server. Initial value is "localhost". Port Incoming port of SMTP server, by default 25. Login Login to SMTP server if it requires authentication. Password Password to SMTP server if it requires authentication. Sender name Sender name, if empty sender mailbox is used. Initial value is NetMap [ComputerName]. System encoding System ANSI code page, like Windows-1252 etc, if empty 7-bit ISO-8859-1 encoding for latin letters is used. Initial value is defined by NetMap, do not change it if you need for national symbols support. Reset Reset sender name and encoding to system default values. OK Save changes and close the dialogue. Cancel Discard changes and close the dialogue. After changing of options of mail server, the program automatically tests it. Results of test are visible on mail status indicators (ref. Section 4.1.3). 4.6. The print preview window ----------------------------- The print preview window shows entire history for all actual hosts of the accumulated list in the alphabetical order, regardless of which hosts have been selected for viewing in host list pane. Host is excluded from print preview if it is excluded from automatic requesting and has no previously accumulated history marks. Print Call standard dialogue for printing. Next Page View the next page. Prev Page View the previous page. One/Two Page View one/two pages. Zoom In Enlarge the scale. Zoom Out Diminish the scale. Close Switch to the main program window. Output is grayscale. Program shows height of marks and also vertical gray dashes for hosts having both responded and non-responded requests within a minute. The last page has footer with totals for responses and rate of lost requests, averaged for all hosts of the accumulated list. Rate is calculated as (tr*nr)/(nr+ny+ng), where tr is average percent of lost requests on red marks, nr, ny, ng - number of red, yellow and green marks respectively. NOTE: Size of preview page depends on printer setup. (ref. Section 4.2). If no printer is installed print preview is not available. 4.7. The tray icon ------------------ The tray icon indicates status of the worst responded host between either all hosts in the accumulated list or only those selected for viewing at the host list pane, depending of appropriate option in view menu. White icon No hosts are requested yet. Green icon Host is accessible now. Yellow icon Host was partially accessible during several last requests. Red icon Host is not accessible during several last requests. "Several" here means 3-5. NOTE: Host status that is indicated on the tray icon may not be the same as request status indicated at the main window (ref. Section 4.1.2). The host name and diagnostic for the last request are available in a tool tip - place mouse cursor over the tray icon to view it. Ref. Section 4.1.2 for description of diagnostic. The tray icon has context menu with the following items: Restore Restore the program window to normal size and position. Online Support Open online support page. Open ... Open site ... About NetMap Display program information, version number and copyright. Exit Quit the program; prompts to save the history for the current date. 5. Deinstallation ================= To remove the program, do the following: - If NetMap is running, close it with "Exit" button. - Deinstallation program removes NetMap settings from the registry, but leaves registration of .nmp files intact. If necessary, run NetMap /unregister to remove all NetMap registry entries including extension for .nmp files. - Call "Add-remove programs" from the Control Panel, select "NetMap" and press "Add/remove". - Follow instructions of the deinstallation program. - Deinstallation program does not remove the program folder if it contains history and other user-defined files. If necessary, remove the program folder by hands. Appendix 1. Terms ================= IP Internet protocol (RFC 791). ICMP Internet control message protocol (RFC 792). Host Network device, accessible by its IP address (RFC 790). DNS Domain names system (RFC 1034). Ping ICMP echo request to host. UAC User Account Control under Windows Vista. Appendix 2. Error codes ======================= Winsock (10004) Interrupted system call (10009) Bad file number (10013) Permission denied (10014) Bad address (10022) Invalid argument (10024) Too many open sockets (10035) Resource temporarily unavailable (10036) Operation now in progress (10037) Operation already in progress (10038) Socket operation on non-socket (10039) Destination address required (10040) Message too long (10041) Wrong protocol type for socket (10042) Bad protocol option (10043) Protocol not supported (10044) Socket type not supported (10045) Operation not supported on socket (10046) Protocol family not supported (10047) Address family not supported (10048) Address already in use (10049) Cannot assign requested address (10050) Network is down (10051) Network is unreachable (10052) Network dropped connection on reset (10053) Software caused connection abort (10054) Connection reset by peer (10055) No buffer space available (10056) Socket is already connected (10057) Socket is not connected (10058) Cannot send after socket shutdown (10059) Too many references: can't splice (10060) Connection timed out (10061) Connection refused (10062) Too many levels of symbolic links (10063) File name too long (10064) Host is down (10065) No route to host (10066) Directory not empty (10067) Too many processes (10068) Too many users (10069) Disc quota exceeded (10070) Stale NFS file handle (10071) Too many levels of remote in path (10091) Network system is unavailable (10092) Version out of range (10093) WSAStartup not yet called (10101) Graceful shutdown in progress DNS (11001) DNS authoritative answer (11002) DNS non-authoritative answer (try again) (11003) DNS non-recoverable error (11004) DNS found no data record of requested type Ping (11001) Buffer too small (11002) Destination network unreachable (11003) Destination host unreachable (11004) Destination protocol unreachable (11005) Destination port unreachable (11006) No resources (11007) Bad option (11008) Hardware error (11009) Packet too big (11010) Request timed out (11011) Bad request (11012) Bad route (11013) TTL expired in transit (11014) TTL expired in reassembly (11015) Parameter problem (11016) Source quench (11017) Option too big (11018) Bad destination (11019) Address deleted (11020) Spec MTU change (11021) MTU change (11022) Unload (11050) General failure Appendix 3. Ping data size ========================== 32 Default size of ping packet 548 MTU= 576 X.25 (modem line, minimal MTU by RFC 791) 1344 MTU= 1372 Required by some internet providers 1372 MTU= 1400 PPTP (WAN Miniport) 1452 MTU= 1480 PPPoE (WAN Miniport) 1464 MTU= 1492 IEEE 802.3/802.2 1472 MTU= 1500 Ethernet 4324 MTU= 4352 FDDI 4436 MTU= 4464 4 Mbps Token Ring 17886 MTU=17914 16 Mbps Token Ring Appendix 4. Format of history file ================================== File .nmp is binary file containing daily history. It consists of header and consequent host records. The header: +---+---------------...-+ |17 | NetMap Watch File | ID, serialized CString. +---+---+---+---+---...-+ 0 | CTime | Last modified time, serialized CTime. +---+---+---+---+ 4 | 60 | Time per one history mark, sec. +---+---+---+---+ 8 | int | Scrolling of history, 0..1440-1. +---+---+---+---+ 12 | 0 | Reserved. +---+---+---+---+ 16 | 0 | Reserved. +---+---+---+---+ 20 | 0 | Reserved. +---+---+---+---+ 24 | 0 | Reserved. +---+---+---+---+ 32 | 0 | Reserved. +---+---+---+---+ 36 | 1440 | Number of bytes in history (24 * 60). +---+---+---+---+ 40 | int | Number of host records. +---+---+---+---+ Host record: +---+---------------...-+ | n | char array | Host name and options, serialized CString. +---+---+---+---+---...-+ 0 | 96 (*) | Minimal green value in history. +---+---+---+---+ 4 | 176 | Minimal yellow value in history. +---+---+---+---+ 8 | 248 (**) | Minimal red value in history. +---+---+---+---+ 12 | 0 (***)| Reserved. +---+---+---+---+ 16 | 0 (***)| Reserved. +---+---+---+---+ 20 | 0 (***)| Reserved. +---+---+---+---+ 24 | int (***)| Timeout in ms, actual on saving. +---+---+---+---+ 32 | int | Number of host in order 0,1,2... +---+---+---+---+---...-+ 36 | array of 1440 bytes | History. +---+---+---+---+---...-+ (*) 1 in NetMap version 1.0.9 and below. (**) 255 in NetMap version 1.0.9 and below. (***) Undefined in NetMap version 1.0.9 and below. NOTE: Values that are determined here as constants should nevertheless be considered as variables, because they can be changed in future versions of NetMap. One history value can correspond to several requests. History value of 0 indicates that program have send no requests this time. History value between 96 and 247 determines height of either green or yellow mark if all responses have been received. If there were more then one request this time, mark for the slowest response is stored. Response time can be calculated as RTT = t * (n - 96) / (247 - 96), where t - timeout, n - history value. But take into account that timeout setting can change within a day, whereas program stores only last actual timeout. History value between 248 and 255 shows that at least one response have not been received and determines percent of failed requests as (n - 247) * 12.5%, so value of 255 indicates that 100% of requests are failed, lower values indicate hat some (bit not all) responses have been received. NOTE: This is for NetMap version 1.0.10 and above; older versions store state of last request per minute instead of storing stare of worst request. Also, last timeout is not stored; you must get it somewhat else. If the last request have got response, value between 96 and 254 is stored to keep height of mark; RTT can be estimated as RTT = t * (n - 96) / (254 - 96). If no response have been received for the last request, value of 255 is stored. Appendix 5. Language codes for auto-select ========================================== Recommended language code is intended to name files NetMap?? ( ... ).dll so that program will load them automatically in appropriate localized OS. Dll for other languages are loaded by selection, sign them by ones liking. Af (Afrikaans) Be (Belarusian) Bg (Bulgarian) Ca (Catalan) Cs (Czech) Da (Danish) De (German) El (Greek) En (English) Built-in, no dll needed Es (Spanish) Et (Estonian) Eu (Basque) Fi (Finnish) Fo (Faeroese) Fr (French) He (Hebrew) Hr (Croatian,Serbian) Hu (Hungarian) Id (Indonesian) Is (Icelandic) It (Italian) Lt (Lithuanian) Lv (Latvian) Nl (Dutch) No (Norwegian) Pl (Polish) Pt (Portuguese) Ro (Romanian) Ru (Russian) Included in the distribution pack Sk (Slovak Sl (Slovenian) Sv (Swedish) Tr (Turkish) Uk (Ukrainian) Included in the distribution pack Appendix 6. Known issues ======================== - Running as a service, NetMap allows any local user to use in open/save/print dialogues under LOCAL_SYSTEM account thus breaking C2 security demands. - Running as a service, NetMap can not print to network printers due to Windows limitations. Only local printers are available. - Running as a service, NetMap does not save local history to file when the Services control manager is used to stop NetMap service. - Running as a service, NetMap have individual settings and order of hosts, different from case when NetMap is running as an ordinary program. As opposite, history and log files are the same in both cases, except for running NetMap under Windows Vista with UAC turned on. - If NetMap run under Windows Vista without UAC and then under UAC, writing to daily history file YYYYMMDD.nmp will be locked. Solution: exit NetMap, restart NetMap under administrative privileges, select File-Save As... and delete daily history file YYYYMMDD..nmp by right mouse click. Then exit NetMap do not letting it save history and restart NetMap under normal privileges. - Load at startup does not work under Wine. - Program need root privileges to ping under Wine. - If batch file hangs, NetMap does not close hidden window created for batch process. - Mailers Blat 2.6.1 and 2.6.2 accidentally hang under Windows Vista, Blat 2.5.0 can fall into endless loop with error 10093 generating tremendous log file blat1.tmp or blat2.tmp, so use blat 2.4.0 included into this distribution. Do not upgrade it. - If Blat mailer hangs NetMap could not send mail. Close hanged blat.exe by Task Manager. Appendix 7. What's new ====================== Jun 8, 2000 - Preview 0.1 Apr 6, 2000 - Preview 0.8b - Dialogue for ping options. - Invoking of custom batch file. - Minimizing to a tray icon. May 31, 2000 - Preview 0.8c - Landscape default for printing. Sep 19, 2001 - Version 1.0 beta internal - Option "Load at startup". Sep 16, 2002 - Version 1.0 beta public - Status of the worst responding host at the tray area. - Tool tip with details of ping request at the indicator pane. - Tool tip with totals for a graph at the history pane. - Optimized graphic for lower overhead of processor. - Numerous cosmetic improvements and bug fixes. - Built-in MFC library. - Setup program created by InstallShield. - This ReadMe file. Sep 17, 2002 - Version 1.0.2 beta public - Introduction message and some other minor improvements. Oct 15, 2002 - Version 1.0.3 beta public - Modified messages. Feb 12, 2003 - Version 1.0.4 beta public - Option to set minimal interval between consecutive requests. - Initial ping options changed to be same as for ping program. - Reset button for ping options. - Selection list now contains blank line. - FIXED: handling of "TTL expired" and "Source Quench" replies. Dec 21, 2003 - Version 1.0.5 beta public - Instructions how to start NetMap as Windows NT/2000/XP/2003 service. WARNING: THIS IS FOR THE TEST PURPOSES ONLY as current implementation of NetMap service does not conform to C2 requirements! - Processing of command line when program is already running. - Context menu for the tray icon. - FIXED: Tray icon is recreated after restarting of Explorer. - FIXED: Program can't start if watch list is empty. - FIXED: Program crushes when loading invalid .nmp files. Mar 31, 2004 - Version 1.0.6 beta public - Russian version of this ReadMe file, translated from the English one by Ayrat Davlyatov. - Before running custom batch file, the program creates indicator file host.err for each non-accessible host. - FIXED: Possible bugs related with synchronization of threads. - FIXED: Tray icon can accidentally freeze if the program is started as a service. - FIXED: Program window can accidentally expand if the program is started as a service. Apr 7, 2004 - Version 1.0.7 beta public - Tool tip for history graph contains heuristic rate of availability. - Footer of printout contains average totals and rate of availability. - FAQ on Web Page of NetMap. - FIXED: Tray icon freezes after failed change. - FIXED: Delaying when running program as a service. - FIXED: Deleting of non-actual .err files Mar 19, 2005 - Version 1.0.8 beta public - It's possible now to resize either in horizontal or vertical direction; maximal number of hosts to view is now 30. - Enabled maximize button. - Implemented operation to sort hosts by their names. - Option to write comment in brackets after host name. - Option -l bytes to set size of ping data for particular host. - Option -w timeout to set ping timeout for particular host. - Option -x to turn off automatic requesting of host while keeping the host name in the list. - Undo-Cut-Copy-Paste-Delete in edit fields. - After editing of host name the previous name is inserted to the first free view, except when it is also contained in some other view. - Esc cancels editing of host name. - It is possible to click an indicator of host response to send next request out of order. - Time marks upon history of each host. - Improved appearance in Large Text mode. - Optimized repainting of history pane. - More detailed info in tool tips. - Tool tips for ping options pane. - FIXED: Tool tips are not visible if program window is not active. - Improvements in the custom batch files engine: - Size of environment is extended up to 4096 bytes (actual for Windows 9x/Me). - Batch file PlugTest.bat for debugging purposes. - Ping-like logging to files NetMapEx_host.log for debugging of new plugins engine, which is scheduled for version 1.1. Mar 29, 2005 - Version 1.0.8 beta public update - FIXED: Initialization bug responsible for some errors, in particular: - Program may crash or hang if number of hosts is greater then 20. - Program may crush when deleting host from the accumulated host list. May 23, 2006 - Version 1.0.9 beta public - FIXED: Ping may return negative RTT on multi-core systems. Jul 20, 2006 - Version 1.0.9 beta public update - FIXED: Ping returns zero error code on timeout in Windows Vista Beta 2. Dec 12, 2007 - Version 1.0.10 beta public - Transparent red marks for for host having both responded and non-responded requests within a minute. - More accurate calculation of percent of lost packets. - Documented history file format (compatible with all versions): - Red zone in history file is extended to 248..255. - Last actual timeout is saved. - Refined and extended plugins documentation. - Extended list of issues when NetMap is running as a service. - Default value for TTL is now 128, as for Windows XP. - Time to wait for input/selecting of host extended to 1 min. - Maximal number of hosts to view is increased to 60 (actually 45 due to resource bug). - FIXED: List of hosts to view may change after File-Today. - FIXED: Adjust scrolling after File-Today and File-Open. - FIXED: File-save inactive when Run plugins every 0 min, due to excessive save of history, new program saves history no more than 1 time per minute. - Program is tested to be compatible with Wine under root privileges. May 28, 2008 - Version 1.0.11 public - Multilingual English/Russian interface, translation to other languages is also allowed. - Selection of language from list and by option /lang. - Cyrillic and other national domain names are allowed. - Option to show all or selected hosts in the tray icon. - Enhanced print output with gray marks for hosts having both responded and non-responded requests within a minute. - Hosts with no marks are excluded from print output. - Warning when run plugins under Windows Vista with UAC turned on. - Maximal number of hosts to view is increased to 70, to fit to QXGA 2048x1536. - FIXED: Program can crush after deleting of host being requested. - FIXED: Fallout of vertical scroll bar in the print preview window after Zoom In-Out-In under Windows XP. - FIXED: Program can not provide for loading at startup if default folder under option /dir is not same as the folder of program. - FIXED: Program can not provide for loading at startup if the program file is renamed. - FIXED: NetMapLog.bat can hang if host name is either NetMapLog or reserved by OS, such as CON, PRN etc. - FIXED: Installer shows start menu folder under administrative privileges. - FIXED: Minor interface bugs (prompts etc.) Jun 03, 2008 - Localization of version 1.0.11 public - Ukrainian interface (Ivan S. Zamaltynov). - Full names of months instead of truncated 3-letter names, except English. Dec 27, 2008 - Version 1.0.12 public - Buttons for fast thumbing through the days. - Sending of E-mail messages. - Plugins support under Windows Vista with UAC turned on. - Load at startup under Windows Vista with UAC turned on. - CHANGED: Program registers load at startup for active user, instead of registration for all users. - CHANGED: Old-style error handling is turned off by default. - FIXED: Options are not saved in registry after OK. - FIXED: Immediate autosave with no designated delay when new .nmp file is created (minor fix). - FIXED: NetMapLog.bat do not work under Wine (replace it manually by new NetMapLog.smp). Jan 17, 2009 - Blat mailer update. - FIXED: Blat 2.5.0 is replaced by Blat 2.4.0 because the former can fall into endless loop with error 10093. Expected changes in version 1.1 public: - New-style plugins engine with event handling. - Port requesting (professional option). Jan 17, 2009