320
322
DEBUG0("Registering domain event cbs");
322
324
/* Add 2 callbacks to prove this works with more than just one */
323
virConnectDomainEventRegister(dconn, myDomainEventCallback1,
324
strdup("callback 1"), myFreeFunc);
325
virConnectDomainEventRegister(dconn, myDomainEventCallback2,
326
strdup("callback 2"), myFreeFunc);
329
struct pollfd pfd = { .fd = h_fd,
333
sts = poll(&pfd, 1, TIMEOUT_MS);
335
/* We are assuming timeout of 0 here - so execute every time */
337
t_cb(t_timeout,t_opaque);
340
/* DEBUG0("Poll timeout"); */
344
DEBUG0("Poll failed");
347
if ( pfd.revents & POLLHUP ) {
348
DEBUG0("Reset by peer");
355
myPollEventToEventHandleType(pfd.revents & h_event),
325
callback1ret = virConnectDomainEventRegister(dconn, myDomainEventCallback1,
326
strdup("callback 1"), myFreeFunc);
327
callback2ret = virConnectDomainEventRegister(dconn, myDomainEventCallback2,
328
strdup("callback 2"), myFreeFunc);
330
if ((callback1ret == 0) && (callback2ret == 0) ) {
332
struct pollfd pfd = { .fd = h_fd,
336
sts = poll(&pfd, 1, TIMEOUT_MS);
338
/* We are assuming timeout of 0 here - so execute every time */
340
t_cb(t_timeout,t_opaque);
343
/* DEBUG0("Poll timeout"); */
347
DEBUG0("Poll failed");
350
if ( pfd.revents & POLLHUP ) {
351
DEBUG0("Reset by peer");
358
myPollEventToEventHandleType(pfd.revents & h_event),
364
DEBUG0("Deregistering event handlers");
365
virConnectDomainEventDeregister(dconn, myDomainEventCallback1);
366
virConnectDomainEventDeregister(dconn, myDomainEventCallback2);
361
DEBUG0("Deregistering event handlers");
362
virConnectDomainEventDeregister(dconn, myDomainEventCallback1);
363
virConnectDomainEventDeregister(dconn, myDomainEventCallback2);
365
370
DEBUG0("Closing connection");
366
371
if( dconn && virConnectClose(dconn)<0 ) {
367
372
printf("error closing\n");