diff options
-rwxr-xr-x | service.py | 2 | ||||
-rw-r--r-- | session.py | 9 |
2 files changed, 10 insertions, 1 deletions
@@ -72,6 +72,8 @@ class RWAService(dbus.service.Object): running = session.vnc_process_running if running: print("Session is running") + elif session.status_text == "stopped" and session.pid in self.sessions: + del self.sessions[session.pid] else: print("Session is dead.") @@ -152,7 +152,12 @@ class Session: r = requests.get( STATUS_URL, params={"id": self.session_id}, headers=self._api_headers ) - self.status_text = r.json()["status"] + + if r.status_code in (401, 402, 403, 404, 405): + # Session doesn't exist anymore, so stop it local + self.stop(triggered=True) + else: + self.status_text = r.json()["status"] def push(self): """Update status: Push status to Django.""" @@ -195,6 +200,8 @@ class Session: STOP_URL, params={"id": self.session_id}, headers=self._api_headers ) + self.status_text = "stopped" + # Delete self del self |