r41918 - in /branches/upstream/libnet-ssh2-perl/current: Changes META.yml Makefile.PL lib/Net/SSH2.pm
carnil-guest at users.alioth.debian.org
carnil-guest at users.alioth.debian.org
Sat Aug 15 20:48:17 UTC 2009
Author: carnil-guest
Date: Sat Aug 15 20:48:12 2009
New Revision: 41918
URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=41918
Log:
[svn-upgrade] Integrating new upstream version, libnet-ssh2-perl (0.22)
Modified:
branches/upstream/libnet-ssh2-perl/current/Changes
branches/upstream/libnet-ssh2-perl/current/META.yml
branches/upstream/libnet-ssh2-perl/current/Makefile.PL
branches/upstream/libnet-ssh2-perl/current/lib/Net/SSH2.pm
Modified: branches/upstream/libnet-ssh2-perl/current/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libnet-ssh2-perl/current/Changes?rev=41918&op=diff
==============================================================================
--- branches/upstream/libnet-ssh2-perl/current/Changes (original)
+++ branches/upstream/libnet-ssh2-perl/current/Changes Sat Aug 15 20:48:12 2009
@@ -2,6 +2,10 @@
Developer/maintainer: David B. Robins <dbrobins at cpan.org>.
Project started 2005-10-23 in Redmond, Washington, USA.
+
+0.22 2009-08-15 11:10:03
+ - "or die" semantics for ->connect (in non-void context)
+ - Timeout option for ->connect
0.21 2009-06-06 21:02:34
- some fixes for Cygwin
Modified: branches/upstream/libnet-ssh2-perl/current/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libnet-ssh2-perl/current/META.yml?rev=41918&op=diff
==============================================================================
--- branches/upstream/libnet-ssh2-perl/current/META.yml (original)
+++ branches/upstream/libnet-ssh2-perl/current/META.yml Sat Aug 15 20:48:12 2009
@@ -21,7 +21,7 @@
provides:
Net::SSH2:
file: lib/Net/SSH2.pm
- version: 0.21
+ version: 0.22
Net::SSH2::Channel:
file: lib/Net/SSH2/Channel.pm
Net::SSH2::Dir:
@@ -38,4 +38,5 @@
perl: 5.6.0
resources:
license: http://dev.perl.org/licenses/
-version: 0.21
+ repository: git://github.com/rkitover/net-ssh2.git
+version: 0.22
Modified: branches/upstream/libnet-ssh2-perl/current/Makefile.PL
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libnet-ssh2-perl/current/Makefile.PL?rev=41918&op=diff
==============================================================================
--- branches/upstream/libnet-ssh2-perl/current/Makefile.PL (original)
+++ branches/upstream/libnet-ssh2-perl/current/Makefile.PL Sat Aug 15 20:48:12 2009
@@ -58,6 +58,10 @@
inc "$inc -I.";
realclean_files qw/const-c.inc const-xs.inc/;
makemaker_args @define;
+
+resources repository =>
+ 'git://github.com/rkitover/net-ssh2.git';
+
WriteAll;
if (eval {require ExtUtils::Constant; 1}) {
Modified: branches/upstream/libnet-ssh2-perl/current/lib/Net/SSH2.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libnet-ssh2-perl/current/lib/Net/SSH2.pm?rev=41918&op=diff
==============================================================================
--- branches/upstream/libnet-ssh2-perl/current/lib/Net/SSH2.pm (original)
+++ branches/upstream/libnet-ssh2-perl/current/lib/Net/SSH2.pm Sat Aug 15 20:48:12 2009
@@ -17,155 +17,155 @@
# constants
my @EX_callback = qw(
- LIBSSH2_CALLBACK_DEBUG
- LIBSSH2_CALLBACK_DISCONNECT
- LIBSSH2_CALLBACK_IGNORE
- LIBSSH2_CALLBACK_MACERROR
- LIBSSH2_CALLBACK_X11
+ LIBSSH2_CALLBACK_DEBUG
+ LIBSSH2_CALLBACK_DISCONNECT
+ LIBSSH2_CALLBACK_IGNORE
+ LIBSSH2_CALLBACK_MACERROR
+ LIBSSH2_CALLBACK_X11
);
my @EX_channel = qw(
- LIBSSH2_CHANNEL_EXTENDED_DATA_IGNORE
- LIBSSH2_CHANNEL_EXTENDED_DATA_MERGE
- LIBSSH2_CHANNEL_EXTENDED_DATA_NORMAL
+ LIBSSH2_CHANNEL_EXTENDED_DATA_IGNORE
+ LIBSSH2_CHANNEL_EXTENDED_DATA_MERGE
+ LIBSSH2_CHANNEL_EXTENDED_DATA_NORMAL
);
my @EX_error = qw(
- LIBSSH2_ERROR_ALLOC
- LIBSSH2_ERROR_BANNER_NONE
- LIBSSH2_ERROR_BANNER_SEND
- LIBSSH2_ERROR_CHANNEL_CLOSED
- LIBSSH2_ERROR_CHANNEL_EOF_SENT
- LIBSSH2_ERROR_CHANNEL_FAILURE
- LIBSSH2_ERROR_CHANNEL_OUTOFORDER
- LIBSSH2_ERROR_CHANNEL_PACKET_EXCEEDED
- LIBSSH2_ERROR_CHANNEL_REQUEST_DENIED
- LIBSSH2_ERROR_CHANNEL_UNKNOWN
- LIBSSH2_ERROR_CHANNEL_WINDOW_EXCEEDED
- LIBSSH2_ERROR_DECRYPT
- LIBSSH2_ERROR_FILE
- LIBSSH2_ERROR_HOSTKEY_INIT
- LIBSSH2_ERROR_HOSTKEY_SIGN
- LIBSSH2_ERROR_INVAL
- LIBSSH2_ERROR_INVALID_MAC
- LIBSSH2_ERROR_INVALID_POLL_TYPE
- LIBSSH2_ERROR_KEX_FAILURE
- LIBSSH2_ERROR_KEY_EXCHANGE_FAILURE
- LIBSSH2_ERROR_METHOD_NONE
- LIBSSH2_ERROR_METHOD_NOT_SUPPORTED
- LIBSSH2_ERROR_PASSWORD_EXPIRED
- LIBSSH2_ERROR_PROTO
- LIBSSH2_ERROR_PUBLICKEY_UNRECOGNIZED
- LIBSSH2_ERROR_PUBLICKEY_UNVERIFIED
- LIBSSH2_ERROR_REQUEST_DENIED
- LIBSSH2_ERROR_SCP_PROTOCOL
- LIBSSH2_ERROR_SFTP_PROTOCOL
- LIBSSH2_ERROR_SOCKET_DISCONNECT
- LIBSSH2_ERROR_SOCKET_NONE
- LIBSSH2_ERROR_SOCKET_SEND
- LIBSSH2_ERROR_SOCKET_TIMEOUT
- LIBSSH2_ERROR_TIMEOUT
- LIBSSH2_ERROR_ZLIB
+ LIBSSH2_ERROR_ALLOC
+ LIBSSH2_ERROR_BANNER_NONE
+ LIBSSH2_ERROR_BANNER_SEND
+ LIBSSH2_ERROR_CHANNEL_CLOSED
+ LIBSSH2_ERROR_CHANNEL_EOF_SENT
+ LIBSSH2_ERROR_CHANNEL_FAILURE
+ LIBSSH2_ERROR_CHANNEL_OUTOFORDER
+ LIBSSH2_ERROR_CHANNEL_PACKET_EXCEEDED
+ LIBSSH2_ERROR_CHANNEL_REQUEST_DENIED
+ LIBSSH2_ERROR_CHANNEL_UNKNOWN
+ LIBSSH2_ERROR_CHANNEL_WINDOW_EXCEEDED
+ LIBSSH2_ERROR_DECRYPT
+ LIBSSH2_ERROR_FILE
+ LIBSSH2_ERROR_HOSTKEY_INIT
+ LIBSSH2_ERROR_HOSTKEY_SIGN
+ LIBSSH2_ERROR_INVAL
+ LIBSSH2_ERROR_INVALID_MAC
+ LIBSSH2_ERROR_INVALID_POLL_TYPE
+ LIBSSH2_ERROR_KEX_FAILURE
+ LIBSSH2_ERROR_KEY_EXCHANGE_FAILURE
+ LIBSSH2_ERROR_METHOD_NONE
+ LIBSSH2_ERROR_METHOD_NOT_SUPPORTED
+ LIBSSH2_ERROR_PASSWORD_EXPIRED
+ LIBSSH2_ERROR_PROTO
+ LIBSSH2_ERROR_PUBLICKEY_UNRECOGNIZED
+ LIBSSH2_ERROR_PUBLICKEY_UNVERIFIED
+ LIBSSH2_ERROR_REQUEST_DENIED
+ LIBSSH2_ERROR_SCP_PROTOCOL
+ LIBSSH2_ERROR_SFTP_PROTOCOL
+ LIBSSH2_ERROR_SOCKET_DISCONNECT
+ LIBSSH2_ERROR_SOCKET_NONE
+ LIBSSH2_ERROR_SOCKET_SEND
+ LIBSSH2_ERROR_SOCKET_TIMEOUT
+ LIBSSH2_ERROR_TIMEOUT
+ LIBSSH2_ERROR_ZLIB
);
my @EX_hash = qw(
- LIBSSH2_HOSTKEY_HASH_MD5
- LIBSSH2_HOSTKEY_HASH_SHA1
+ LIBSSH2_HOSTKEY_HASH_MD5
+ LIBSSH2_HOSTKEY_HASH_SHA1
);
my @EX_method = qw(
- LIBSSH2_METHOD_COMP_CS
- LIBSSH2_METHOD_COMP_SC
- LIBSSH2_METHOD_CRYPT_CS
- LIBSSH2_METHOD_CRYPT_SC
- LIBSSH2_METHOD_HOSTKEY
- LIBSSH2_METHOD_KEX
- LIBSSH2_METHOD_LANG_CS
- LIBSSH2_METHOD_LANG_SC
- LIBSSH2_METHOD_MAC_CS
- LIBSSH2_METHOD_MAC_SC
+ LIBSSH2_METHOD_COMP_CS
+ LIBSSH2_METHOD_COMP_SC
+ LIBSSH2_METHOD_CRYPT_CS
+ LIBSSH2_METHOD_CRYPT_SC
+ LIBSSH2_METHOD_HOSTKEY
+ LIBSSH2_METHOD_KEX
+ LIBSSH2_METHOD_LANG_CS
+ LIBSSH2_METHOD_LANG_SC
+ LIBSSH2_METHOD_MAC_CS
+ LIBSSH2_METHOD_MAC_SC
);
my @EX_fxf = qw(
- LIBSSH2_FXF_APPEND
- LIBSSH2_FXF_CREAT
- LIBSSH2_FXF_EXCL
- LIBSSH2_FXF_READ
- LIBSSH2_FXF_TRUNC
- LIBSSH2_FXF_WRITE
+ LIBSSH2_FXF_APPEND
+ LIBSSH2_FXF_CREAT
+ LIBSSH2_FXF_EXCL
+ LIBSSH2_FXF_READ
+ LIBSSH2_FXF_TRUNC
+ LIBSSH2_FXF_WRITE
);
my @EX_fx = qw(
- LIBSSH2_FX_BAD_MESSAGE
- LIBSSH2_FX_CONNECTION_LOST
- LIBSSH2_FX_DIR_NOT_EMPTY
- LIBSSH2_FX_EOF
- LIBSSH2_FX_FAILURE
- LIBSSH2_FX_FILE_ALREADY_EXISTS
- LIBSSH2_FX_INVALID_FILENAME
- LIBSSH2_FX_INVALID_HANDLE
- LIBSSH2_FX_LINK_LOOP
- LIBSSH2_FX_LOCK_CONFlICT
- LIBSSH2_FX_NOT_A_DIRECTORY
- LIBSSH2_FX_NO_CONNECTION
- LIBSSH2_FX_NO_MEDIA
- LIBSSH2_FX_NO_SPACE_ON_FILESYSTEM
- LIBSSH2_FX_NO_SUCH_FILE
- LIBSSH2_FX_NO_SUCH_PATH
- LIBSSH2_FX_OK
- LIBSSH2_FX_OP_UNSUPPORTED
- LIBSSH2_FX_PERMISSION_DENIED
- LIBSSH2_FX_QUOTA_EXCEEDED
- LIBSSH2_FX_UNKNOWN_PRINCIPLE
- LIBSSH2_FX_WRITE_PROTECT
+ LIBSSH2_FX_BAD_MESSAGE
+ LIBSSH2_FX_CONNECTION_LOST
+ LIBSSH2_FX_DIR_NOT_EMPTY
+ LIBSSH2_FX_EOF
+ LIBSSH2_FX_FAILURE
+ LIBSSH2_FX_FILE_ALREADY_EXISTS
+ LIBSSH2_FX_INVALID_FILENAME
+ LIBSSH2_FX_INVALID_HANDLE
+ LIBSSH2_FX_LINK_LOOP
+ LIBSSH2_FX_LOCK_CONFlICT
+ LIBSSH2_FX_NOT_A_DIRECTORY
+ LIBSSH2_FX_NO_CONNECTION
+ LIBSSH2_FX_NO_MEDIA
+ LIBSSH2_FX_NO_SPACE_ON_FILESYSTEM
+ LIBSSH2_FX_NO_SUCH_FILE
+ LIBSSH2_FX_NO_SUCH_PATH
+ LIBSSH2_FX_OK
+ LIBSSH2_FX_OP_UNSUPPORTED
+ LIBSSH2_FX_PERMISSION_DENIED
+ LIBSSH2_FX_QUOTA_EXCEEDED
+ LIBSSH2_FX_UNKNOWN_PRINCIPLE
+ LIBSSH2_FX_WRITE_PROTECT
);
my @EX_sftp = qw(
- LIBSSH2_SFTP_ATTR_ACMODTIME
- LIBSSH2_SFTP_ATTR_EXTENDED
- LIBSSH2_SFTP_ATTR_PERMISSIONS
- LIBSSH2_SFTP_ATTR_SIZE
- LIBSSH2_SFTP_ATTR_UIDGID
- LIBSSH2_SFTP_LSTAT
- LIBSSH2_SFTP_OPENDIR
- LIBSSH2_SFTP_OPENFILE
- LIBSSH2_SFTP_PACKET_MAXLEN
- LIBSSH2_SFTP_READLINK
- LIBSSH2_SFTP_REALPATH
- LIBSSH2_SFTP_RENAME_ATOMIC
- LIBSSH2_SFTP_RENAME_NATIVE
- LIBSSH2_SFTP_RENAME_OVERWRITE
- LIBSSH2_SFTP_SETSTAT
- LIBSSH2_SFTP_STAT
- LIBSSH2_SFTP_SYMLINK
- LIBSSH2_SFTP_TYPE_BLOCK_DEVICE
- LIBSSH2_SFTP_TYPE_CHAR_DEVICE
- LIBSSH2_SFTP_TYPE_DIRECTORY
- LIBSSH2_SFTP_TYPE_FIFO
- LIBSSH2_SFTP_TYPE_REGULAR
- LIBSSH2_SFTP_TYPE_SOCKET
- LIBSSH2_SFTP_TYPE_SPECIAL
- LIBSSH2_SFTP_TYPE_SYMLINK
- LIBSSH2_SFTP_TYPE_UNKNOWN
- LIBSSH2_SFTP_VERSION
+ LIBSSH2_SFTP_ATTR_ACMODTIME
+ LIBSSH2_SFTP_ATTR_EXTENDED
+ LIBSSH2_SFTP_ATTR_PERMISSIONS
+ LIBSSH2_SFTP_ATTR_SIZE
+ LIBSSH2_SFTP_ATTR_UIDGID
+ LIBSSH2_SFTP_LSTAT
+ LIBSSH2_SFTP_OPENDIR
+ LIBSSH2_SFTP_OPENFILE
+ LIBSSH2_SFTP_PACKET_MAXLEN
+ LIBSSH2_SFTP_READLINK
+ LIBSSH2_SFTP_REALPATH
+ LIBSSH2_SFTP_RENAME_ATOMIC
+ LIBSSH2_SFTP_RENAME_NATIVE
+ LIBSSH2_SFTP_RENAME_OVERWRITE
+ LIBSSH2_SFTP_SETSTAT
+ LIBSSH2_SFTP_STAT
+ LIBSSH2_SFTP_SYMLINK
+ LIBSSH2_SFTP_TYPE_BLOCK_DEVICE
+ LIBSSH2_SFTP_TYPE_CHAR_DEVICE
+ LIBSSH2_SFTP_TYPE_DIRECTORY
+ LIBSSH2_SFTP_TYPE_FIFO
+ LIBSSH2_SFTP_TYPE_REGULAR
+ LIBSSH2_SFTP_TYPE_SOCKET
+ LIBSSH2_SFTP_TYPE_SPECIAL
+ LIBSSH2_SFTP_TYPE_SYMLINK
+ LIBSSH2_SFTP_TYPE_UNKNOWN
+ LIBSSH2_SFTP_VERSION
);
my @EX_disconnect = qw(
- SSH_DISCONNECT_AUTH_CANCELLED_BY_USER
- SSH_DISCONNECT_BY_APPLICATION
- SSH_DISCONNECT_COMPRESSION_ERROR
- SSH_DISCONNECT_CONNECTION_LOST
- SSH_DISCONNECT_HOST_KEY_NOT_VERIFIABLE
- SSH_DISCONNECT_HOST_NOT_ALLOWED_TO_CONNECT
- SSH_DISCONNECT_ILLEGAL_USER_NAME
- SSH_DISCONNECT_KEY_EXCHANGE_FAILED
- SSH_DISCONNECT_MAC_ERROR
- SSH_DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
- SSH_DISCONNECT_PROTOCOL_ERROR
- SSH_DISCONNECT_PROTOCOL_VERSION_NOT_SUPPORTED
- SSH_DISCONNECT_RESERVED
- SSH_DISCONNECT_SERVICE_NOT_AVAILABLE
- SSH_DISCONNECT_TOO_MANY_CONNECTIONS
+ SSH_DISCONNECT_AUTH_CANCELLED_BY_USER
+ SSH_DISCONNECT_BY_APPLICATION
+ SSH_DISCONNECT_COMPRESSION_ERROR
+ SSH_DISCONNECT_CONNECTION_LOST
+ SSH_DISCONNECT_HOST_KEY_NOT_VERIFIABLE
+ SSH_DISCONNECT_HOST_NOT_ALLOWED_TO_CONNECT
+ SSH_DISCONNECT_ILLEGAL_USER_NAME
+ SSH_DISCONNECT_KEY_EXCHANGE_FAILED
+ SSH_DISCONNECT_MAC_ERROR
+ SSH_DISCONNECT_NO_MORE_AUTH_METHODS_AVAILABLE
+ SSH_DISCONNECT_PROTOCOL_ERROR
+ SSH_DISCONNECT_PROTOCOL_VERSION_NOT_SUPPORTED
+ SSH_DISCONNECT_RESERVED
+ SSH_DISCONNECT_SERVICE_NOT_AVAILABLE
+ SSH_DISCONNECT_TOO_MANY_CONNECTIONS
);
our %EXPORT_TAGS = (
@@ -188,14 +188,15 @@
our @EXPORT_OK = @{$EXPORT_TAGS{all}};
-our $VERSION = '0.21';
+our $VERSION = '0.22';
# methods
sub connect {
my $self = shift;
croak "Net::SSH2::connect: not enough parameters" if @_ < 1;
- croak "Net::SSH2::connect: too many parameters" if @_ > 2;
+
+ my $wantarray = wantarray;
# try to connect, or get a file descriptor
my ($fd, $sock);
@@ -209,15 +210,25 @@
@_ = ($sock, getservbyname(qw(ssh tcp)) || 22);
}
}
+
+ my %opts = splice @_, 2;
+ $opts{Timeout} ||= 30;
+
if (@_ == 2) {
require IO::Socket::INET;
$sock = IO::Socket::INET->new(
- PeerHost => $_[0],
- PeerPort => $_[1],
- Timeout => 30,
- );
- croak "Net::SSH2::connect: failed to connect to $_[0]:$_[1]: $!"
- unless $sock;
+ PeerHost => $_[0],
+ PeerPort => $_[1],
+ $opts{Timeout},
+ );
+
+ if (not $sock) {
+ if ($wantarray == undef) {
+ croak "Net::SSH2: failed to connect to $_[0]:$_[1]: $!"
+ } else {
+ return; # to support ->connect ... or die
+ }
+ }
$sock->sockopt(SO_LINGER, pack('SS', 0, 0));
}
@@ -458,8 +469,8 @@
my ($error, $val) = constant($constname);
if ($error) { croak $error; }
{
- no strict 'refs';
- *$AUTOLOAD = sub { $val };
+ no strict 'refs';
+ *$AUTOLOAD = sub { $val };
}
goto &$AUTOLOAD;
}
@@ -487,7 +498,7 @@
my $ssh2 = Net::SSH2->new();
- $ssh2->connect('example.com') or die;
+ $ssh2->connect('example.com') or die $!;
if ($ssh2->auth_keyboard('fizban')) {
my $chan = $ssh2->channel();
@@ -700,7 +711,7 @@
=back
-=head2 connect ( [handle | host [, port]] )
+=head2 connect ( handle | host [, port [, Timeout => secs ]] )
Accepts a handle over which to conduct the SSH 2 protocol. The handle may be:
More information about the Pkg-perl-cvs-commits
mailing list