guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

284/376: SSH.pm: Print a friendlier message if connecting fails


From: Ludovic Courtès
Subject: 284/376: SSH.pm: Print a friendlier message if connecting fails
Date: Wed, 28 Jan 2015 22:05:39 +0000

civodul pushed a commit to tag 1.8
in repository guix.

commit d436e44ae3a7fc310660db0cc3078a9c1c9318e4
Author: Eelco Dolstra <address@hidden>
Date:   Mon Nov 10 16:03:51 2014 +0100

    SSH.pm: Print a friendlier message if connecting fails
    
    "got EOF while expecting 8 bytes from remote side" is not very
    helpful.
---
 perl/lib/Nix/CopyClosure.pm |    1 +
 perl/lib/Nix/SSH.pm         |   15 +++++++++++----
 2 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/perl/lib/Nix/CopyClosure.pm b/perl/lib/Nix/CopyClosure.pm
index 1520f10..800feb3 100644
--- a/perl/lib/Nix/CopyClosure.pm
+++ b/perl/lib/Nix/CopyClosure.pm
@@ -57,6 +57,7 @@ sub copyTo {
     if ($@) {
         chomp $@;
         warn "$@; falling back to old closure copying method\n";
+        $@ = "";
         return oldCopyTo(@_);
     }
 
diff --git a/perl/lib/Nix/SSH.pm b/perl/lib/Nix/SSH.pm
index 9e0c10b..95393d8 100644
--- a/perl/lib/Nix/SSH.pm
+++ b/perl/lib/Nix/SSH.pm
@@ -1,5 +1,6 @@
 package Nix::SSH;
 
+use utf8;
 use strict;
 use File::Temp qw(tempdir);
 use IPC::Open2;
@@ -89,10 +90,16 @@ sub connectToRemoteNix {
     my $pid = open2($from, $to, "exec ssh -x -a $sshHost @globalSshOpts 
@{$sshOpts} nix-store --serve --write $extraFlags");
 
     # Do the handshake.
-    my $SERVE_MAGIC_1 = 0x390c9deb; # FIXME
-    my $clientVersion = 0x200;
-    syswrite($to, pack("L<x4L<x4", $SERVE_MAGIC_1, $clientVersion)) or die;
-    die "did not get valid handshake from remote host\n" if readInt($from) != 
0x5452eecb;
+    my $magic;
+    eval {
+        my $SERVE_MAGIC_1 = 0x390c9deb; # FIXME
+        my $clientVersion = 0x200;
+        syswrite($to, pack("L<x4L<x4", $SERVE_MAGIC_1, $clientVersion)) or die;
+        $magic = readInt($from);
+    };
+    die "unable to connect to ‘$sshHost’\n" if $@;
+    die "did not get valid handshake from remote host\n" if $magic  != 
0x5452eecb;
+
     my $serverVersion = readInt($from);
     die "unsupported server version\n" if $serverVersion < 0x200 || 
$serverVersion >= 0x300;
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]