diff options
Diffstat (limited to 'perl/lib/Nix/SSH.pm')
-rw-r--r-- | perl/lib/Nix/SSH.pm | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/perl/lib/Nix/SSH.pm b/perl/lib/Nix/SSH.pm index 3bcbabe981d6..dd3e5cefd8c7 100644 --- a/perl/lib/Nix/SSH.pm +++ b/perl/lib/Nix/SSH.pm @@ -7,7 +7,8 @@ use IPC::Open2; our @ISA = qw(Exporter); our @EXPORT = qw( sshOpts openSSHConnection closeSSHConnection - readN readInt writeInt writeString writeStrings + readN readInt readString readStrings + writeInt writeString writeStrings connectToRemoteNix ); @@ -83,6 +84,24 @@ sub readInt { } +sub readString { + my ($from) = @_; + my $len = readInt($from); + my $s = readN($len, $from); + readN(8 - $len % 8, $from) if $len % 8; # skip padding + return $s; +} + + +sub readStrings { + my ($from) = @_; + my $n = readInt($from); + my @res; + push @res, readString($from) while $n--; + return @res; +} + + sub writeInt { my ($n, $to) = @_; syswrite($to, pack("L<x4", $n)) or die; |