Revision history for Perl extension Net::OpenSSH.
0.84 Jul 2, 2023
- Fix scp/rsync_get handling of multiple source files (bug
report by Diab Jerius).
- Document how to run interative sftp sessions.
0.83 Jan 22, 2023
- Skip quoting test for broken AIX csh shell (bug report by
jrtaisto@gmail.com, #rt133092).
- New FAQ entry about running interactive sessions.
- Add new method "default_ssh_configuration" (feature request
by Diab Jerius, #rt140762).
0.82 Mar 5, 2022
- Rerelease as stable version
0.81_04 Feb 25, 2022
- Let rsync use the ssh connection in non-blocking mode (bug
report and pull-request by monkburger@github).
0.81_03 Apr 18, 2021
- Improve forward_agent always semantics.
0.81_02 Apr 18, 2021
- Fix regression, module was broken for perl 5.8.x.
0.81_01 Apr 16, 2021
- Add forward_agent always feature.
0.80 Sep 28, 2020
- Add restart method
0.79 Apr 29, 2020
- Don't clobber $? in disconnect (bug report by Slaven Rezic,
#rt129350).
- Silence spurious warnings being generated in _set_error (bug
report by Jaroslav Reindl, #rt132449).
- Error handling in _master_check method was broken.
- Fix documentation error (patch by Martin Barth)
0.78 May 5, 2018
- Free master pty when the user calls disconnect (bug report
by Jaroslav Reindl, #rt125240).
0.77 Feb 15, 2018
- Fix regression broking password authentication (bug report
by Russell Shingleton).
0.76 Feb 8, 2018
- Allow passing "file_from" and "from0" options into "rsync"
(bug report and patch by Slaven Rezic, fixes #rt124357)
- Document how to manipulate port forwardings.
- Rename sample directory to examples (fixes #rt122042
reported by Karen Etheridge).
0.75_02 Jul 18, 2017
- Add support for "master_pty_force" and "get_master_pty_log"
features.
- Add support for "subsystem" feature.
0.75_01 Mar 3, 2017
- Use an opaque digest as the last part of the multiplexing
socket path in order to reduce its size (bug report by
Sombrerero_Loco at PerlMonks).
- Improve ctl_path/ctl_dir handling catching more errors
earlier.
- Add support for stdin_keep_open feature (bug report by
fwalters at PerlMonks).
0.74 Feb 10, 2017
- Update list of options accepted by method "sftp" (bug report
by Mirror).
0.73 Jun 10, 2016
- Some old perl versions doesn't like Errno constant subs
being called without parents. Add them.
0.72 Jun 9, 2016
- Rerelease as stable.
0.71_03 Mar 16, 2016
- Improve shell detection code.
- Use a timeout to kill external commands not returning
control.
- improve ksh version checking in tests (bug report by jtzako
via PerlMonks)
0.71_02 Mar 11, 2016
- Lighten master socket checks in async mode in order to avoid
blocking and setting custom signal handlers which can
interfere with event-programming frameworks (bug report by
Doug Hoyte).
0.71_01 Jan 20, 2016
- Add entry on the documentation about how to integrate the
module with event-oriented programming frameworks (bug
report by Doug Hoyte, #gh17)
- Use an adaptative delaying algorithm while waiting for the
multiplexing socket to pop up (bug report by Doug Hoyte,
#gh17).
- Improve SIGCHLD handling and interoperability with other
modules setting custom handlers (bug report by Doug Hoyte,
#gh16).
0.70 Jan 20, 2016
- Re-release as stable.
0.69_01 Jan 14, 2016
- Add fish.pm to MANIFEST (bug reported by Erik Ferguson).
0.68 Dec 20, 2015
- Rerelease as stable.
0.67_02 Dec 4, 2015
- Do not croak when a method gets an unknown argument as far
as its value is undef.
0.67_01 Nov 7, 2015
- fix internal waitpid usage (bug report by Konrad
Bucheli, #rt108516)
- use strict and warnings in Net::OpenSSH::ConnectionCache
(bug report and fix by Mohammad S Anwar)
0.66 Oct 11, 2015
- documentation fix (reported by Alex Kok)
- allow redirecting debug output to a custom file handle
0.65_06 Aug 26, 2015
- accept IPv6 addresess with zone indexes (bug report by
Cserbák Márton)
- some documentation corrections (bug report and patch by
Florian Schlichting)
0.65_05 Jul 13, 2015
- improve documentation
0.65_04 Jul 13, 2015
- add support for Object::Remote framework integration
- be more explicit on errors about non matching host public
keys if possible (still unfinished, bug report by Ferenc
Erki)
- add support for connecting to remote unix sockets (requires
patch to OpenSSH)
0.65_03 Jun 18, 2015
- remove defined-or operator usage in order to remain perl
5.8.x compatible
0.65_02 Jun 17, 2015
- accept as targets URIs where the username contains the at
sign (bug report by Mark Rushing)
0.65_01 Mar 12, 2015
- add disown_master method
- add sshfs_mount.pl sample
0.64 Mar 12, 2015
WARNING: mayor internal changes have been introduced since
last stable release!!!
- Rerelease as stable
0.63_07 Jan 25, 2015
- umask is not thread safe, avoid it (bug report and fix by
Shaun Pankau)
0.63_06 Jan 15, 2015
- DESTROY was overwritting $@
0.63_05 Jan 8, 2015
WARNING, this is a mayor internal change!!!
it may introduce regression bugs!!!
===============================================================
- completely revamp internal logic for master monitoring
===============================================================
- add constructor option 'connect'
- add method 'any'
- add "contributing code" documentation section
- update TODO list
0.63_04 Jan 4, 2015
- remove usage of defined-or operator in order to restore
support for perl 5.8
0.63_03 Jan 3, 2015
- remove usage of defined-or operator in order to restore
support for perl 5.8
0.63_02 Jan 2, 2015
- make module instalable on Windows and Cygwin
- fix error on regular expression inside quoting.t (bug report
by Slaven Rezic)
- documentation section about security added
- doc corrections (reported by Gregor Herrmann from Debian)
- AT&T ksh is broken, don't use it when testing quoting
functions (bug report by Greg Oldendick)
0.63_01 Jun 14, 2014
- add clean_cache method to Net::OpenSSH::ConnectionCache (bug
report by Mithun Ayachit)
0.62 Jun 14, 2014
- rerelease as stable
0.61_18 May 6, 2014
- add passwd_prompt feature
- check for the password not being requested a second time
(bug report by leschm)
- more spelling errors corrected
0.61_17 Apr 24, 2014
- lots of spelling errors corrected
- support code for master_setpgrp feature was not reseting the
terminal process group owner on failure (bug report by
Matthias Hofer)
- MSWin, MSCmd and Chain quoters where missing from the
MANIFEST and so not being distributed
- document MSWin and MSCmd quoters
- add dummy package Net::OpenSSH::SSH
0.61_16 Apr 6, 2014
- add work around in quoting.t for Solaris csh 'fixing'
invalid UTF8 sequences
0.61_15 Apr 2, 2014
- from OpenSSH version 6.5 UNKNOWN is not a valid
you-are-not-going-to-use-it-anyway hostname as it tries to
resolve; now we use 0.0.0.0 instead
- add support for master_setpgrp and setpgrp features
- scp does not accept setting bandwidth limit to 0
0.61_14 Oct 30, 2013
- the way used in tests to detect when they are running in the
background was broken (bug report by Victor Efimov)
0.61_13 Oct 28, 2013
- set bath_mode when test are being run on the background
(bug report by Victor Efimov)
- disable testing against custom ssh server as it is currently
broken
0.61_12 Oct 10, 2013
- rsync_* was not replicating time attributes when copy_attrs
was set (bug report and fix by SUN Guonian)
- add chain quoter
- add quoters for MS Windows (MSWin, MSCmd)
- extended argument quoting was never triggered
- stream_encoding option was not accepted by capture2 method
- glob_quoting option was not accepted by most methods
- rename quote_style option as remote_shell
0.61_11 Aug 29, 2013
- rsync_get method relied on a feature not available in old
but still widely used versions of rsync (bug report by
laiweiwei)
0.61_10 Jul 29, 2013
- disable ControlPersist only when OpenSSH version >= 5.6 (bug
report by Philippe Bruhat)
- autodetect OpenSSH version during object creation
0.61_09 Jul 19, 2013
- forcibly disable ControlPersist that may have been set from
ssh configuration files (bug report by Philippe Bruhat)
0.61_08 Jul 19, 2013
- fix test errors on perl 5.8
0.61_07 Jul 15, 2013
- capture methods were not hanling retriable errors correctly
(bug report by Victor Efimov)
0.61_06 Jul 12, 2013
- another take into the shell_is_clean sanity check. Now we
mimic sshd close enough to fool bash and make it behave as
when really called by sshd
0.61_05 Jul 11, 2013
- add shell_is_clean sanity check to test scripts to avoid
false negatives while testing (bug report by Karen
Etheridge)
0.61_04 Jun 28, 2013
- print more informative error messages when loading an
optional module fail
- remove useless old fix for a nonexistent bug on
_fileno_dup_over (un-bug report by Tammy Rockvam)
0.61_03 May 10, 2013
- when testing on AIX don't check mux socket permissions and
use correct ps arguments (bug report by mwatson)
- apply doc patch by Florian of Debian project
- add open3socket method
- open2socket and open2pty now return the socket and pty
respectively when called on scalar context
- methods returning several file objects now croak when called
on scalar context
0.61_02 Apr 16, 2013
- add support for multiple shell quoting backends
- add support for X11 forwarding
0.61_01 Mar 18, 2013
- remote shell detection code was broken in tests (bug report
by Neil Bowers)
- skip tests requiring a bourne shell when the remote shell is
csh or some derivative as tcsh
0.60 Feb 15, 2013
- scp_put and rsync_put where not handling correctly the case
where glob was set but the given file patterns didn't match
any local file (bug report by Pavel Leity).
- $SIG{__DIE__} was not always localized before calling eval
0.59 Jan 31, 2013
- release as stable
- fix some misspellings
0.58_04 May 2, 2012
- solve some git merge mistakes
0.58_03 May 1, 2012
- several misspellings corrected on the docs (bug report by
Florian Schlichting from Debian - I love these guys!)
- don't put square brackets around IPv6 addreses when passing
the hostname to ssh (bug report by Alexey ?)
0.58_02 Apr 16, 2012
- strict_mode lets pass world-writable directories if they
have the restricted deletion flag set
- implement sshfs import and export methods
- add forward_agent feature
- do not disable ssh-agent when using password authentication
- some documentation improvements
0.58_01 Jan 30, 2012
- add new documentation section about debugging
- new helper module Net::OpenSSH::OSTracer added
- ConnectionCache module was missing from MANIFEST
- correction on default_ssh_opts feature documentation
(reported by Yann Kerhervé)
0.57 Dec 21, 2011
- quote equal sign
- do not quote commas
0.56_01 Dec 8, 2011
- rsync methods were failing when user was defined (bug report
by black_fire)
- detect when the destructor is being called from a different
thread (bug report by troy99 at PerlMonks)
- support for Net::OpenSSH::Gateway added
0.55 Dec 6, 2011
- solve regression from 0.53_03: rsync methods were broken
because the hostname was not being correctly removed from
the ssh command passed to rsync (bug report by Mithun
Ayachit)
0.54 Dec 4, 2011
- release as stable
0.53_05 Nov 23, 2011
- scp methods were broken when a user was given (bug report by
Andrew J. Slezak)
- add support for verbose option in scp methods
- implement parse_connections_opts
- solve bug related to expansion of HOST var when an IPv6
address was given
- move FACTORY docs to the right place
- add FAQ about running remote commands via sudo
- add sample for Net::Telnet integration
- add sample for sudo usage reading password from DATA
0.53_04 Sep 2, 2011
- add default_ssh_opts feature
- getpwuid may fail, check $home is defined before using it
- add FAQ entry about MaxSessions limit reached
- move FACTORY docs to the right place
0.53_03 Aug 18, 2011
- handling of default_std*_file was broken (bug report and
patch by Nic Sandfield)
- keep errors from opening default slave streams
- add Net::OpenSSH::ConnectionCache package
- add FACTORY hook
- place '--' in ssh command after host name
- add support for die_on_error
- add support for batch_mode feature
- typo in sample code corrected (reported by Fernando Sierra)
- using { stdin_data => [] } was generating warnings
0.53_02 Jul 12, 2011
- add support for custom login handlers
- remove SIG{__WARN__} localizations
0.53_01 May 15, 2011
- quoter and glob_quoter fully rewritten from scratch
- quoter was not handling "\n" correctly (bug report and work
around by Skeeve)
- minor doc improvements
0.52 May 9, 2011
- release as stable
- skip bad passwd test when IO::Pty is not available
0.51_12 May 2, 2011
- require version 2 of the SSH protocol (bug report by Jo
Rhett)
- remove harmless "my $foo = ... if ..." bug
0.51_11 Apr 24, 2011
- encoding handling in sftp method was broken (bug report and
solution by Todd Rinaldo)
- sftp method was broken (regression)
- better support for sharing SSH connections with children
- more tests
- add sample for usage with Net::Telnet
- bad sample in documentation corrected
0.51_10 Mar 29, 2011
- error status was not reset between calls (regression)
- remove internal line numbers from error messages
- encoding errors were not propageted in pipe_in and pipe_out
methods
- minor debuging cleanup
- better messages on bad encoding errors
0.51_09 Mar 29, 2011
- add support for passphrase protected keys
- add support for passing the private key path as an explicit
constructor option
- bug solved on password handling
- bug solved in _fileno_dup_over
- remove redundant _check_master_and_clear_error
- more tests
- some doc improvements
0.51_08 Mar 28, 2011
- pipe_in and pipe_out were not correctly setting error status
on failure
- support argument_encoding in pipe_in and pipe_out
- document how to set StrictHostKeyChecking=no
- replace @error_prefix arguments by a localized stack
- use _load_module for Encode loading
- remove no-encoding hack on _master_ctl
0.51_07 Mar 22, 2011
- add encoding support
- undef $SIG{CHLD} inside blocking methods
0.51_06 Mar 16, 2011
- make hostname argument to constructor optional when
external_master is set
- better error handling in constructor
- s/reuse_master/external_master/. I never were happy with the
old option name.
- some minor doc corrections
0.51_05 Mar 15, 2011
- implement reuse_master feature
- do not propagate extra arguments from wait_for_master to
_wait_for_master
- accept ssh_opts in make_remote_command
0.51_04 Mar 10, 2011
- solve "Not enough arguments for grep" bug (reported by Tom
Wittbrodt)
- some documentation improvements
0.51_03 Mar 9, 2011
- error message corrected
- troubleshooting guide improved
- add pointer to OpenSSH Wikibook
- add autosudo.pl sample
- implement stdintout_dpipe_is_parent feature
0.51_02 Feb 10, 2011
- add support for test method
- add support for dpipe feature
- simplify _wait_for_master code
- remove spurious warnings generated when control command
failed to run (bug report by jaiieq from Perlmonks)
- timeout at object level where being ignored by _waitpid
- document how to run detached remote processes
0.51_01 Feb 1, 2011
- add support for kill_ssh_on_timeout feature and better
timeout handling
- set ssh option ServerAliveInterval
- system could return -1 on error instead of false
- add change_password.pl sample
- some tests were failing when using csh as the remote shell
(bug report by Scott Davis)
0.50 Nov 21, 2010
- shell_quote in t/1_run.t was escaping '_' (bug report by
Andreas J. König)
- some typos corrected
- initial implementation of scp_cat
0.49 Aug 7, 2010
- do not kill master from forked processes (bug report by
scotchie at PerlMonks)
0.48 Aug 2, 2010
- bug quoting escaped scalars as globs solved
- new faq for "can't change directory"
- support calling shell_quote and shell_quote_args as class
methods
- more tests
- minor doc corrections
0.47 Apr 13, 2010
- document how to make it work under Solaris
- some docs reorganization and improvements
0.46_02 Mar 29, 2010
- add suport for default_stdin_file, default_stdin_discard and
similar options
- add stdinout_socket feature and open2socket shortcut method
- rename some internal methods to more meaningfull names
- add open_tunnel and capture_tunnel methods
- add support for tunnel feature and docs
- document mod_perl/mod_perl2 integration
- document not-a-real-file-handle errors
- some minor doc updates
- run tests with StrictHostKeyChecking=no
- disable tty allocation for control commands
- better debugging for _io3
0.46_01 Mar 25, 2010
- do not depend on STDIN, STDOUT and STDERR being file
descriptors 0, 1, and 2 respectively as it happens, for
instance, under mod_perl (bug report by eserte via
PerlMonks)
- use POSIX::dup2 to duplicate file descriptors, instead of
perl open builtin
- set stdin_discard when running control commands as it may be
closed or tied
- better debugging for waitpid and _io3
- error in example in documentation corrected (reported by
Slaven Rezic)
0.45 Feb 17, 2010
- support for taint mode
- use better IPv6 regexp
- bug in glob_quoter incorrectly handling empty strings solved
- document how $SIG{CHLD} can break some methods and add FAQ
- some typos corrected
- update copyright notices
0.44 Jan 26, 2010
- solve bug on rsync methods not correctly handling
pass-through options carrying an argument (bug report by
Daiju Kito)
- support several verbose levels in rsync methods
- document spurious warnings that appear when tty => 1 is
given and stdin is not attached to a tty
0.43 Dec 14, 2009
- call ssh with -tt instead of -t to force remote tty
allocation even when stdin is not attached to one locally
(bug report by Todd E. Rinaldo)
0.42 Dec 5, 2009
- add FAQ section
- add commercial support offering
- add pointer to my wishlist :-)
0.41_03 Nov 16, 2009
- add testing known_hosts to MANIFEST
- some bits where missing from 0.40
- allow also keyboard-interactive authentication when password
is given (bug report by Todd E. Rinaldo)
0.40 Nov 14, 2009
- DESTROY was clobbering $@ (bug report by Todd E. Rinaldo)
- when password authentication is requested add flags to ssh
master command to disable other auth. options
- document how to integrate Net::OpenSSH with Expect
0.39 Oct 10, 2009
- use SIGTERM instead of SIGHUP to kill lazy SSH master
- on 1_run.t remote commands could be aliased bug (report and
patch by Danijel Tasov)
- add methods for external master PID handling
- add 'all' tag to Net::OpenSSH::Constants
- check SSH client version from Makefile.PL
- work around L<Foo::Bar> links in POD being rendered as "the
Foo::Bar manpage" by some POD backends.
0.38 Sep 25, 2009
- remove alpha-status warning from docs!
- add debug support to master killing
- DESTROY was generating warnings when called before the
master connection had been established successfully
- add variable expansion feature
- minor doc corrections
0.37 Sep 15, 2009
- add support for stdout_file, stderr_file and stdin_file
options
0.36 Jul 8, 2009
- open2pty, open3 and open3pty where not handling transparent
options for open_ex, and other minor bugs
- pty handling in open_ex was broken
- expect sample added
0.35 Jun 30, 2009
- strict_mode was not working (bug report by wardmw@perlmonks)
- documentation correction (error reported by Kevin
Mulholland)
- Document that the SSH client bundled with your operative
system may not be good enough (report by Arun Rajamari).
- Add pointer to SSH::Batch in the docs
0.34 Mar 26, 2009
- pipe_out was broken (bug report by Matthew Merhar)
0.33 Mar 24, 2009
- password obfuscation was failing on '%' (bug report by
Sawyer X)
0.32 Mar 18, 2009
- async mode was not working in constructor (bug report by
Niels Larsen)
0.31 Mar 3, 2009
- password authentication was not working on OS/X (bug report
by Niels Larsen)
- module loader was generating warnings on development
versions (bug report by Todd E. Rinaldo)
0.30 Feb 13, 2009
- make sftp open_ex based and add support for stderr_fh and
stderr_discard
- croak on unaceptable sftp options
- delete SSH_ASKPASS and SSH_AUTH_SOCK from env. when password
authentication is requested
0.29 Feb 12, 2009
- sftp method was broken, regression introduced on 0.11 (bug
report by Todd E. Rinaldo)
0.28 Feb 11, 2009
- scp methods were broken, regression introduced on 0.24 (bug
report by Ryan Schumacher)
- doc chapter about 3rd party module integration
0.27 Feb 5, 2009
- better tty feature handling in open_ex, now it defaults to
ssh default behaviour
- support for \ and \\ quoting escapes added
- minor doc corrections
- document ssh_opts (bug report by Graham Knop)
0.26 Feb 3, 2009
- docs reorganized and simplified
- new std(in|out|err)_discard options added
- new master_std(out|err)_(fh|discard) options added (feature
request by Michael Courtney)
- async support in system
0.25 Feb 2, 2009
- remove obsolete FAQ
0.24 Feb 2, 2009
WARNING!!! backward incompatible changes in this release:
===============================================================
- system method now returns true on success and undef otherwise
- errors OSSH_SLAVE_SCP_FAILED and OSSH_SLAVE_RSYNC_FAILED
replaced by generic OSSH_SLAVE_CMD_FAILED
- multiplexing_socket_path method renamed to get_ctl_path
===============================================================
- new make_remote_command method
- troubleshooting guide added
- ask for help in Perlmonks!
- check multiplexing socket before any command
- more robust waitpid used
- detect old OpenSSH versions of ssh (bug report and patch by
David Markham)
0.23 Jan 25, 2009
- don't quote ~ when globing (bug report by Niels Larsen)
- IPv6 addresses are not required inside brackets (feature
request by Ryan Kruse)
- better IPv6 regexp from Regexp::IPv6
- some doc corrections
0.22 Jan 22, 2009
- use better regexp for IPv6 addresses
0.21 Jan 22, 2009
- recognize IPv6 addresses (bug report by Ryan Kruse)
0.20 Jan 22, 2009
- default_stderr_fh was wrongly handled (bug report by Sawyer
X).
- add getters for user, host and port properties (feature
request by Niels Larsen)
- doc errors corrected
0.19 Jan 20, 2009
- shell_quote_glob method added
- rsync has its own quoting rules (bug report by Niels Larsen)
- implement copy_attrs feature for rsync methods (bug report
by Niels Larsen)
0.18 Jan 20, 2009
- several documentation corrections and improvements
contributed by Niels Larsen.
- add support for open_ex stdout_fh, stderr_fh and
stderr_to_stdout options to rsync methods (bug report by
Niels Larsen)
- example of asynchronous usage of scp added
0.17 Jan 19, 2009
- localize $SIG{__DIE__}, $SIG{__WARN__} and $@ for evals (bug
report by Niels Larsen)
- quote empty arguments correctly
- add support for new constructor options
default_std(in|out|err)_fh
- some doc improvements
0.16 Jan 11, 2009
- add support for bwlimit, copy_attrs, stderr_fh, stdout_fh
and stderr_to_stdout to scp methods
- correct bug in option checking for spawn and open2
0.15 Jan 9, 2009
- do not escape dots when quoting args
- some shell quoting tests added
- better glob quoting
- informative rsync error messages
- doc improvements and typos
0.14 Jan 9, 2009
- add experimental support for rsync file transfers
- rework scp implementation in order to share as much as
possible with rsync methods
0.13 Jan 8, 2009
- when globing in scp_get, quote spaces only
- add quote_spaces_only feature to _quote_args method
- some scp_put and scp_get problems solved (bug report and
patch by Maxim Yemelyanov).
- _quote_args was returning wrong result in scalar context
(bug report and solution also by Maxim Yemelyanov).
- set umask when creating ctl_dir (bug report by Maxim
Yemelyanov).
0.12 Jan 7, 2009
- support timeout option on capture methods (bug report by Pete
Emerson).
- remove broken perl 5.6.x workarounds
0.11 Dec 24, 2008
- new shell_quote method
- add scp_get and scp_put methods
- add spawn method
- add support for ssh_opts in several methods
- _make_call_ex renamed to _make_call
- _make_call removed
- fix doc errors
0.10 Dec 17, 2008
- require OpenSSH > 4.7 for alternative testing aproach
- use correct ps args when testing on Solaris
- new mux_socket_path method
- more tests
0.09 Dec 10, 2008
- fallback testing method when ssh'ing to localhost is not enabled
- add support for master_opts constructor argument
0.08 Dec 10, 2008
- require 5.8.x and remove compatibility hacks for older versions
- solve bug in open_ex when pty is requested
- perform sanity checks on child file handles on open_ex
0.07 Dec 9, 2008
- remove >>& incompatibility for perl 5.6.x
- in tests, sort "ls" output, as it seems that it can change
between two consecutive runs in some OSs
0.06 Dec 3, 2008
- open_ex API redesigned
- better bad options handling
- support for async connections
- shell metacharacter quoting
- improved debugging
- improved documentation
0.01 Fri Nov 14 01:02:40 2008
- original version; created by h2xs 1.23 with options
-AXn Net::OpenSSH