AmTelnet II - The AmigaOS Telnet Client ======================================= Copyright © 1998-2000 by Oliver Wagner All Rights Reserved AmTelnet 1.x © 1996-98 by Mathias Mischler All Rights Reserved FTP Support Site: ftp.vapor.com, /pub/amtelnet WWW Support Site: http://www.vapor.com/ Support Mailing List: ("SUBSCRIBE" in subject or body to subscribe) ===================================================================== 1. Introduction AmTelnet II is a client for the Internet "Telnet" and "SSH" protocols for remotely logging into computers, playing text-oriented multi-user games ("MUD"s or "MUSH"s) or manually simulating internet protocols. 2. Note for registered AmTelnet 1.x users AmTelnet II requires new keyfiles. However, the upgrade for registered AmTelnet 1.x users is *FREE*. New keyfiles have been mailed out to all existing AmTelnet 1.x users to the e-mail addresses on which they originally received their keyfiles. Should you, for some reason, not have received your AmTelnet II keyfile yet, please mail your current AmTelnet keyfile together with a short note on *WHERE* and *WHEN* you originally registered to . Please note that those requests have to be manually processed by a poor overworked software developer (me), and thus they generally have awkward response times -- sorry for that. Please note that NetConnect II users are not entitled for an free AmTelnet II upgrade. AmTelnet II is part of the general NetConnect III upgrade, however, please contact Active Technologies for any relevant information on the NetConnect package issues. 3. Registration AmTelnet II will work in 15 minute demonstration mode without a keyfile. AmTelnet II can be registered with the included registration utility at any of the 7 registration sites worldwide, or directly online with any major credit card at http://www.vapor.com/order/ Delivery of keyfile is instantious with the online registration system. 4. Bug reporting Please mail bug reports and enhancement suggestions to Any reportes submitted this way are automatically entered into the VaporWare bug tracking system. Please see http://bugs.vapor.com/ on more information on how to access the bug tracking system. 5. Documentation As the time of writing, AmTelnet II totally lacks any documentation. Any volunteers on that are greatly appreciated :) ===================================================================== Changes since AmTelnet 1.8: 1.11 internal ------------- [took over Source from Merlin] - XPR: changed XPR frontend to use AsyncIO lib 1.12 internal ------------- - Telnet: fixed initial IAC sending screwup (what happened was that DO TELOPT_BINARY was send with a function which does a strlen() somewhere in between, and TELOPT_BINARY is ascii 0...) - GUI: now explictely checks for Term.MCC Version 20+ to avoid confusion 1.13 internal ------------- - XPR: fixed XPR receive (IAC escaping across boundaries didn't work) 1.14 internal ------------- - Net: Added SSH1 support (IDEA, BLOWFISH, 3DES) - GUI: now uses Textinput.mcc 1.15 internal ------------- - SSH: did tons of code cleanup - SSH: fixed memory leakage - SSH: removed IDEA encryption code, added Arcfour encryption code - SSH: password input will no longer echo "*" - SSH: fixed error handling - SSH: added compression support - SSH: fixed multiple initialization crash - SSH: should now also work with as225r2 - GUI: fixed menu shortcuts - GUI: fixed menu item enabling - GUI: now shows "[SSH]" in title bar/iconify text when SSH connected - XPR: fixed TimerIO screwup in sread() implementation - XPR: fixed excess XPR window refreshes. Should considerably speed up XPR transfers on fast media (e.g. ethernet). Tiny benchmark: sz'ing over Ethernet from a 486DX-100 linux machine gives 250k/s in "raw" and about 45k/s in SSH mode - XPR/SSH: XPR transfers now also work on SSH connections - XPR: added support for automatic Z-Modem Upload/Download 1.16 beta --------- - GUI: now properly reports when term.mcc is too old, instead of saying that it's not there - GUI: regrouped menu items - GUI: added "Reset tweaks" to reset the emulation tweaks (CR/LF etc.) to sensible defaults - GUI: edit window terminal type is now a cycle as well - GUI: added "Auto fullsize when connected" option - SSH: fixed screwup when clicking "Close connection" during SSH login - GUI: fixed opening of SSH hosts from history - Prefs: Added SSH shell option/tooltype - Prefs: fixed saving of new prefs items - GUI: added support for Vapor Update Library 1.17 beta --------- - General: Now uses vapor_toolkit.library for various stuff - SSH: now using cryptographically strong random number generator from vapor_toolkit for generating session keys - GUI: char bar was limited to 80 characters (oops) - General: removed a few remaining calls to OldOpenLibrary() to make Patchwork happy 1.18 beta --------- - General: recompiled with full optimization 1.19 beta --------- - GUI: made "CRASLF" the default - GUI: added flag "Use custom terminal settings?" to individual profiles. If unset, will not modify the default AmTelnet Terminal tweaks etc. settings when selecting the host - GUI: removed stupid "About" animation 1.20 beta --------- - Net: in SSH mode, Return is now always sent as LF (protocol standard) - GUI: useless "8-Bit-Mode" is now OFF by default - GUI: made "8-Bit-Mode" labeling more clear ("8-Bit CSI?") - Net: fixed a bug in fkey parsing which could overwrite a buffer, thus causing crash - Net: now sets SO_KEEPALIVE even for non-ssh connections - GUI/Net: added option to disable the nagle algorithm (TCP_NODELAY) - GUI/Net: added option to set the SSH compression level - Net: will now translate CTRL^C to telnet IAC IP - GUI: changed CRASLF to Off by default (sigh -- obviously, term.mcc implements the proper ESC sequences to turn this on/off) 1.21 beta --------- - GUI: raised term.mcc required version to 22 - Net: removed CTRL^C to IP translation again - GUI: removed "Autofullsize" option; previous "Fullsize" will behave now behave more like this (fullsize when connected, control panel otherwise) - Net: no longer sets a broken term ident type when connecting to a phonebook entry - GUI: no longer opens a bogus "Can't open file ''" requester when a Save operation is aborted - GUI: added Send IP/AO/AYT menu items in "Functions" menu - GUI: changed to special vapor table catalog handling. This renders old catalogs useless, though. - GUI: "CRLF" was still the default after "Reset tweaks" - General: did some code cleanup and reduced static memory usage by 16k 1.22 beta --------- - GUI: showing "About" while the about window was already open would OpenDiskFont() two fonts which would never have been closed again - GUI: reworked GUI a bit, added new logo and updated about text - SSH: updated crlf conversion to deal with new term.mcc behavior - GUI: raised term.mcc required version to 23 - GUI: now sets UsedClasses properly 1.23 beta --------- - Net: Sending of username/password wasn't following the proper \r\n-semantics - GUI: Nagle and SSH compression settings weren't saved - GUI: relabeled "Use custom terminal settings?" with "Save terminal settings with profile?" to make function more clear 1.24 beta --------- - GUI: fixed SSH Compression default settings - GUI: per-profile terminal settings weren't properly saved 1.25beta -------- - GUI: "Change Transfer path" is now an ASL drawersonly request instead of a stupid text gadget window - GUI: fixed "will use wrong server entry when reconnecting with double click and having multiple server with same hostnames in phonebook" bug - SSH: fixed overwriting of passwords in host entry on auto-login 1.26beta -------- - GUI: now checks for Term.MCC V24 - GUI: added escape code help line to function key window. Also gives the Fkey window a more reasonable default size - GUI: fixed control bar group spacing - Net: Send Username/Password now also works in SSH mode (without causing a SSH packet screwup :) - Net: no longer sends a DO BINARY WILL BINARY after connection establishment - GUI: Z-Modem Auto Send/Receive was always done, even when deselected - Net: now sends DO BINARY WILL BINARY before starting XPR, and DONT BINARY WONT BINARY after finishing 1.27beta -------- - Prefs: serious bug in getting term arguments from the term.mcc caused overwriting of innocent memory. The memory overwriting may have caused all kind of (not so) funny side effects, so if you experienced one of those, they may well be gone now. 1.28beta -------- - CVS: initial import - GUI: fixed a few typos in catalog - General: fixed enforcer hit flood when pressing "connect" without having an host entry selected - General: changed a last reamining OldOpenLibrary() to OpenLibrary() for Patchwork's sake 1.29beta -------- - GUI: added "Resume transfers" option (Wiz) - Net: it's possible to telnet to any port now (Zapek) 1.30beta -------- - GUI: completely rewrote host phonebook system. Old style host lists are loaded and converted on first start. Host entries can now have a reference to a custom config file which is loaded when a host is connected (Olli) - Prefs: changed config file naming to ".AmTcfg" and default config to "Default.AmTcfg". Old file is still read when "Default.AmTcfg" doesn't exist. 1.31beta -------- - GUI: phonebook listview is now default object and can be controlled with the cursor keys after window opened (Olli) - GUI: fixed username input problem in SSH mode with certain term.mcc CR/LF settings (Olli) - SSH: math now uses workbench math libraries, making use of FPU if available (Olli) 1.32beta -------- - GUI: added "Sort" button to phonebook (Olli) - GUI: fixed problems with configuration asl popup and certain ASL hacks (Olli) - GUI: main window server string now browses through phonebook server list upon cursor up/down (Olli) - GUI: fixed bug with connection port and type being lost (Olli) - GUI: server string is now active by default when AmTelnet opens (Olli) - GUI: added shortcut keys to phonebook (Olli) 1.33beta -------- - GUI: addded shortcuts to all phonebook's gadgets (Carlos) - Fixed bug causing phonebook gadgets to be initialized with trash for newly added entry (Carlos) - GUI: when phonebook is not empty, first entry is made active by default for the 1st time phonebook is being opened (Carlos) - GUI: phonebook can no longer be dissmissed, if you got some asl requesters remaining opened (Carlos) - General: RegUtil related calls now use VAT (Carlos) - GUI: fixed 'broken' AmTalk logo in win_demo object (Carlos) - GUI: Corrected menu layout and shortcuts (Carlos) - GUI: Localized a few remaining hard-coded strings (Carlos) - GUI: Added CloseGadget to 'connecting...' window, so you can now abort with ESC easyily (Carlos) - GUI: fixed shortcut keys in phonebook to follow ASG (Carlos) - GUI: removed ugly phonebook flickers on window open (Carlos) - GUI: fixed autologin (broken in 1.32beta) (Olli) 1.34beta -------- - GUI: passing a "hostname" on the commandline which matches a phonebook shortname now triggers an autoconnect to the given entry, using those parameters (Olli) - GUI: cycle chained main window gadgets (Carlos) - GUI: reworked menu once again (Carlos) - GUI: Iconify title reflects "[Telnet]" as well as "[SSH]" depending on connection type (Carlos) - General: user is now asked for confirmation whenever he is going to open new connection while the old one is not closed (Carlos) - GUI: Phonebook will now disallow you to remove/edit the definition of the host you are connected to (Carlos) - General: AmTelnet now checks and warns before it overwrite existing file (Carlos) - General: Added "Connect thread" feature (Carlos) - GUI: you can no longer quit AmTelnet if there are any pop asl objects wanking around (Carlos) - GUI: it's now possible to manually enter the shortname of a phonebook entry and press return to connect to it (Olli) - GUI: made about window height more reasonable (Olli) - GUI: cycle chain for main window gadgets is now disabled when a connection is established, to allow TAB to work normally when inside term window (Olli) 1.35beta -------- - GUI: phonebook gadgets get disabled if you connect to the the currently selected host from main window while phonebook window is still opened (Carlos) - GUI: reworked "FKey" window (Carlos) - General: "Connect thread" now clones terminal dimensions as well (Carlos) - GUI: Phonebook's "Entry name" string gadget gets automatically activated when new host is added (Carlos) - GUI: fixed bug causing manually entered host name being always overriden by phonebook active entry (Carlos) - General: Opening SSH connection with "Connect thread" didn't work (Carlos) - GUI: fixed bug causing manually entered host name in main window's "Server" string gadget, being always overriden by phonebook active entry, which made AmTelnet connect to the wrong host as soon as you used phonebook. As a side effect, phonebook's connect-on-list-double-click had to be disabled (Carlos) 1.36beta -------- - GUI: now uses Popplaceholder.mcc class (Carlos) - GUI: reenabled phonebook double click (Olli) - GUI: lame bug (reusing object pointer) caused main window port gadget to not be available once the phonebook was opened (Olli) 1.37beta -------- - GUI: Phonebook should now fit 640x200 screens (Carlos) - General: Fixed "Connect thread" bug causing it to not spawn new AmTelnet correctly (Carlos) - GUI: "Open new window" clones now terminal size (Carlos) - GUI: Phonebook's "Entry name" string didn't get activated when the new host was added to the virgin phonebook (Carlos) - General: fixed potential nuke on "New AmTelnet" and "Connect thread" due to missing TAG_DONE (Olli) 2.0 (2.0 prerelease) ------------- - General: moved to new style keyfiles (Olli) - General: fixed bug making (under some circumstances) the app to behave as unregistered even the valid keyfile was placed in valid key directory (Carlos) 2.0.1 ----- - General: fixed "Conntect thread" wrongly passing port number (Carlos) 2.0.2 ----- - General: SSH thread connections now works for all cases (Carlos) - General: if the host the threaded connection is about to be spawned to exists in the phonebook and has a short name (profile name) defined AmTelnet passes it, to allow auto-login to take place in new AmTelnet too (Carlos) - General: Added "Clone connection" menu item for doing multiple connection to the same host easier (Carlos) 2.0.3 ----- - General: removed a lot of stale code (Olli) - General: fixed an extremly lame bug in setting the iconify title with long hostnames. Buffer overflow and crash either during operation or more likely on quit. We had this before, didn't we? (Olli) 2.1 (release) ------------- - added updated Vapor libraries and MCCs 2.1.1 ----- - Net: now sends an explicit window size packet after logging, to make sure the remote terminal really catches it. (Olli) - GUI: fixed window title to represent proper terminal size in fullscreen mode (Olli) - Net: hopefully fixed a few problems with XPR transfers (Olli) 2.1.2 ----- - Net: fixed another problem with IAC escaping in the XPR driver which could return "0 bytes read" even when a byte was read, but this was collapsed due to IAC deescaping. Should fix Z-Modem problems (Olli) - GUI: made XPR window break button more responsive (Olli) 2.1.3 ----- - GUI: Fkeys could insert trash, depending on stack contents (Olli) - GUI: manually entering a hostname after having connected to a different host via the phonebook before should work now (Olli) 2.1.4 ----- - GUI: relabeled "Entry name" in phone book back to "Short name", for the sake of clarification (Olli) - Net: fixed XPR over SSH, broken in 2.1.3 (Olli) - GUI: clicking "Sort" in the phonebook would desync the internal "active entry" pointer and thus overwrite an phonebook entry (Olli) 2.1.5 ----- - GUI: chat bar status is now saved as well (Olli) - SSH: now returns "ansi" terminal type when in ansi mode (Olli) 2.2 --- - Net: it's now possible to explicitely set the terminal reported during DO TTYPE / SSH terminal type negotiation (as some older termcaps don't have proper "ansi" entries) - added updated Installer script, libs and classes - recompiled with full optimization for release 2.2.1 ----- - Net: now sends linux-alike PTY modes when requesting a SSH link. Should fix problems with HP-UX hosts etc. Thanks to jon@siliconcircus.com for supplying this part of the PenguiNet code (Olli) 2.2.2 ----- - Net: added option to send "keepalives" to avoid TCP timeouts when connecting over a masquerading proxy. Will send SSH IGNORE or Telnet NOP after 30 seconds of no user input. (Olli) 2.2.3 ----- - Net: fixed SSH keepalive to not send a string argument with SSH_MSG_IGNORE for sshds < 1.2.23 (Thanks to Jon 'PenguiNet' Bright) (Olli) 2.2.4 ----- - GUI: fixed duplicate shortcuts fors Local echo / Send Ascii (Olli) - GUI: added Copy & Paste menu entry to copy and immediately past the select line again (Olli) - GUI: fixed selecting an host entry in phonebook and clicking on "Use" (Olli) - GUI: will now lookup a host name in the phonebook if it can't be looked up via DNS (Olli) ===================================================================== Term.mcc changes 19.7 ---- - did some minor optimizations (data alignment, opening of cybergfx library etc.) 20.0 ---- - raised version to 20.0 for AmTelnet compatibility - modified IAC handling 21.0 ---- - added SAVEFH and SAVEPLAINFH to save into AmigaDOS filehandles - raised output buffer limit (for clipboard pastes) - bumped version to 21 so users are able to check for the new methods - recompiled with full optimization - fixed SETABSXY (fixes AmTelnet "Reset window to 80x25") - calculation of available character cell space was wrong and mostly off by 1 cell of width/height - right/bottom frame clearing could cause a call to RectFill() with xstart>xend and/or ystart>yend, thus wrecking havoc on AGA machines 21.1 ---- - fixed a bug in handling IACs which could cause parts of the IAC sequence to be echoed to the user 21.2 ---- - will now properly reply WONT to any DONT inquiry (should fix strange AIX hosts which slap a DO ECHO into our face, but obviously don't like us to actually echo :) 21.3 ---- - will now use SetABPenDrMd() and SetMaxPen() when running on OS 3.x systems. Should squeeze some more speed out of it. - did various more code cleanup 21.4 ---- - recompiled with full optimization 21.5 ---- - will now send WONT to DO TFLOW and LINEMODE 21.6 ---- - wouldn't handle IAC IAC properly 21.7 ---- - will now no longer echo unknown ESC sequences; with debugging enabled, will print the command code 22.0 ---- - bumped version to 22 so users are able to check for the new version 22.1 ---- - changed the translation of the return key to "\n" to conform with the NVT specification. Also, CTRL-RETURN is now translated to "\r" 23.0 ---- - added config item to limit scrollback buffer size (defaults to 1024 lines) 24.0 ---- - implemented ANSI T (scroll up) sequence - implemented ANSI S (scroll down) sequence - changed CR/LF handling *again*, hopefully correct now (special thanks to Jon Bright for advice on that) - TCM_SCROLLDOWN messed up the buffer when a scroll region was set (PINE 4.10 reader havoc) 24.1 ---- - will now reply WONT BINARY to DO BINARY requests -- accepting binary mode seems to confuse several telnetds, making login impossible (SunOS 5.6, and probably many others who reported problems with login and cr/lf handling) 24.2 ---- - recompiled with full optimization 24.3 ---- - initial CVS import 25.0 ---- - added wheel support. Plain wheel scrolls 3 lines, Shift + Wheel scrolls 1 page, Ctrl + Wheel scrolls 1 line (Olli) 26.0 ---- - with cursor style inverse, will now show "plain" when being over inverse text, to make cursor visible when scrolling in a VT100 with inverse parts (Olli) 26.1 ---- - optimized release of 26.0 26.2 ---- - fixed problem with "Position 81" wrapping after the offending write, instead of on the next write. Caused problems with Pine and probably many other. (Olli) 26.3 ---- - fixed character wrapping again (Olli) - OM_GET now correctly returns TRUE when an Term.mcc attribute was found, and only does a DOSUPER for unknown ones (Olli) - some minor internal optimizations (Olli) 26.4 ---- - now ignores private Amiga CSI sequences (Olli) 26.5 ---- - fixed clipboard paste to actually do proper LF/CR conversions (Olli) - fixed wrapping in the last line causing a buffer overwrite and rendering out of the object's rectangle (Olli) 26.6 ---- - implemented ANSI 'd' sequence (relative position absolute) (Olli) - now saves cursorstyle properly (Olli) 26.7 ---- - fixed buffer save failing sometimes (Olli) 27.0 ---- - now returns "ANSI" when in ANSI mode, instead of VT220 (Olli) 27.1 ---- - TTYPE packet had an excess \0 byte at the end (Olli)