summaryrefslogtreecommitdiffstats
path: root/src/virtual
diff options
context:
space:
mode:
authorAlejandro Sirgo Rica <asirgo@soleta.eu>2024-11-13 19:41:20 +0100
committerAlejandro Sirgo Rica <asirgo@soleta.eu>2024-11-21 17:19:27 +0100
commit0bc485e2c4ccdc5e117bbb9f12d85e926ba7deac (patch)
tree276f51d2c303f520a398aac8ddcbdfe560d6ddb7 /src/virtual
parentbd921dcbd69526c22cd5f2acf60f6ab528e50c04 (diff)
src: add user session detection implementationwinlinux
Detect user login and logout for Linux and Windows. Report an active interactive session through the /refresh response so a new ogserver instance can update the session status. Poll the session change in 5 second intervals in a thread. Use the same event socket previously used by the old session detection mechanism to notify a session change. Use the method check_interactive_session_change in each ogOperations.py to report the session status. Return values: None: no session changes are found True: login False: logout Windows check_interactive_session_change uses the WMI API to obtain session information. Obtain the list of sessions associated to interactive sessions and then filter the sessions with a valid user. Linux Check if any user has the DISPLAY or WAYLAND_DISPLAY environment variable defined as that means there is an interactive session in execution.
Diffstat (limited to 'src/virtual')
-rw-r--r--src/virtual/ogOperations.py3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/virtual/ogOperations.py b/src/virtual/ogOperations.py
index c51f59d..86ae0ed 100644
--- a/src/virtual/ogOperations.py
+++ b/src/virtual/ogOperations.py
@@ -629,3 +629,6 @@ class OgVirtualOperations:
for k, v in device_names.items():
f.write(f'{k}={v}\n')
f.truncate()
+
+ def check_interactive_session_change(self):
+ return None