---
Notes:
ACKed
Version 4:
- no changes
Version 3:
- update to client API changes (virConnectAllowKeepAlive dropped
and virConnectStartKeepAlive renamed as virConnectSetKeepAlive)
Version 2:
- automatically exit when a connection is closed because of
keepalive timeout
examples/domain-events/events-c/event-test.c | 9 ++++++++-
examples/domain-events/events-python/event-test.py | 4 +++-
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/examples/domain-events/events-c/event-test.c
b/examples/domain-events/events-c/event-test.c
index 7c99222..af1f47d 100644
--- a/examples/domain-events/events-c/event-test.c
+++ b/examples/domain-events/events-c/event-test.c
@@ -416,7 +416,14 @@ int main(int argc, char **argv)
(callback6ret != -1) &&
(callback7ret != -1) &&
(callback9ret != -1)) {
- while (run) {
+ if (virConnectSetKeepAlive(dconn, 5, 3) < 0) {
+ virErrorPtr err = virGetLastError();
+ fprintf(stderr, "Failed to start keepalive protocol: %s\n",
+ err && err->message ? err->message : "Unknown
error");
+ run = 0;
+ }
+
+ while (run && virConnectIsAlive(dconn) == 1) {
if (virEventRunDefaultImpl() < 0) {
virErrorPtr err = virGetLastError();
fprintf(stderr, "Failed to run event loop: %s\n",
diff --git a/examples/domain-events/events-python/event-test.py
b/examples/domain-events/events-python/event-test.py
index 9628f6e..60a9c34 100644
--- a/examples/domain-events/events-python/event-test.py
+++ b/examples/domain-events/events-python/event-test.py
@@ -531,11 +531,13 @@ def main():
vc.domainEventRegisterAny(None, libvirt.VIR_DOMAIN_EVENT_ID_GRAPHICS,
myDomainEventGraphicsCallback, None)
vc.domainEventRegisterAny(None, libvirt.VIR_DOMAIN_EVENT_ID_DISK_CHANGE,
myDomainEventDiskChangeCallback, None)
+ vc.setKeepAlive(5, 3)
+
# The rest of your app would go here normally, but for sake
# of demo we'll just go to sleep. The other option is to
# run the event loop in your main thread if your app is
# totally event based.
- while 1:
+ while vc.isAlive() == 1:
time.sleep(1)
--
1.7.7.1