sshproxy-dev
[Top][All Lists]
Advanced

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

[sshproxy-dev] Changes to sshproxy/SSHproxy/client/console.py


From: David Guerizec
Subject: [sshproxy-dev] Changes to sshproxy/SSHproxy/client/console.py
Date: Tue, 02 Aug 2005 09:25:45 -0400

Index: sshproxy/SSHproxy/client/console.py
diff -u sshproxy/SSHproxy/client/console.py:1.1 
sshproxy/SSHproxy/client/console.py:1.2
--- sshproxy/SSHproxy/client/console.py:1.1     Thu Jul 21 09:43:36 2005
+++ sshproxy/SSHproxy/client/console.py Tue Aug  2 13:25:45 2005
@@ -507,110 +507,3 @@
         print "Not yet implemented"
 
 
-class SSHClient:
-    def __init__(self, hostname, port='22'):
-        self.hostname = hostname
-        self.port = int(port)
-        self.chan = []
-        self.transport = None
-        self.session = None
-        self.sftp = None
-        self.hkeys = SSHproxy.load_host_keys()
-        self.transport = paramiko.Transport((self.hostname, self.port))
-        self.transport.ultra_debug = 1
-        if self.hkeys.has_key(self.hostname):
-            self.hostkeytype = self.hkeys[self.hostname].keys()[0]
-            self.hostkey = self.hkeys[self.hostname][self.hostkeytype]
-        self.fdin = sys.stdin
-        self.fdout = sys.stdout
-        self.cmd = SSHpyShell(self)
-
-    def connect(self, username, password):
-        try:
-            self.transport.connect(username=username, password=password, 
hostkey=self.hostkey)
-        except paramiko.ssh_exception.SSHException, e:
-            print e
-            self.transport.close()
-            sys.exit(1)
-
-
-    def __del__(self):
-        if self.transport:
-            self.transport.close()
-        
-    def open_session(self):
-        chan = self.transport.open_session()
-        chan.get_pty()
-        chan.invoke_shell()
-        self.session = chan
-        self.chan.append(chan)
-        return chan
-        
-    def close_session(self):
-        if self.session:
-            self.session.close()
-        self.session = None
-
-    def open_terminal(self):
-        if not self.session:
-            self.open_session()
-        self.set_term()
-        self.session.settimeout(0.0)
-        fcntl.fcntl(self.fdin, fcntl.F_SETFL, os.O_NDELAY)
-        CK = 0
-        try:
-            while 1:
-                r, w, e = select.select([self.fdin], [], [], 0.2)
-                if self.session.recv_ready():
-                    try:
-                        x = self.session.recv(1024)
-                        if len(x) == 0 or self.session.closed or 
self.session.eof_received:
-                            break
-                        self.fdout.write(x)
-                        self.fdout.flush()
-                    except socket.timeout:
-                        pass
-                if self.fdin in r:
-                    x = self.fdin.read()
-                    if len(x) == 0:
-                        break
-                    if ord(x[0]) == 11: # CTRL-K
-                        CK += 1
-                        if CK >= 1:
-                            self.reset_term()
-                            self.fdout.write("\n")
-                            self.cmd.cmdloop()
-                            fcntl.fcntl(self.fdin, fcntl.F_SETFL, os.O_NDELAY)
-                            self.set_term()
-                            # send ^L to clear screen and restore cmd line
-                            self.session.send(chr(12))
-                            CK = 0
-                        continue
-
-                    self.session.send(x)
-        finally:
-            self.reset_term()
-
-    def set_term(self):
-        if self.fdin == sys.stdin:
-            self.oldtty = termios.tcgetattr(self.fdin)
-            tty.setraw(self.fdin.fileno())
-            tty.setcbreak(self.fdin.fileno())
-
-    def reset_term(self):
-        if self.fdin == sys.stdin:
-            termios.tcsetattr(self.fdin, termios.TCSADRAIN, self.oldtty)
-        
-
-if __name__ == '__main__':
-    password = getpass.getpass("Password: ")
-    import socket
-    try:
-        ssh = SSHClient(sys.argv[1], 2200)
-    except socket.error, msg:
-        print msg[1]
-        sys.exit(1)
-    ssh.connect(sys.argv[2], password)
-    ssh.open_session()
-    ssh.open_terminal()
-    ssh.close_session()




reply via email to

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