|
|
|
@ -393,19 +393,26 @@ class Gateway():
|
|
|
|
json.dump(config, file, indent=4, sort_keys=True)
|
|
|
|
json.dump(config, file, indent=4, sort_keys=True)
|
|
|
|
|
|
|
|
|
|
|
|
#===============================================================================
|
|
|
|
#===============================================================================
|
|
|
|
def check_ssh(self, ip, port, password, contimeout = 2, timeout = 3):
|
|
|
|
def check_ssh(self, ip, port, password, contimeout = 2, timeout = 3):
|
|
|
|
err = 0
|
|
|
|
err = 0
|
|
|
|
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
|
|
|
sock = None
|
|
|
|
ssh = None
|
|
|
|
ssh = None
|
|
|
|
try:
|
|
|
|
start_time = datetime.datetime.now()
|
|
|
|
sock.settimeout(contimeout)
|
|
|
|
while datetime.datetime.now() - start_time <= datetime.timedelta(seconds = contimeout):
|
|
|
|
sock.connect((ip, port))
|
|
|
|
try:
|
|
|
|
sock.settimeout(timeout)
|
|
|
|
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
|
|
|
except Exception as e:
|
|
|
|
sock.settimeout(0.5)
|
|
|
|
|
|
|
|
sock.connect((ip, port))
|
|
|
|
|
|
|
|
break
|
|
|
|
|
|
|
|
except Exception as e:
|
|
|
|
|
|
|
|
sock = None
|
|
|
|
|
|
|
|
pass
|
|
|
|
|
|
|
|
if not sock:
|
|
|
|
err = -1
|
|
|
|
err = -1
|
|
|
|
if password and err == 0:
|
|
|
|
if password and err == 0:
|
|
|
|
try:
|
|
|
|
try:
|
|
|
|
ssh = ssh2.session.Session()
|
|
|
|
ssh = ssh2.session.Session()
|
|
|
|
|
|
|
|
sock.settimeout(timeout)
|
|
|
|
ssh.handshake(sock)
|
|
|
|
ssh.handshake(sock)
|
|
|
|
except Exception as e:
|
|
|
|
except Exception as e:
|
|
|
|
err = -2
|
|
|
|
err = -2
|
|
|
|
@ -503,10 +510,19 @@ class Gateway():
|
|
|
|
pass
|
|
|
|
pass
|
|
|
|
self.shutdown()
|
|
|
|
self.shutdown()
|
|
|
|
try:
|
|
|
|
try:
|
|
|
|
self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
|
|
|
contimeout = 1 if contimeout is None else contimeout
|
|
|
|
if contimeout is not None:
|
|
|
|
start_time = datetime.datetime.now()
|
|
|
|
self.socket.settimeout(contimeout)
|
|
|
|
while datetime.datetime.now() - start_time <= datetime.timedelta(seconds = contimeout):
|
|
|
|
self.socket.connect((self.ip_addr, self.ssh_port))
|
|
|
|
try:
|
|
|
|
|
|
|
|
self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
|
|
|
|
|
|
|
self.socket.settimeout(0.5)
|
|
|
|
|
|
|
|
self.socket.connect((self.ip_addr, self.ssh_port))
|
|
|
|
|
|
|
|
break
|
|
|
|
|
|
|
|
except Exception as e:
|
|
|
|
|
|
|
|
self.socket = None
|
|
|
|
|
|
|
|
pass
|
|
|
|
|
|
|
|
if not self.socket:
|
|
|
|
|
|
|
|
raise Exception('')
|
|
|
|
self.socket.settimeout(None) # enable blocking mode
|
|
|
|
self.socket.settimeout(None) # enable blocking mode
|
|
|
|
self.ssh = ssh2.session.Session()
|
|
|
|
self.ssh = ssh2.session.Session()
|
|
|
|
self.ssh.handshake(self.socket)
|
|
|
|
self.ssh.handshake(self.socket)
|
|
|
|
|