From 8bbdcc6e084b59027cac6f2463968af1f33b1793 Mon Sep 17 00:00:00 2001 From: Ruben Date: Sun, 17 Oct 2010 17:16:14 +0200 Subject: [PATCH 05/14] 05_ssh-port.diff from Debian --- ajaxterm.py | 15 ++++++++++----- 1 files changed, 10 insertions(+), 5 deletions(-) diff --git a/ajaxterm.py b/ajaxterm.py index 8b3af37..63b0444 100755 --- a/ajaxterm.py +++ b/ajaxterm.py @@ -367,9 +367,10 @@ class SynchronizedMethod: return r class Multiplex: - def __init__(self,cmd=None): + def __init__(self,cmd=None,serverport=None): signal.signal(signal.SIGCHLD, signal.SIG_IGN) self.cmd=cmd + self.serverport=serverport self.proc={} self.lock=threading.RLock() self.thread=threading.Thread(target=self.loop) @@ -403,7 +404,10 @@ class Multiplex: cmd+=['-oPreferredAuthentications=keyboard-interactive,password'] cmd+=['-oNoHostAuthenticationForLocalhost=yes'] cmd+=['-oLogLevel=FATAL'] - cmd+=['-F/dev/null','-l',login,'localhost'] + cmd+=['-F/dev/null'] + if self.serverport: + cmd+=['-p %s'%self.serverport] + cmd+=['-l', login, 'localhost'] else: os._exit(0) env={} @@ -473,7 +477,7 @@ class Multiplex: pass class AjaxTerm: - def __init__(self,cmd=None,index_file='ajaxterm.html'): + def __init__(self,cmd=None,index_file='ajaxterm.html',serverport=None): self.files={} for i in ['css','html','js']: for j in glob.glob('*.%s'%i): @@ -481,7 +485,7 @@ class AjaxTerm: self.files['index']=file(index_file).read() self.mime = mimetypes.types_map.copy() self.mime['.html']= 'text/html; charset=UTF-8' - self.multi = Multiplex(cmd) + self.multi = Multiplex(cmd,serverport) self.session = {} def __call__(self, environ, start_response): req = qweb.QWebRequest(environ, start_response,session=None) @@ -528,6 +532,7 @@ def main(): parser.add_option("-P", "--pidfile",dest="pidfile",default="/var/run/ajaxterm.pid",help="set the pidfile (default: /var/run/ajaxterm.pid)") parser.add_option("-i", "--index", dest="index_file", default="ajaxterm.html",help="default index file (default: ajaxterm.html)") parser.add_option("-u", "--uid", dest="uid", help="Set the daemon's user id") + parser.add_option("-s", "--serverport", dest="serverport", help="Use a different port than 22 to connect to the ssh server") (o, a) = parser.parse_args() if o.daemon: pid=os.fork() @@ -553,7 +558,7 @@ def main(): sys.exit(0) else: print 'AjaxTerm at http://localhost:%s/' % o.port - at=AjaxTerm(o.cmd,o.index_file) + at=AjaxTerm(o.cmd,o.index_file,o.serverport) # f=lambda:os.system('firefox http://localhost:%s/&'%o.port) # qweb.qweb_wsgi_autorun(at,ip='localhost',port=int(o.port),threaded=0,log=o.log,callback_ready=None) try: -- 1.7.3.1