Revision history for Control-CLI
1.00 2011-03-27
First version, released on an unsuspecting world.
1.01 2011-04-03
* Module installation test script now requires (build_requires) Net::Telnet
* Changed test script for detection of Serial port under unix which was not working on most Linux systems
* Ported Device::SerialPort ability to manually specify a TESTPORT=<DEVICE> when running Makefile.PL/Build.PL
* Added use of Exporter module for optionally importing class methods
1.02 2011-05-08
* Still a few Linux systems where my serial port detection failed; modified the test script
* Corrected uninitialized $fh warning in input_log, output_log, dump_log when no argument and telnet connection
1.03 2011-08-24
* Implemented eof() method
* Corrected sleep timer in readwait() which was doing non-blocking reads much faster than 0.1 seconds intervals
* Corrected read() which was not logging to input/dump logs in non-blocking mode for SSH & Serial, if read buffer was "0"
* Login stage variable was not re-initialized correctly after a disconnect(); could cause errors on subsequent login()
1.04 2013-01-04
* Reversed a change made in 1.03 under readwait, older versions of Perl generate a warning when doing length(undef)
* Net-SSH2's eof does not seem to work; modified eof method to make it behave consistently for both Telnet & SSH
* SSH stderr is now merged onto regular channel; using Net-SSH2 ext_data('merge') call
* Implemented ssh_channel() method to be able to return underlying SSH channel object
* Module now detects errors from SerialPort's read_const_time used before reads and updates eof
* When errmode() is set to $arrayref the error message is now appended as the last argument to &$coderef
* Added an interactive mode to the test script so that a connection to a device can be easily tested after installation
* Enhanced alternative form of login() method allows login sequence/banner to be captured and returned
* Modified default login/password prompts expected by login() method
* Implemented break() method
* No more calls to debug() method when the debug level is not changed; eliminates carping from Device::SerialPort
1.05 2013-08-25
* As of this version, Telnet & SSH connections can now be run over IPv6, as long as IO::Socket::IP is installed
* SSH failed connection now gives error message "SSH unable to connect" instead of "SSH unable to password authenticate"
* Net-SSH2 (libssh2) eof still not working, and now returning a different error on disconnection; updated eof method
* Some devices have a crude SSH implementation with no authentication and instead use an interactive login after the SSH
connection is established (just like Telnet does); the connect() method is now changed to allow these SSH connections
* Added connection_timeout for Telnet and SSH connections; previously no consistent connection timeout was enforced
* Method connect() now accepts '$host [$port]' which will work for IPv6 addresses; syntax '$host[:$port]' is deprecated
* Serial port disconnect() now flushes recent writes before closing the connection; needed with Device::SerialPort
* Method waitfor() now catches invalid Perl regular expression patterns passed to it and performs the error mode action
* Added a flush_credentials method to undefine stored credentials
* Code changes to pass Perl Critic severity 4 and above violations
1.06 2014-04-21
* Method login() in list context did not return output received from host device if the login failed
* Version 1.05 on MSWin32 was not working anymore with newest Net::Telnet 3.04 (due to bug id 94913); added workaround