Blob Blame History Raw
From 8bbdcc6e084b59027cac6f2463968af1f33b1793 Mon Sep 17 00:00:00 2001
From: Ruben <ruben@rubenkerkhof.com>
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