The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 0.60 - 2016-05-23

  • Fix connecting to a custom port (bug report by Ferenc Erki).

Changes for version 0.59_23 - 2016-05-19

  • Fix handling of eof in Channel read2 method.
  • Several documentation corrections.
  • Add example/benchmark.pl to the distribution.

Changes for version 0.59_22 - 2016-05-18

  • Add support for some additional constants.
  • Make remote login name default to be the same as the local one.
  • Several documentation improvements.

Changes for version 0.59_21 - 2016-05-13

  • Conversion of stream_id arguments has been moved to a typemap.
  • Channel 'flush' was not handling 'all' properly.

Changes for version 0.59_20 - 2016-05-11

  • Method timeout is not available in old libssh2 versions.

Changes for version 0.59_19 - 2016-05-10

  • Honour timeout setting from _ask_user method.

Changes for version 0.59_18 - 2016-05-09

  • Fix failing test caused by a remote SIGPIPE (bug report by Ferenc Erki).
  • Work-around libssh2_channel_wait_closed bug.
  • Fix channel and file PRINTF methods.
  • Improve tests.

Changes for version 0.59_17 - 2016-05-06

  • Port Channel "readline" method to File class.
  • Implement File getc in XS for improved performance.
  • Add workaround for perl bug around EOF method of tied file handles.
  • Add more tests.
  • Several documentation improvements.

Changes for version 0.59_16 - 2016-05-04

  • Save EAGAIN errors after every libssh2 channel and session call.
  • Extend exit_signal method to return the tree values comming back from libssh2_channel_exit_signal.
  • Make Channel blocking method be just a wrapper for session blocking method.
  • Add channel wait_eof method.
  • Make exit_signal and exit_status call wait_closed under the hood, otherwise they could return a wrong result.
  • Make wait_closed call wait_eof under the hood to avoid bad usage errors.
  • Add method exit_signal_number that translates the result of exit_signal to the matching local signal number (note that on the remote machine the signal number may be different).
  • Channel CLOSE now mimics real file handles better and sets $?.
  • Improve the test script so that it can be better automated.

Changes for version 0.59_15 - 2016-05-03

  • Channel and SFTP READLINE and readline methods were not handling correctly undef as the end of line marker (i.e. $/=undef).
  • SFTP and Channel BINMODE methods were returning undef instead of 1.
  • Add even more tests!
  • Add more tests (contributed by Chris Kirke).
  • SFTP file READ was broken (reported by Chris Kirke).

Changes for version 0.59_14 - 2016-04-28

  • READLINE was not clearing the error code correctly.

Changes for version 0.59_13 - 2016-04-26

  • Detect EOF in most cases (cannot be done always due to libssh2 limitations) in "readline" and "getc".
  • Clear error before returning from "readline" as it returns undef for compatibility with Perl builtin even when no error has happened.
  • Several documentation improvements.

Changes for version 0.59_12 - 2016-04-26

  • WARNING: backward incompatible change: "READLINE" had an undocumented hard coded timeout of 250ms which made the method unreliable. That timeout has been removed. If desired, the old behaviour can be attained setting non-blocking mode or with a global timeout.
  • Add Channel "readline" method.
  • Add Channel "getc" method.
  • Cleanup of the channel tie interface.

Changes for version 0.59_11 - 2016-04-22

  • Add channel method "read2".
  • Do not retry read operations when "libssh2_channel_read_ex" returns 0 (bug report by Ferenc Erki).
  • Fix definitions for LIBSSH2_ERROR_NONE, LIBSSH2_SESSION_BLOCK_INBOUND and LIBSSH2_SESSION_BLOCK_OUTBOUND.
  • Scale timeout values passed between IO::Socket::* (using seconds) and libssh2 (using miliseconds).
  • Several documentation improvements.

Changes for version 0.59_10 - 2016-04-19

  • Don't warn when undef is passed to method "timeout".
  • Add more tests.
  • Several documentation improvements.

Changes for version 0.59_09 - 2016-04-18

  • Method "read" was not returning errors correctly.
  • Typemaps for 64bit integers were broken
  • Restrict the channel type to "session" in method "channel".
  • The realclean target of the generated Makefile was deleting const-c.inc and const-xs.inc which are not generated anymore.
  • Several documentation improvements.

