]> glassweightruler.freedombox.rocks Git - waydroid.git/blobdiff - tools/interfaces/IClipboard.py
.desktop files should not be executable (#815)
[waydroid.git] / tools / interfaces / IClipboard.py
index 7d09d920c27c20a859dd64f7ba85524d70e3be51..5bd00b6f9ea5b9748a766b38de024d87d4b5f48f 100644 (file)
@@ -12,7 +12,10 @@ TRANSACTION_getClipboardData = 2
 
 def add_service(args, sendClipboardData, getClipboardData):
     helpers.drivers.loadBinderNodes(args)
-    serviceManager = gbinder.ServiceManager("/dev/" + args.BINDER_DRIVER)
+    try:
+        serviceManager = gbinder.ServiceManager("/dev/" + args.BINDER_DRIVER, args.SERVICE_MANAGER_PROTOCOL, args.BINDER_PROTOCOL)
+    except TypeError:
+        serviceManager = gbinder.ServiceManager("/dev/" + args.BINDER_DRIVER)
 
     def response_handler(req, code, flags):
         logging.debug(
@@ -35,7 +38,8 @@ def add_service(args, sendClipboardData, getClipboardData):
             status = serviceManager.add_service_sync(SERVICE_NAME, response)
 
             if status:
-                logging.error("Failed to add service " + SERVICE_NAME)
+                logging.error("Failed to add service {}: {}".format(
+                    SERVICE_NAME, status))
                 args.clipboardLoop.quit()
 
     response = serviceManager.new_local_object(INTERFACE, response_handler)
@@ -44,5 +48,7 @@ def add_service(args, sendClipboardData, getClipboardData):
     status = serviceManager.add_presence_handler(binder_presence)
     if status:
         args.clipboardLoop.run()
+        serviceManager.remove_handler(status)
+        del serviceManager
     else:
         logging.error("Failed to add presence handler: {}".format(status))