diff --git a/CHANGELOG.md b/CHANGELOG.md index 820905c..50ad191 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [5.8.0] - 2025-06-12 + +### Changed + +- Agents aren't being sent any signals on user logout. On the server side, assume that client disconnection == logout + ## [5.7.1] - 2025-06-05 ### Fixed diff --git a/linux/debian/changelog b/linux/debian/changelog index 2e07f9b..c95220d 100644 --- a/linux/debian/changelog +++ b/linux/debian/changelog @@ -1,3 +1,9 @@ +ogagent (5.8.0-1) stable; urgency=medium + + * When client disconnect, assume that the user logged out + + -- OpenGnsys developers Thu, 12 Jun 2025 15:30:50 +0200 + ogagent (5.7.1-1) stable; urgency=medium * Correctly handle UNIX signals diff --git a/src/VERSION b/src/VERSION index 64ff7de..11d9efa 100644 --- a/src/VERSION +++ b/src/VERSION @@ -1 +1 @@ -5.7.1 +5.8.0 diff --git a/src/opengnsys/ipc.py b/src/opengnsys/ipc.py index fbfee9c..d1a61ea 100644 --- a/src/opengnsys/ipc.py +++ b/src/opengnsys/ipc.py @@ -30,6 +30,7 @@ """ +import os import json import queue import socket @@ -193,6 +194,8 @@ class ClientProcessor(threading.Thread): logger.error('Invalid message in queue: {}'.format(e)) logger.debug('Client processor stopped') + if os.path.exists ('/windows/temp'): open ('/windows/temp/ogagentuser_died', 'w').close() + else: open ( '/tmp/ogagentuser_died', 'w').close() try: self.clientSocket.close() except Exception: diff --git a/src/opengnsys/service.py b/src/opengnsys/service.py index d13f686..7b4b969 100644 --- a/src/opengnsys/service.py +++ b/src/opengnsys/service.py @@ -30,6 +30,7 @@ @author: Adolfo Gómez, dkmaster at dkmon dot com """ +import os import json import socket import time @@ -197,6 +198,16 @@ class CommonService(object): Invoked to wait a bit CAN be OVERRIDDEN """ + client_died=False + if os.path.exists ('/windows/temp/ogagentuser_died'): + os.unlink ('/windows/temp/ogagentuser_died') + client_died=True + elif os.path.exists ('/tmp/ogagentuser_died'): + os.unlink ('/tmp/ogagentuser_died') + client_died=True + if client_died: + self.notifyLogout (b'') + time.sleep(float(miliseconds) / 1000) def notifyStop(self):