diff options
Diffstat (limited to 'libvirt-override.py')
-rw-r--r-- | libvirt-override.py | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/libvirt-override.py b/libvirt-override.py index b611ca4..8df9dc1 100644 --- a/libvirt-override.py +++ b/libvirt-override.py @@ -117,19 +117,41 @@ def getVersion (name = None): # # Invoke an EventHandle callback # -def eventInvokeHandleCallback (watch, fd, event, callback, opaque): +def eventInvokeHandleCallback(watch, fd, event, opaque, opaquecompat=None): """ Invoke the Event Impl Handle Callback in C """ + # libvirt 0.9.2 and earlier required custom event loops to know + # that opaque=(cb, original_opaque) and pass the values individually + # to this wrapper. This should handle the back compat case, and make + # future invocations match the virEventHandleCallback prototype + if opaquecompat: + callback = opaque + opaque = opaquecompat + else: + callback = opaque[0] + opaque = opaque[1] + libvirtmod.virEventInvokeHandleCallback(watch, fd, event, callback, opaque); # # Invoke an EventTimeout callback # -def eventInvokeTimeoutCallback (timer, callback, opaque): +def eventInvokeTimeoutCallback(timer, opaque, opaquecompat=None): """ Invoke the Event Impl Timeout Callback in C """ + # libvirt 0.9.2 and earlier required custom event loops to know + # that opaque=(cb, original_opaque) and pass the values individually + # to this wrapper. This should handle the back compat case, and make + # future invocations match the virEventTimeoutCallback prototype + if opaquecompat: + callback = opaque + opaque = opaquecompat + else: + callback = opaque[0] + opaque = opaque[1] + libvirtmod.virEventInvokeTimeoutCallback(timer, callback, opaque); def _dispatchEventHandleCallback(watch, fd, events, cbData): |