Changes for version 0.59_08 - 2016-04-18

  • Get extended diagnosis messages when $ENV{AUTOMATED_TESTING} is set.

Changes for version 0.59_07 - 2016-04-17

  • In auth, do not call authentications methods unless they are supported by the server.
  • Fix minor scp_get issue
  • Add workaround for getpwuid not being available on MS Windows.
  • Several documentation fixes.

Changes for version 0.59_06 - 2016-04-17

  • Add method die_with_error into Net::SSH2::SFTP
  • Several documentation improvements.

Changes for version 0.59_05 - 2016-04-16

  • Switch the order of "policy" and "known_host_path" arguments in method "check_hostkey".
  • Improve "check_hostkey" method adding support for using a callback as policy.
  • Rename "remote_port" to "port", "remote_hostname" to "hostname" and "check_remote_hostkey" to "check_hostkey".
  • Rewrite constant generation code
  • Several documentation improvements.

Changes for version 0.59_04 - 2016-04-13

  • Use libssh2 function "libssh2_scp_send64" when available. It allows sending files bigger than 4GB.
  • Improve the way the user is prompted.
  • Improve "check_remote_hostkey" method (WIP).
  • Add scat.pl sample script
  • Several documentation improvements.
  • Remove File::Slurp dependency in test script.

Changes for version 0.59_03 - 2016-04-12

  • Fix Channel "read" method that was hanging in blocking mode.
  • Add "check_remote_hostkey" method for easy remote host key verification (WIP)
  • Add "die_with_error" method.
  • Several documentation improvements.

Changes for version 0.59_02 - 2016-04-12

  • Fix "auth_list" method.
  • Fix handling of "lib" argument in Makefile.PL.
  • Compilation was broken for perls 5.8.0 .. 5.8.3.
  • Several documentation improvements.

Changes for version 0.59_01 - 2016-04-11

  • WARNING: this release includes lots of changes, some visible, most internal. Regressions are expected. Also, it introduces some minor backward incompatible changes - but in those cases, the old behavior was broken or insane anyway.
  • libssh2 version 1.7.0 is now recommended. The module would still compile against older versions, but not all its features will be available.
  • Makefile.PL has been refactored and improved. Now it is better able to find the library libssh2 and compile code using it.
  • Lots of XS code refactoring has been performed in order to simplify the module internals. Specifically, now typemaps are used extensively to convert between C and Perl types. Also, some complex non-performance-critical functions have been moved to the Perl side or broken in a high level Perl wrapper and a low level simpler C wrapper.
  • KnownHost methods now return undef on error instead of die'ing. Note that this submodule is still marked as experimental.
  • Die when data containing wide characters is passed (i.e. outside the latin1 range). In previous versions, methods on this module would happily accept strings internally encoded as latin1 or utf8 and pass then along untouched, resulting in unreliable behavior.
  • In 32bit perls, return offsets and file sizes as NVs when required to avoid overflow.
  • Method "new" now also accepts the options "compress" and "sigpipe".
  • Passing options to "connect" is now deprecated.
  • Passing a file descriptor number to "connect" is not supported anymore (it was already broken).
  • Method "connect" consistently returns undef on error. The error code can be retrieved calling the "error" method (requires libssh2 1.7.0). In previous versions, some errors made the method die.
  • Timeouts are handled correctly inside "connect".
  • Report EAGAIN in the same way as any other error. This introduces a minor backward incompatibility, but the old behavior was utterly insane and undocumented, and so probably, nobody was using it right anyway!
  • Use libssh2_session_set_last_error function for storage of the Perl level errors (required libssh2 1.7.0). This may introduce some minor backward incompatibilities, but the old code was broken and unreliable anyway.

Modules

Support for the SSH 2 protocol via libssh2.
SSH2 channel object
SSH 2 SFTP directory object
SSH2 SFTP file object
SSH 2 knownhosts object
SSH 2 listener object
SSH 2 public key object
SSH 2 Secure FTP object