- commit
- 13aa5c9c87164c56108ac9d6056b0c6a1df5ddba
- parent
- 493a6a2ff328a8689eebc95cf13c8b72f3f6a6e3
- Author
- Tobias Bengfort <tobias.bengfort@posteo.de>
- Date
- 2024-05-30 12:05
dbus: unregister sessions on close
Diffstat
| M | xikeyring/dbus.py | 15 | ++++++++------- |
1 files changed, 8 insertions, 7 deletions
diff --git a/xikeyring/dbus.py b/xikeyring/dbus.py
@@ -198,8 +198,8 @@ class DBusService(BaseDBusService): 198 198 output, session = create_session(algorithm, input) 199 199 self.session_counter += 1 200 200 session_path = f'{OFSP}/sessions/{self.session_counter}'201 -1 self.sessions[session_path] = session202 -1 self.register_object(conn, session_path, f'{OFSI}.Session')-1 201 sid = self.register_object(conn, session_path, f'{OFSI}.Session') -1 202 self.sessions[session_path] = (sid, session) 203 203 return GLib.Variant('(vo)', (GLib.Variant('ay', output), session_path)) 204 204 205 205 def service_search_items(self, conn, sender, path, query): @@ -215,7 +215,7 @@ class DBusService(BaseDBusService): 215 215 return GLib.Variant('(aoo)', ([], '/')) 216 216 217 217 def service_get_secrets(self, conn, sender, path, items, session_path):218 -1 session = self.sessions[session_path]-1 218 _sid, session = self.sessions[session_path] 219 219 exe = self.get_exe(conn, sender) 220 220 result = [] 221 221 for path in items: @@ -242,7 +242,7 @@ class DBusService(BaseDBusService): 242 242 def collection_create_item( 243 243 self, conn, sender, path, properties, secret_tuple, replace 244 244 ):245 -1 session = self.sessions[secret_tuple[0]]-1 245 _sid, session = self.sessions[secret_tuple[0]] 246 246 secret = session.decode(secret_tuple) 247 247 attributes = properties.get(f'{OFSI}.Item.Attributes', {}) 248 248 exe = self.get_exe(conn, sender) @@ -285,13 +285,13 @@ class DBusService(BaseDBusService): 285 285 id = int(path.rsplit('/', 1)[1], 10) 286 286 exe = self.get_exe(conn, sender) 287 287 secret = self.keyring.get_secret(exe, id)288 -1 session = self.sessions[session_path]-1 288 _sid, session = self.sessions[session_path] 289 289 secret_tuple = session.encode(session_path, secret) 290 290 return GLib.Variant('((oayays))', [secret_tuple]) 291 291 292 292 def item_set_secret(self, conn, sender, path, secret_tuple): 293 293 id = int(path.rsplit('/', 1)[1], 10)294 -1 session = self.sessions[secret_tuple[0]]-1 294 _sid, session = self.sessions[secret_tuple[0]] 295 295 secret = session.decode(secret_tuple) 296 296 exe = self.get_exe(conn, sender) 297 297 self.keyring.update_secret(exe, id, secret) @@ -341,4 +341,5 @@ class DBusService(BaseDBusService): 341 341 ) 342 342 343 343 def session_close(self, conn, sender, path):344 -1 del self.sessions[path]-1 344 sid, _session = self.sessions.pop(path) -1 345 conn.unregister_object(sid)