From 96bf45bc8d61745c54f33fc7621e8bbb44125152 Mon Sep 17 00:00:00 2001 From: Fabio Erculiani Date: Thu, 26 Nov 2009 17:15:27 +0100 Subject: [PATCH] [entropy.transceivers] EntropySshUriHandler: make __test_connection a bit more reliable --- libraries/entropy/transceivers.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/libraries/entropy/transceivers.py b/libraries/entropy/transceivers.py index 5fba2eb55..affad6652 100644 --- a/libraries/entropy/transceivers.py +++ b/libraries/entropy/transceivers.py @@ -1824,11 +1824,18 @@ class EntropySshUriHandler(EntropyUriHandler): self.close() def __test_connection(self): - try: - self._socket.create_connection((self.__host, self.__port), 5) - except self._socket.error: - raise ConnectionError("cannot connect to %s on port %s" % ( - self.__host, self.__port,)) + tries = 5 + while tries: + tries -= 1 + try: + self._socket.create_connection((self.__host, self.__port), 5) + break + except self._socket.error: + time.sleep(1) + continue + + raise ConnectionError("cannot connect to %s on port %s" % ( + self.__host, self.__port,)) def __extract_scp_data(self, uri):