Allow reconnecting to the same terminal session
[invirt/packages/invirt-web.git] / code / main.py
index 10e282f..77646c9 100755 (executable)
@@ -407,7 +407,7 @@ console will suffer artifacts.
             return d
 
         @cherrypy.expose
-        def at(self, machine_id, k=None, c=0):
+        def at(self, machine_id, k=None, c=0, force=0):
             machine = validation.Validate(cherrypy.request.login, cherrypy.request.state, machine_id=machine_id).machine
             if machine_id in self.atsessions:
                 term = self.atsessions[machine_id]
@@ -419,11 +419,12 @@ console will suffer artifacts.
             if k:
                 self.atmulti.proc_write(term,k)
             time.sleep(0.002)
-            dump=self.atmulti.dump(term,c)
+            dump=self.atmulti.dump(term,c,int(force))
             cherrypy.response.headers['Content-Type']='text/xml'
             if isinstance(dump,str):
                 return dump
             else:
+                print "Removing session for", machine_id
                 del self.atsessions[machine_id]
                 return '<?xml version="1.0"?><idem></idem>'