!remoteRelayDomainEventCheckACL(callback->client, conn, dom))
return -1;
- VIR_DEBUG("Relaying domain reboot event %s %d, callback %d",
- dom->name, dom->id, callback->callbackID);
+ VIR_DEBUG("Relaying domain reboot event %s %d, callback %d legacy %d",
+ dom->name, dom->id, callback->callbackID, callback->legacy);
/* build return data */
memset(&data, 0, sizeof(data));
make_nonnull_domain(&data.dom, dom);
- remoteDispatchObjectEventSend(callback->client, remoteProgram,
- REMOTE_PROC_DOMAIN_EVENT_REBOOT,
- (xdrproc_t)xdr_remote_domain_event_reboot_msg, &data);
+ if (callback->legacy) {
+ remoteDispatchObjectEventSend(callback->client, remoteProgram,
+ REMOTE_PROC_DOMAIN_EVENT_REBOOT,
+ (xdrproc_t)xdr_remote_domain_event_reboot_msg, &data);
+ } else {
+ remote_domain_event_callback_reboot_msg msg = { callback->callbackID,
+ data };
+
+ remoteDispatchObjectEventSend(callback->client, remoteProgram,
+ REMOTE_PROC_DOMAIN_EVENT_CALLBACK_REBOOT,
+ (xdrproc_t)xdr_remote_domain_event_callback_reboot_msg, &msg);
+ }
return 0;
}
!remoteRelayDomainEventCheckACL(callback->client, conn, dom))
return -1;
- VIR_DEBUG("Relaying domain rtc change event %s %d %lld, callback %d",
- dom->name, dom->id, offset, callback->callbackID);
+ VIR_DEBUG("Relaying domain rtc change event %s %d %lld, callback %d legacy %d",
+ dom->name, dom->id, offset,
+ callback->callbackID, callback->legacy);
/* build return data */
memset(&data, 0, sizeof(data));
make_nonnull_domain(&data.dom, dom);
data.offset = offset;
- remoteDispatchObjectEventSend(callback->client, remoteProgram,
- REMOTE_PROC_DOMAIN_EVENT_RTC_CHANGE,
- (xdrproc_t)xdr_remote_domain_event_rtc_change_msg, &data);
+ if (callback->legacy) {
+ remoteDispatchObjectEventSend(callback->client, remoteProgram,
+ REMOTE_PROC_DOMAIN_EVENT_RTC_CHANGE,
+ (xdrproc_t)xdr_remote_domain_event_rtc_change_msg, &data);
+ } else {
+ remote_domain_event_callback_rtc_change_msg msg = { callback->callbackID,
+ data };
+
+ remoteDispatchObjectEventSend(callback->client, remoteProgram,
+ REMOTE_PROC_DOMAIN_EVENT_CALLBACK_RTC_CHANGE,
+ (xdrproc_t)xdr_remote_domain_event_callback_rtc_change_msg, &msg);
+ }
return 0;
}
make_nonnull_domain(&data.dom, dom);
data.action = action;
- remoteDispatchObjectEventSend(callback->client, remoteProgram,
- REMOTE_PROC_DOMAIN_EVENT_WATCHDOG,
- (xdrproc_t)xdr_remote_domain_event_watchdog_msg, &data);
+ if (callback->legacy) {
+ remoteDispatchObjectEventSend(callback->client, remoteProgram,
+ REMOTE_PROC_DOMAIN_EVENT_WATCHDOG,
+ (xdrproc_t)xdr_remote_domain_event_watchdog_msg, &data);
+ } else {
+ remote_domain_event_callback_watchdog_msg msg = { callback->callbackID,
+ data };
+
+ remoteDispatchObjectEventSend(callback->client, remoteProgram,
+ REMOTE_PROC_DOMAIN_EVENT_CALLBACK_WATCHDOG,
+ (xdrproc_t)xdr_remote_domain_event_callback_watchdog_msg, &msg);
+ }
return 0;
}
make_nonnull_domain(&data.dom, dom);
data.action = action;
- remoteDispatchObjectEventSend(callback->client, remoteProgram,
- REMOTE_PROC_DOMAIN_EVENT_IO_ERROR,
- (xdrproc_t)xdr_remote_domain_event_io_error_msg, &data);
+ if (callback->legacy) {
+ remoteDispatchObjectEventSend(callback->client, remoteProgram,
+ REMOTE_PROC_DOMAIN_EVENT_IO_ERROR,
+ (xdrproc_t)xdr_remote_domain_event_io_error_msg, &data);
+ } else {
+ remote_domain_event_callback_io_error_msg msg = { callback->callbackID,
+ data };
+
+ remoteDispatchObjectEventSend(callback->client, remoteProgram,
+ REMOTE_PROC_DOMAIN_EVENT_CALLBACK_IO_ERROR,
+ (xdrproc_t)xdr_remote_domain_event_callback_io_error_msg, &msg);
+ }
return 0;
error:
make_nonnull_domain(&data.dom, dom);
- remoteDispatchObjectEventSend(callback->client, remoteProgram,
- REMOTE_PROC_DOMAIN_EVENT_IO_ERROR_REASON,
- (xdrproc_t)xdr_remote_domain_event_io_error_reason_msg, &data);
+ if (callback->legacy) {
+ remoteDispatchObjectEventSend(callback->client, remoteProgram,
+ REMOTE_PROC_DOMAIN_EVENT_IO_ERROR_REASON,
+ (xdrproc_t)xdr_remote_domain_event_io_error_reason_msg, &data);
+ } else {
+ remote_domain_event_callback_io_error_reason_msg msg = { callback->callbackID,
+ data };
+
+ remoteDispatchObjectEventSend(callback->client, remoteProgram,
+ REMOTE_PROC_DOMAIN_EVENT_CALLBACK_IO_ERROR_REASON,
+ (xdrproc_t)xdr_remote_domain_event_callback_io_error_reason_msg, &msg);
+ }
return 0;
}
make_nonnull_domain(&data.dom, dom);
- remoteDispatchObjectEventSend(callback->client, remoteProgram,
- REMOTE_PROC_DOMAIN_EVENT_GRAPHICS,
- (xdrproc_t)xdr_remote_domain_event_graphics_msg, &data);
+ if (callback->legacy) {
+ remoteDispatchObjectEventSend(callback->client, remoteProgram,
+ REMOTE_PROC_DOMAIN_EVENT_GRAPHICS,
+ (xdrproc_t)xdr_remote_domain_event_graphics_msg, &data);
+ } else {
+ remote_domain_event_callback_graphics_msg msg = { callback->callbackID,
+ data };
+
+ remoteDispatchObjectEventSend(callback->client, remoteProgram,
+ REMOTE_PROC_DOMAIN_EVENT_CALLBACK_GRAPHICS,
+ (xdrproc_t)xdr_remote_domain_event_callback_graphics_msg, &msg);
+ }
return 0;
data.status = status;
make_nonnull_domain(&data.dom, dom);
- remoteDispatchObjectEventSend(callback->client, remoteProgram,
- REMOTE_PROC_DOMAIN_EVENT_BLOCK_JOB,
- (xdrproc_t)xdr_remote_domain_event_block_job_msg, &data);
+ if (callback->legacy) {
+ remoteDispatchObjectEventSend(callback->client, remoteProgram,
+ REMOTE_PROC_DOMAIN_EVENT_BLOCK_JOB,
+ (xdrproc_t)xdr_remote_domain_event_block_job_msg, &data);
+ } else {
+ remote_domain_event_callback_block_job_msg msg = { callback->callbackID,
+ data };
+
+ remoteDispatchObjectEventSend(callback->client, remoteProgram,
+ REMOTE_PROC_DOMAIN_EVENT_CALLBACK_BLOCK_JOB,
+ (xdrproc_t)xdr_remote_domain_event_callback_block_job_msg, &msg);
+ }
return 0;
error:
memset(&data, 0, sizeof(data));
make_nonnull_domain(&data.dom, dom);
- remoteDispatchObjectEventSend(callback->client, remoteProgram,
- REMOTE_PROC_DOMAIN_EVENT_CONTROL_ERROR,
- (xdrproc_t)xdr_remote_domain_event_control_error_msg, &data);
+ if (callback->legacy) {
+ remoteDispatchObjectEventSend(callback->client, remoteProgram,
+ REMOTE_PROC_DOMAIN_EVENT_CONTROL_ERROR,
+ (xdrproc_t)xdr_remote_domain_event_control_error_msg, &data);
+ } else {
+ remote_domain_event_callback_control_error_msg msg = { callback->callbackID,
+ data };
+
+ remoteDispatchObjectEventSend(callback->client, remoteProgram,
+ REMOTE_PROC_DOMAIN_EVENT_CALLBACK_CONTROL_ERROR,
+ (xdrproc_t)xdr_remote_domain_event_callback_control_error_msg, &msg);
+ }
return 0;
}
make_nonnull_domain(&data.dom, dom);
- remoteDispatchObjectEventSend(callback->client, remoteProgram,
- REMOTE_PROC_DOMAIN_EVENT_DISK_CHANGE,
- (xdrproc_t)xdr_remote_domain_event_disk_change_msg, &data);
+ if (callback->legacy) {
+ remoteDispatchObjectEventSend(callback->client, remoteProgram,
+ REMOTE_PROC_DOMAIN_EVENT_DISK_CHANGE,
+ (xdrproc_t)xdr_remote_domain_event_disk_change_msg, &data);
+ } else {
+ remote_domain_event_callback_disk_change_msg msg = { callback->callbackID,
+ data };
+
+ remoteDispatchObjectEventSend(callback->client, remoteProgram,
+ REMOTE_PROC_DOMAIN_EVENT_CALLBACK_DISK_CHANGE,
+ (xdrproc_t)xdr_remote_domain_event_callback_disk_change_msg, &msg);
+ }
return 0;
make_nonnull_domain(&data.dom, dom);
- remoteDispatchObjectEventSend(callback->client, remoteProgram,
- REMOTE_PROC_DOMAIN_EVENT_TRAY_CHANGE,
- (xdrproc_t)xdr_remote_domain_event_tray_change_msg, &data);
+ if (callback->legacy) {
+ remoteDispatchObjectEventSend(callback->client, remoteProgram,
+ REMOTE_PROC_DOMAIN_EVENT_TRAY_CHANGE,
+ (xdrproc_t)xdr_remote_domain_event_tray_change_msg, &data);
+ } else {
+ remote_domain_event_callback_tray_change_msg msg = { callback->callbackID,
+ data };
+
+ remoteDispatchObjectEventSend(callback->client, remoteProgram,
+ REMOTE_PROC_DOMAIN_EVENT_CALLBACK_TRAY_CHANGE,
+ (xdrproc_t)xdr_remote_domain_event_callback_tray_change_msg, &msg);
+ }
return 0;
}
memset(&data, 0, sizeof(data));
make_nonnull_domain(&data.dom, dom);
- remoteDispatchObjectEventSend(callback->client, remoteProgram,
- REMOTE_PROC_DOMAIN_EVENT_PMWAKEUP,
- (xdrproc_t)xdr_remote_domain_event_pmwakeup_msg, &data);
+ if (callback->legacy) {
+ remoteDispatchObjectEventSend(callback->client, remoteProgram,
+ REMOTE_PROC_DOMAIN_EVENT_PMWAKEUP,
+ (xdrproc_t)xdr_remote_domain_event_pmwakeup_msg, &data);
+ } else {
+ remote_domain_event_callback_pmwakeup_msg msg = { callback->callbackID,
+ data };
+
+ remoteDispatchObjectEventSend(callback->client, remoteProgram,
+ REMOTE_PROC_DOMAIN_EVENT_CALLBACK_PMWAKEUP,
+ (xdrproc_t)xdr_remote_domain_event_callback_pmwakeup_msg, &msg);
+ }
return 0;
}
memset(&data, 0, sizeof(data));
make_nonnull_domain(&data.dom, dom);
- remoteDispatchObjectEventSend(callback->client, remoteProgram,
- REMOTE_PROC_DOMAIN_EVENT_PMSUSPEND,
- (xdrproc_t)xdr_remote_domain_event_pmsuspend_msg, &data);
+ if (callback->legacy) {
+ remoteDispatchObjectEventSend(callback->client, remoteProgram,
+ REMOTE_PROC_DOMAIN_EVENT_PMSUSPEND,
+ (xdrproc_t)xdr_remote_domain_event_pmsuspend_msg, &data);
+ } else {
+ remote_domain_event_callback_pmsuspend_msg msg = { callback->callbackID,
+ data };
+
+ remoteDispatchObjectEventSend(callback->client, remoteProgram,
+ REMOTE_PROC_DOMAIN_EVENT_CALLBACK_PMSUSPEND,
+ (xdrproc_t)xdr_remote_domain_event_callback_pmsuspend_msg, &msg);
+ }
return 0;
}
make_nonnull_domain(&data.dom, dom);
data.actual = actual;
- remoteDispatchObjectEventSend(callback->client, remoteProgram,
- REMOTE_PROC_DOMAIN_EVENT_BALLOON_CHANGE,
- (xdrproc_t)xdr_remote_domain_event_balloon_change_msg, &data);
+ if (callback->legacy) {
+ remoteDispatchObjectEventSend(callback->client, remoteProgram,
+ REMOTE_PROC_DOMAIN_EVENT_BALLOON_CHANGE,
+ (xdrproc_t)xdr_remote_domain_event_balloon_change_msg, &data);
+ } else {
+ remote_domain_event_callback_balloon_change_msg msg = { callback->callbackID,
+ data };
+
+ remoteDispatchObjectEventSend(callback->client, remoteProgram,
+ REMOTE_PROC_DOMAIN_EVENT_CALLBACK_BALLOON_CHANGE,
+ (xdrproc_t)xdr_remote_domain_event_callback_balloon_change_msg, &msg);
+ }
return 0;
}
memset(&data, 0, sizeof(data));
make_nonnull_domain(&data.dom, dom);
- remoteDispatchObjectEventSend(callback->client, remoteProgram,
- REMOTE_PROC_DOMAIN_EVENT_PMSUSPEND_DISK,
- (xdrproc_t)xdr_remote_domain_event_pmsuspend_disk_msg, &data);
+ if (callback->legacy) {
+ remoteDispatchObjectEventSend(callback->client, remoteProgram,
+ REMOTE_PROC_DOMAIN_EVENT_PMSUSPEND_DISK,
+ (xdrproc_t)xdr_remote_domain_event_pmsuspend_disk_msg, &data);
+ } else {
+ remote_domain_event_callback_pmsuspend_disk_msg msg = { callback->callbackID,
+ data };
+
+ remoteDispatchObjectEventSend(callback->client, remoteProgram,
+ REMOTE_PROC_DOMAIN_EVENT_CALLBACK_PMSUSPEND_DISK,
+ (xdrproc_t)xdr_remote_domain_event_callback_pmsuspend_disk_msg, &msg);
+ }
return 0;
}
make_nonnull_domain(&data.dom, dom);
- remoteDispatchObjectEventSend(callback->client, remoteProgram,
- REMOTE_PROC_DOMAIN_EVENT_DEVICE_REMOVED,
- (xdrproc_t)xdr_remote_domain_event_device_removed_msg,
- &data);
+ if (callback->legacy) {
+ remoteDispatchObjectEventSend(callback->client, remoteProgram,
+ REMOTE_PROC_DOMAIN_EVENT_DEVICE_REMOVED,
+ (xdrproc_t)xdr_remote_domain_event_device_removed_msg,
+ &data);
+ } else {
+ remote_domain_event_callback_device_removed_msg msg = { callback->callbackID,
+ data };
+
+ remoteDispatchObjectEventSend(callback->client, remoteProgram,
+ REMOTE_PROC_DOMAIN_EVENT_CALLBACK_DEVICE_REMOVED,
+ (xdrproc_t)xdr_remote_domain_event_callback_device_removed_msg,
+ &msg);
+ }
return 0;
}
!(dom = get_nonnull_domain(priv->conn, *args->dom)))
goto cleanup;
- /* FIXME: support all domain events */
- if (args->eventID != VIR_DOMAIN_EVENT_ID_LIFECYCLE) {
+ if (args->eventID >= VIR_DOMAIN_EVENT_ID_LAST || args->eventID < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, _("unsupported event ID %d"),
args->eventID);
goto cleanup;
virNetClientPtr client ATTRIBUTE_UNUSED,
void *evdata, void *opaque);
static void
+remoteDomainBuildEventCallbackReboot(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
+ virNetClientPtr client ATTRIBUTE_UNUSED,
+ void *evdata, void *opaque);
+
+static void
remoteDomainBuildEventRTCChange(virNetClientProgramPtr prog,
virNetClientPtr client,
void *evdata, void *opaque);
static void
+remoteDomainBuildEventCallbackRTCChange(virNetClientProgramPtr prog,
+ virNetClientPtr client,
+ void *evdata, void *opaque);
+
+static void
remoteDomainBuildEventWatchdog(virNetClientProgramPtr prog,
virNetClientPtr client,
void *evdata, void *opaque);
static void
+remoteDomainBuildEventCallbackWatchdog(virNetClientProgramPtr prog,
+ virNetClientPtr client,
+ void *evdata, void *opaque);
+
+static void
remoteDomainBuildEventIOError(virNetClientProgramPtr prog,
virNetClientPtr client,
void *evdata, void *opaque);
static void
+remoteDomainBuildEventCallbackIOError(virNetClientProgramPtr prog,
+ virNetClientPtr client,
+ void *evdata, void *opaque);
+
+static void
remoteDomainBuildEventIOErrorReason(virNetClientProgramPtr prog,
virNetClientPtr client,
void *evdata, void *opaque);
static void
+remoteDomainBuildEventCallbackIOErrorReason(virNetClientProgramPtr prog,
+ virNetClientPtr client,
+ void *evdata, void *opaque);
+
+static void
remoteDomainBuildEventGraphics(virNetClientProgramPtr prog,
virNetClientPtr client,
void *evdata, void *opaque);
static void
+remoteDomainBuildEventCallbackGraphics(virNetClientProgramPtr prog,
+ virNetClientPtr client,
+ void *evdata, void *opaque);
+
+static void
remoteDomainBuildEventControlError(virNetClientProgramPtr prog,
virNetClientPtr client,
void *evdata, void *opaque);
+static void
+remoteDomainBuildEventCallbackControlError(virNetClientProgramPtr prog,
+ virNetClientPtr client,
+ void *evdata, void *opaque);
static void
remoteDomainBuildEventBlockJob(virNetClientProgramPtr prog,
virNetClientPtr client,
void *evdata, void *opaque);
+static void
+remoteDomainBuildEventCallbackBlockJob(virNetClientProgramPtr prog,
+ virNetClientPtr client,
+ void *evdata, void *opaque);
+
static void
remoteDomainBuildEventDiskChange(virNetClientProgramPtr prog,
virNetClientPtr client,
void *evdata, void *opaque);
+static void
+remoteDomainBuildEventCallbackDiskChange(virNetClientProgramPtr prog,
+ virNetClientPtr client,
+ void *evdata, void *opaque);
static void
remoteDomainBuildEventTrayChange(virNetClientProgramPtr prog,
virNetClientPtr client,
void *evdata, void *opaque);
+static void
+remoteDomainBuildEventCallbackTrayChange(virNetClientProgramPtr prog,
+ virNetClientPtr client,
+ void *evdata, void *opaque);
static void
remoteDomainBuildEventPMWakeup(virNetClientProgramPtr prog,
virNetClientPtr client,
void *evdata, void *opaque);
+static void
+remoteDomainBuildEventCallbackPMWakeup(virNetClientProgramPtr prog,
+ virNetClientPtr client,
+ void *evdata, void *opaque);
static void
remoteDomainBuildEventPMSuspend(virNetClientProgramPtr prog,
virNetClientPtr client,
void *evdata, void *opaque);
static void
+remoteDomainBuildEventCallbackPMSuspend(virNetClientProgramPtr prog,
+ virNetClientPtr client,
+ void *evdata, void *opaque);
+
+static void
remoteDomainBuildEventBalloonChange(virNetClientProgramPtr prog,
virNetClientPtr client,
void *evdata, void *opaque);
static void
+remoteDomainBuildEventCallbackBalloonChange(virNetClientProgramPtr prog,
+ virNetClientPtr client,
+ void *evdata, void *opaque);
+
+static void
remoteDomainBuildEventPMSuspendDisk(virNetClientProgramPtr prog,
virNetClientPtr client,
void *evdata, void *opaque);
+static void
+remoteDomainBuildEventCallbackPMSuspendDisk(virNetClientProgramPtr prog,
+ virNetClientPtr client,
+ void *evdata, void *opaque);
static void
remoteDomainBuildEventDeviceRemoved(virNetClientProgramPtr prog,
virNetClientPtr client,
void *evdata, void *opaque);
+static void
+remoteDomainBuildEventCallbackDeviceRemoved(virNetClientProgramPtr prog,
+ virNetClientPtr client,
+ void *evdata, void *opaque);
static void
remoteNetworkBuildEventLifecycle(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
void *evdata, void *opaque);
static virNetClientProgramEvent remoteEvents[] = {
- { REMOTE_PROC_DOMAIN_EVENT_RTC_CHANGE,
- remoteDomainBuildEventRTCChange,
- sizeof(remote_domain_event_rtc_change_msg),
- (xdrproc_t)xdr_remote_domain_event_rtc_change_msg },
- { REMOTE_PROC_DOMAIN_EVENT_REBOOT,
- remoteDomainBuildEventReboot,
- sizeof(remote_domain_event_reboot_msg),
- (xdrproc_t)xdr_remote_domain_event_reboot_msg },
{ REMOTE_PROC_DOMAIN_EVENT_LIFECYCLE,
remoteDomainBuildEventLifecycle,
sizeof(remote_domain_event_lifecycle_msg),
(xdrproc_t)xdr_remote_domain_event_lifecycle_msg },
+ { REMOTE_PROC_DOMAIN_EVENT_REBOOT,
+ remoteDomainBuildEventReboot,
+ sizeof(remote_domain_event_reboot_msg),
+ (xdrproc_t)xdr_remote_domain_event_reboot_msg },
+ { REMOTE_PROC_DOMAIN_EVENT_RTC_CHANGE,
+ remoteDomainBuildEventRTCChange,
+ sizeof(remote_domain_event_rtc_change_msg),
+ (xdrproc_t)xdr_remote_domain_event_rtc_change_msg },
{ REMOTE_PROC_DOMAIN_EVENT_WATCHDOG,
remoteDomainBuildEventWatchdog,
sizeof(remote_domain_event_watchdog_msg),
remoteDomainBuildEventIOError,
sizeof(remote_domain_event_io_error_msg),
(xdrproc_t)xdr_remote_domain_event_io_error_msg },
- { REMOTE_PROC_DOMAIN_EVENT_IO_ERROR_REASON,
- remoteDomainBuildEventIOErrorReason,
- sizeof(remote_domain_event_io_error_reason_msg),
- (xdrproc_t)xdr_remote_domain_event_io_error_reason_msg },
{ REMOTE_PROC_DOMAIN_EVENT_GRAPHICS,
remoteDomainBuildEventGraphics,
sizeof(remote_domain_event_graphics_msg),
(xdrproc_t)xdr_remote_domain_event_graphics_msg },
+ { REMOTE_PROC_DOMAIN_EVENT_IO_ERROR_REASON,
+ remoteDomainBuildEventIOErrorReason,
+ sizeof(remote_domain_event_io_error_reason_msg),
+ (xdrproc_t)xdr_remote_domain_event_io_error_reason_msg },
{ REMOTE_PROC_DOMAIN_EVENT_CONTROL_ERROR,
remoteDomainBuildEventControlError,
sizeof(remote_domain_event_control_error_msg),
remoteDomainBuildEventCallbackLifecycle,
sizeof(remote_domain_event_callback_lifecycle_msg),
(xdrproc_t)xdr_remote_domain_event_callback_lifecycle_msg },
+ { REMOTE_PROC_DOMAIN_EVENT_CALLBACK_REBOOT,
+ remoteDomainBuildEventCallbackReboot,
+ sizeof(remote_domain_event_callback_reboot_msg),
+ (xdrproc_t)xdr_remote_domain_event_callback_reboot_msg },
+ { REMOTE_PROC_DOMAIN_EVENT_CALLBACK_RTC_CHANGE,
+ remoteDomainBuildEventCallbackRTCChange,
+ sizeof(remote_domain_event_callback_rtc_change_msg),
+ (xdrproc_t)xdr_remote_domain_event_callback_rtc_change_msg },
+ { REMOTE_PROC_DOMAIN_EVENT_CALLBACK_WATCHDOG,
+ remoteDomainBuildEventCallbackWatchdog,
+ sizeof(remote_domain_event_callback_watchdog_msg),
+ (xdrproc_t)xdr_remote_domain_event_callback_watchdog_msg},
+ { REMOTE_PROC_DOMAIN_EVENT_CALLBACK_IO_ERROR,
+ remoteDomainBuildEventCallbackIOError,
+ sizeof(remote_domain_event_callback_io_error_msg),
+ (xdrproc_t)xdr_remote_domain_event_callback_io_error_msg },
+ { REMOTE_PROC_DOMAIN_EVENT_CALLBACK_GRAPHICS,
+ remoteDomainBuildEventCallbackGraphics,
+ sizeof(remote_domain_event_callback_graphics_msg),
+ (xdrproc_t)xdr_remote_domain_event_callback_graphics_msg },
+ { REMOTE_PROC_DOMAIN_EVENT_CALLBACK_IO_ERROR_REASON,
+ remoteDomainBuildEventCallbackIOErrorReason,
+ sizeof(remote_domain_event_callback_io_error_reason_msg),
+ (xdrproc_t)xdr_remote_domain_event_callback_io_error_reason_msg },
+ { REMOTE_PROC_DOMAIN_EVENT_CALLBACK_CONTROL_ERROR,
+ remoteDomainBuildEventCallbackControlError,
+ sizeof(remote_domain_event_callback_control_error_msg),
+ (xdrproc_t)xdr_remote_domain_event_callback_control_error_msg },
+ { REMOTE_PROC_DOMAIN_EVENT_CALLBACK_BLOCK_JOB,
+ remoteDomainBuildEventCallbackBlockJob,
+ sizeof(remote_domain_event_callback_block_job_msg),
+ (xdrproc_t)xdr_remote_domain_event_callback_block_job_msg },
+ { REMOTE_PROC_DOMAIN_EVENT_CALLBACK_DISK_CHANGE,
+ remoteDomainBuildEventCallbackDiskChange,
+ sizeof(remote_domain_event_callback_disk_change_msg),
+ (xdrproc_t)xdr_remote_domain_event_callback_disk_change_msg },
+ { REMOTE_PROC_DOMAIN_EVENT_CALLBACK_TRAY_CHANGE,
+ remoteDomainBuildEventCallbackTrayChange,
+ sizeof(remote_domain_event_callback_tray_change_msg),
+ (xdrproc_t)xdr_remote_domain_event_callback_tray_change_msg },
+ { REMOTE_PROC_DOMAIN_EVENT_CALLBACK_PMWAKEUP,
+ remoteDomainBuildEventCallbackPMWakeup,
+ sizeof(remote_domain_event_callback_pmwakeup_msg),
+ (xdrproc_t)xdr_remote_domain_event_callback_pmwakeup_msg },
+ { REMOTE_PROC_DOMAIN_EVENT_CALLBACK_PMSUSPEND,
+ remoteDomainBuildEventCallbackPMSuspend,
+ sizeof(remote_domain_event_callback_pmsuspend_msg),
+ (xdrproc_t)xdr_remote_domain_event_callback_pmsuspend_msg },
+ { REMOTE_PROC_DOMAIN_EVENT_CALLBACK_BALLOON_CHANGE,
+ remoteDomainBuildEventCallbackBalloonChange,
+ sizeof(remote_domain_event_callback_balloon_change_msg),
+ (xdrproc_t)xdr_remote_domain_event_callback_balloon_change_msg },
+ { REMOTE_PROC_DOMAIN_EVENT_CALLBACK_PMSUSPEND_DISK,
+ remoteDomainBuildEventCallbackPMSuspendDisk,
+ sizeof(remote_domain_event_callback_pmsuspend_disk_msg),
+ (xdrproc_t)xdr_remote_domain_event_callback_pmsuspend_disk_msg },
+ { REMOTE_PROC_DOMAIN_EVENT_CALLBACK_DEVICE_REMOVED,
+ remoteDomainBuildEventCallbackDeviceRemoved,
+ sizeof(remote_domain_event_callback_device_removed_msg),
+ (xdrproc_t)xdr_remote_domain_event_callback_device_removed_msg },
};
enum virDrvOpenRemoteFlags {
static void
-remoteDomainBuildEventReboot(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
- virNetClientPtr client ATTRIBUTE_UNUSED,
- void *evdata, void *opaque)
+remoteDomainBuildEventRebootHelper(virConnectPtr conn,
+ remote_domain_event_reboot_msg *msg,
+ int callbackID)
{
- virConnectPtr conn = opaque;
struct private_data *priv = conn->privateData;
- remote_domain_event_reboot_msg *msg = evdata;
virDomainPtr dom;
virObjectEventPtr event = NULL;
event = virDomainEventRebootNewFromDom(dom);
virDomainFree(dom);
- remoteEventQueue(priv, event, -1);
+ remoteEventQueue(priv, event, callbackID);
}
-
-
static void
-remoteDomainBuildEventRTCChange(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
- virNetClientPtr client ATTRIBUTE_UNUSED,
- void *evdata, void *opaque)
+remoteDomainBuildEventReboot(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
+ virNetClientPtr client ATTRIBUTE_UNUSED,
+ void *evdata, void *opaque)
+{
+ virConnectPtr conn = opaque;
+ remote_domain_event_reboot_msg *msg = evdata;
+ remoteDomainBuildEventRebootHelper(conn, msg, -1);
+}
+static void
+remoteDomainBuildEventCallbackReboot(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
+ virNetClientPtr client ATTRIBUTE_UNUSED,
+ void *evdata, void *opaque)
{
virConnectPtr conn = opaque;
+ remote_domain_event_callback_reboot_msg *msg = evdata;
+ remoteDomainBuildEventRebootHelper(conn, &msg->msg, msg->callbackID);
+}
+
+static void
+remoteDomainBuildEventRTCChangeHelper(virConnectPtr conn,
+ remote_domain_event_rtc_change_msg *msg,
+ int callbackID)
+{
struct private_data *priv = conn->privateData;
- remote_domain_event_rtc_change_msg *msg = evdata;
virDomainPtr dom;
virObjectEventPtr event = NULL;
event = virDomainEventRTCChangeNewFromDom(dom, msg->offset);
virDomainFree(dom);
- remoteEventQueue(priv, event, -1);
+ remoteEventQueue(priv, event, callbackID);
}
-
-
static void
-remoteDomainBuildEventWatchdog(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
- virNetClientPtr client ATTRIBUTE_UNUSED,
- void *evdata, void *opaque)
+remoteDomainBuildEventRTCChange(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
+ virNetClientPtr client ATTRIBUTE_UNUSED,
+ void *evdata, void *opaque)
{
virConnectPtr conn = opaque;
+ remote_domain_event_rtc_change_msg *msg = evdata;
+ remoteDomainBuildEventRTCChangeHelper(conn, msg, -1);
+}
+static void
+remoteDomainBuildEventCallbackRTCChange(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
+ virNetClientPtr client ATTRIBUTE_UNUSED,
+ void *evdata, void *opaque)
+{
+ virConnectPtr conn = opaque;
+ remote_domain_event_callback_rtc_change_msg *msg = evdata;
+ remoteDomainBuildEventRTCChangeHelper(conn, &msg->msg, msg->callbackID);
+}
+
+static void
+remoteDomainBuildEventWatchdogHelper(virConnectPtr conn,
+ remote_domain_event_watchdog_msg *msg,
+ int callbackID)
+{
struct private_data *priv = conn->privateData;
- remote_domain_event_watchdog_msg *msg = evdata;
virDomainPtr dom;
virObjectEventPtr event = NULL;
event = virDomainEventWatchdogNewFromDom(dom, msg->action);
virDomainFree(dom);
- remoteEventQueue(priv, event, -1);
+ remoteEventQueue(priv, event, callbackID);
}
-
-
static void
-remoteDomainBuildEventIOError(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
- virNetClientPtr client ATTRIBUTE_UNUSED,
- void *evdata, void *opaque)
+remoteDomainBuildEventWatchdog(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
+ virNetClientPtr client ATTRIBUTE_UNUSED,
+ void *evdata, void *opaque)
+{
+ virConnectPtr conn = opaque;
+ remote_domain_event_watchdog_msg *msg = evdata;
+ remoteDomainBuildEventWatchdogHelper(conn, msg, -1);
+}
+static void
+remoteDomainBuildEventCallbackWatchdog(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
+ virNetClientPtr client ATTRIBUTE_UNUSED,
+ void *evdata, void *opaque)
{
virConnectPtr conn = opaque;
+ remote_domain_event_callback_watchdog_msg *msg = evdata;
+ remoteDomainBuildEventWatchdogHelper(conn, &msg->msg, msg->callbackID);
+}
+
+static void
+remoteDomainBuildEventIOErrorHelper(virConnectPtr conn,
+ remote_domain_event_io_error_msg *msg,
+ int callbackID)
+{
struct private_data *priv = conn->privateData;
- remote_domain_event_io_error_msg *msg = evdata;
virDomainPtr dom;
virObjectEventPtr event = NULL;
msg->action);
virDomainFree(dom);
- remoteEventQueue(priv, event, -1);
+ remoteEventQueue(priv, event, callbackID);
}
-
-
static void
-remoteDomainBuildEventIOErrorReason(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
- virNetClientPtr client ATTRIBUTE_UNUSED,
- void *evdata, void *opaque)
+remoteDomainBuildEventIOError(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
+ virNetClientPtr client ATTRIBUTE_UNUSED,
+ void *evdata, void *opaque)
+{
+ virConnectPtr conn = opaque;
+ remote_domain_event_io_error_msg *msg = evdata;
+ remoteDomainBuildEventIOErrorHelper(conn, msg, -1);
+}
+static void
+remoteDomainBuildEventCallbackIOError(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
+ virNetClientPtr client ATTRIBUTE_UNUSED,
+ void *evdata, void *opaque)
{
virConnectPtr conn = opaque;
+ remote_domain_event_callback_io_error_msg *msg = evdata;
+ remoteDomainBuildEventIOErrorHelper(conn, &msg->msg, msg->callbackID);
+}
+
+static void
+remoteDomainBuildEventIOErrorReasonHelper(virConnectPtr conn,
+ remote_domain_event_io_error_reason_msg *msg,
+ int callbackID)
+{
struct private_data *priv = conn->privateData;
- remote_domain_event_io_error_reason_msg *msg = evdata;
virDomainPtr dom;
virObjectEventPtr event = NULL;
virDomainFree(dom);
- remoteEventQueue(priv, event, -1);
+ remoteEventQueue(priv, event, callbackID);
}
-
static void
-remoteDomainBuildEventBlockJob(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
- virNetClientPtr client ATTRIBUTE_UNUSED,
- void *evdata, void *opaque)
+remoteDomainBuildEventIOErrorReason(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
+ virNetClientPtr client ATTRIBUTE_UNUSED,
+ void *evdata, void *opaque)
{
virConnectPtr conn = opaque;
+ remote_domain_event_io_error_reason_msg *msg = evdata;
+ remoteDomainBuildEventIOErrorReasonHelper(conn, msg, -1);
+}
+static void
+remoteDomainBuildEventCallbackIOErrorReason(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
+ virNetClientPtr client ATTRIBUTE_UNUSED,
+ void *evdata, void *opaque)
+{
+ virConnectPtr conn = opaque;
+ remote_domain_event_callback_io_error_reason_msg *msg = evdata;
+ remoteDomainBuildEventIOErrorReasonHelper(conn, &msg->msg, msg->callbackID);
+}
+
+static void
+remoteDomainBuildEventBlockJobHelper(virConnectPtr conn,
+ remote_domain_event_block_job_msg *msg,
+ int callbackID)
+{
struct private_data *priv = conn->privateData;
- remote_domain_event_block_job_msg *msg = evdata;
virDomainPtr dom;
virObjectEventPtr event = NULL;
virDomainFree(dom);
- remoteEventQueue(priv, event, -1);
+ remoteEventQueue(priv, event, callbackID);
}
-
static void
-remoteDomainBuildEventGraphics(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
+remoteDomainBuildEventBlockJob(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
virNetClientPtr client ATTRIBUTE_UNUSED,
void *evdata, void *opaque)
{
virConnectPtr conn = opaque;
+ remote_domain_event_block_job_msg *msg = evdata;
+ remoteDomainBuildEventBlockJobHelper(conn, msg, -1);
+}
+static void
+remoteDomainBuildEventCallbackBlockJob(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
+ virNetClientPtr client ATTRIBUTE_UNUSED,
+ void *evdata, void *opaque)
+{
+ virConnectPtr conn = opaque;
+ remote_domain_event_callback_block_job_msg *msg = evdata;
+ remoteDomainBuildEventBlockJobHelper(conn, &msg->msg, msg->callbackID);
+}
+
+static void
+remoteDomainBuildEventGraphicsHelper(virConnectPtr conn,
+ remote_domain_event_graphics_msg *msg,
+ int callbackID)
+{
struct private_data *priv = conn->privateData;
- remote_domain_event_graphics_msg *msg = evdata;
virDomainPtr dom;
virObjectEventPtr event = NULL;
virDomainEventGraphicsAddressPtr localAddr = NULL;
virDomainFree(dom);
- remoteEventQueue(priv, event, -1);
+ remoteEventQueue(priv, event, callbackID);
return;
error:
virDomainFree(dom);
return;
}
-
-
static void
-remoteDomainBuildEventControlError(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
- virNetClientPtr client ATTRIBUTE_UNUSED,
- void *evdata, void *opaque)
+remoteDomainBuildEventGraphics(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
+ virNetClientPtr client ATTRIBUTE_UNUSED,
+ void *evdata, void *opaque)
{
virConnectPtr conn = opaque;
+ remote_domain_event_graphics_msg *msg = evdata;
+ remoteDomainBuildEventGraphicsHelper(conn, msg, -1);
+}
+static void
+remoteDomainBuildEventCallbackGraphics(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
+ virNetClientPtr client ATTRIBUTE_UNUSED,
+ void *evdata, void *opaque)
+{
+ virConnectPtr conn = opaque;
+ remote_domain_event_callback_graphics_msg *msg = evdata;
+ remoteDomainBuildEventGraphicsHelper(conn, &msg->msg, msg->callbackID);
+}
+
+static void
+remoteDomainBuildEventControlErrorHelper(virConnectPtr conn,
+ remote_domain_event_control_error_msg *msg,
+ int callbackID)
+{
struct private_data *priv = conn->privateData;
- remote_domain_event_control_error_msg *msg = evdata;
virDomainPtr dom;
virObjectEventPtr event = NULL;
virDomainFree(dom);
- remoteEventQueue(priv, event, -1);
+ remoteEventQueue(priv, event, callbackID);
+}
+static void
+remoteDomainBuildEventControlError(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
+ virNetClientPtr client ATTRIBUTE_UNUSED,
+ void *evdata, void *opaque)
+{
+ virConnectPtr conn = opaque;
+ remote_domain_event_control_error_msg *msg = evdata;
+ remoteDomainBuildEventControlErrorHelper(conn, msg, -1);
+}
+static void
+remoteDomainBuildEventCallbackControlError(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
+ virNetClientPtr client ATTRIBUTE_UNUSED,
+ void *evdata, void *opaque)
+{
+ virConnectPtr conn = opaque;
+ remote_domain_event_callback_control_error_msg *msg = evdata;
+ remoteDomainBuildEventControlErrorHelper(conn, &msg->msg, msg->callbackID);
}
static void
-remoteDomainBuildEventDiskChange(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
- virNetClientPtr client ATTRIBUTE_UNUSED,
- void *evdata, void *opaque)
+remoteDomainBuildEventDiskChangeHelper(virConnectPtr conn,
+ remote_domain_event_disk_change_msg *msg,
+ int callbackID)
{
- virConnectPtr conn = opaque;
struct private_data *priv = conn->privateData;
- remote_domain_event_disk_change_msg *msg = evdata;
virDomainPtr dom;
virObjectEventPtr event = NULL;
virDomainFree(dom);
- remoteEventQueue(priv, event, -1);
+ remoteEventQueue(priv, event, callbackID);
}
-
-
static void
-remoteDomainBuildEventTrayChange(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
+remoteDomainBuildEventDiskChange(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
virNetClientPtr client ATTRIBUTE_UNUSED,
void *evdata, void *opaque)
{
virConnectPtr conn = opaque;
+ remote_domain_event_disk_change_msg *msg = evdata;
+ remoteDomainBuildEventDiskChangeHelper(conn, msg, -1);
+}
+static void
+remoteDomainBuildEventCallbackDiskChange(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
+ virNetClientPtr client ATTRIBUTE_UNUSED,
+ void *evdata, void *opaque)
+{
+ virConnectPtr conn = opaque;
+ remote_domain_event_callback_disk_change_msg *msg = evdata;
+ remoteDomainBuildEventDiskChangeHelper(conn, &msg->msg, msg->callbackID);
+}
+
+
+static void
+remoteDomainBuildEventTrayChangeHelper(virConnectPtr conn,
+ remote_domain_event_tray_change_msg *msg,
+ int callbackID)
+{
struct private_data *priv = conn->privateData;
- remote_domain_event_tray_change_msg *msg = evdata;
virDomainPtr dom;
virObjectEventPtr event = NULL;
virDomainFree(dom);
- remoteEventQueue(priv, event, -1);
+ remoteEventQueue(priv, event, callbackID);
}
-
static void
-remoteDomainBuildEventPMWakeup(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
- virNetClientPtr client ATTRIBUTE_UNUSED,
- void *evdata, void *opaque)
+remoteDomainBuildEventTrayChange(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
+ virNetClientPtr client ATTRIBUTE_UNUSED,
+ void *evdata, void *opaque)
+{
+ virConnectPtr conn = opaque;
+ remote_domain_event_tray_change_msg *msg = evdata;
+ remoteDomainBuildEventTrayChangeHelper(conn, msg, -1);
+}
+static void
+remoteDomainBuildEventCallbackTrayChange(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
+ virNetClientPtr client ATTRIBUTE_UNUSED,
+ void *evdata, void *opaque)
{
virConnectPtr conn = opaque;
+ remote_domain_event_callback_tray_change_msg *msg = evdata;
+ remoteDomainBuildEventTrayChangeHelper(conn, &msg->msg, msg->callbackID);
+}
+
+static void
+remoteDomainBuildEventPMWakeupHelper(virConnectPtr conn,
+ remote_domain_event_pmwakeup_msg *msg,
+ int callbackID)
+{
struct private_data *priv = conn->privateData;
- remote_domain_event_pmwakeup_msg *msg = evdata;
virDomainPtr dom;
virObjectEventPtr event = NULL;
virDomainFree(dom);
- remoteEventQueue(priv, event, -1);
+ remoteEventQueue(priv, event, callbackID);
}
-
static void
-remoteDomainBuildEventPMSuspend(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
- virNetClientPtr client ATTRIBUTE_UNUSED,
- void *evdata, void *opaque)
+remoteDomainBuildEventPMWakeup(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
+ virNetClientPtr client ATTRIBUTE_UNUSED,
+ void *evdata, void *opaque)
+{
+ virConnectPtr conn = opaque;
+ remote_domain_event_pmwakeup_msg *msg = evdata;
+ remoteDomainBuildEventPMWakeupHelper(conn, msg, -1);
+}
+static void
+remoteDomainBuildEventCallbackPMWakeup(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
+ virNetClientPtr client ATTRIBUTE_UNUSED,
+ void *evdata, void *opaque)
{
virConnectPtr conn = opaque;
+ remote_domain_event_callback_pmwakeup_msg *msg = evdata;
+ remoteDomainBuildEventPMWakeupHelper(conn, &msg->msg, msg->callbackID);
+}
+
+static void
+remoteDomainBuildEventPMSuspendHelper(virConnectPtr conn,
+ remote_domain_event_pmsuspend_msg *msg,
+ int callbackID)
+{
struct private_data *priv = conn->privateData;
- remote_domain_event_pmsuspend_msg *msg = evdata;
virDomainPtr dom;
virObjectEventPtr event = NULL;
virDomainFree(dom);
- remoteEventQueue(priv, event, -1);
+ remoteEventQueue(priv, event, callbackID);
+}
+static void
+remoteDomainBuildEventPMSuspend(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
+ virNetClientPtr client ATTRIBUTE_UNUSED,
+ void *evdata, void *opaque)
+{
+ virConnectPtr conn = opaque;
+ remote_domain_event_pmsuspend_msg *msg = evdata;
+ remoteDomainBuildEventPMSuspendHelper(conn, msg, -1);
+}
+static void
+remoteDomainBuildEventCallbackPMSuspend(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
+ virNetClientPtr client ATTRIBUTE_UNUSED,
+ void *evdata, void *opaque)
+{
+ virConnectPtr conn = opaque;
+ remote_domain_event_callback_pmsuspend_msg *msg = evdata;
+ remoteDomainBuildEventPMSuspendHelper(conn, &msg->msg, msg->callbackID);
}
static void
-remoteDomainBuildEventBalloonChange(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
- virNetClientPtr client ATTRIBUTE_UNUSED,
- void *evdata, void *opaque)
+remoteDomainBuildEventBalloonChangeHelper(virConnectPtr conn,
+ remote_domain_event_balloon_change_msg *msg,
+ int callbackID)
{
- virConnectPtr conn = opaque;
struct private_data *priv = conn->privateData;
- remote_domain_event_balloon_change_msg *msg = evdata;
virDomainPtr dom;
virObjectEventPtr event = NULL;
event = virDomainEventBalloonChangeNewFromDom(dom, msg->actual);
virDomainFree(dom);
- remoteEventQueue(priv, event, -1);
+ remoteEventQueue(priv, event, callbackID);
}
-
-
static void
-remoteDomainBuildEventPMSuspendDisk(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
+remoteDomainBuildEventBalloonChange(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
virNetClientPtr client ATTRIBUTE_UNUSED,
void *evdata, void *opaque)
{
virConnectPtr conn = opaque;
+ remote_domain_event_balloon_change_msg *msg = evdata;
+ remoteDomainBuildEventBalloonChangeHelper(conn, msg, -1);
+}
+static void
+remoteDomainBuildEventCallbackBalloonChange(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
+ virNetClientPtr client ATTRIBUTE_UNUSED,
+ void *evdata, void *opaque)
+{
+ virConnectPtr conn = opaque;
+ remote_domain_event_callback_balloon_change_msg *msg = evdata;
+ remoteDomainBuildEventBalloonChangeHelper(conn, &msg->msg, msg->callbackID);
+}
+
+
+static void
+remoteDomainBuildEventPMSuspendDiskHelper(virConnectPtr conn,
+ remote_domain_event_pmsuspend_disk_msg *msg,
+ int callbackID)
+{
struct private_data *priv = conn->privateData;
- remote_domain_event_pmsuspend_disk_msg *msg = evdata;
virDomainPtr dom;
virObjectEventPtr event = NULL;
virDomainFree(dom);
- remoteEventQueue(priv, event, -1);
+ remoteEventQueue(priv, event, callbackID);
}
-
-
static void
-remoteDomainBuildEventDeviceRemoved(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
+remoteDomainBuildEventPMSuspendDisk(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
virNetClientPtr client ATTRIBUTE_UNUSED,
void *evdata, void *opaque)
{
virConnectPtr conn = opaque;
+ remote_domain_event_pmsuspend_disk_msg *msg = evdata;
+ remoteDomainBuildEventPMSuspendDiskHelper(conn, msg, -1);
+}
+static void
+remoteDomainBuildEventCallbackPMSuspendDisk(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
+ virNetClientPtr client ATTRIBUTE_UNUSED,
+ void *evdata, void *opaque)
+{
+ virConnectPtr conn = opaque;
+ remote_domain_event_callback_pmsuspend_disk_msg *msg = evdata;
+ remoteDomainBuildEventPMSuspendDiskHelper(conn, &msg->msg, msg->callbackID);
+}
+
+
+static void
+remoteDomainBuildEventDeviceRemovedHelper(virConnectPtr conn,
+ remote_domain_event_device_removed_msg *msg,
+ int callbackID)
+{
struct private_data *priv = conn->privateData;
- remote_domain_event_device_removed_msg *msg = evdata;
virDomainPtr dom;
virObjectEventPtr event = NULL;
virDomainFree(dom);
- remoteEventQueue(priv, event, -1);
+ remoteEventQueue(priv, event, callbackID);
+}
+static void
+remoteDomainBuildEventDeviceRemoved(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
+ virNetClientPtr client ATTRIBUTE_UNUSED,
+ void *evdata, void *opaque)
+{
+ virConnectPtr conn = opaque;
+ remote_domain_event_device_removed_msg *msg = evdata;
+ remoteDomainBuildEventDeviceRemovedHelper(conn, msg, -1);
+}
+static void
+remoteDomainBuildEventCallbackDeviceRemoved(virNetClientProgramPtr prog ATTRIBUTE_UNUSED,
+ virNetClientPtr client ATTRIBUTE_UNUSED,
+ void *evdata, void *opaque)
+{
+ virConnectPtr conn = opaque;
+ remote_domain_event_callback_device_removed_msg *msg = evdata;
+ remoteDomainBuildEventDeviceRemovedHelper(conn, &msg->msg, msg->callbackID);
}
int callbackID;
int count;
remote_nonnull_domain domain;
- bool serverFilter;
remoteDriverLock(priv);
- serverFilter = priv->serverEventFilter;
- /* FIXME support more than just lifecycle events */
- serverFilter &= eventID == VIR_DOMAIN_EVENT_ID_LIFECYCLE;
-
if ((count = virDomainEventStateRegisterClient(conn, priv->eventState,
dom, eventID, callback,
opaque, freecb, false,
&callbackID,
- serverFilter)) < 0)
+ priv->serverEventFilter)) < 0)
goto done;
/* If this is the first callback for this eventID, we need to enable
* events on the server */
if (count == 1) {
- if (serverFilter) {
+ if (priv->serverEventFilter) {
remote_connect_domain_event_callback_register_any_args args;
remote_connect_domain_event_callback_register_any_ret ret;
/* If that was the last callback for this eventID, we need to disable
* events on the server */
- /* FIXME support more than just lifecycle events */
if (count == 0) {
- if (priv->serverEventFilter &&
- eventID == VIR_DOMAIN_EVENT_ID_LIFECYCLE) {
+ if (priv->serverEventFilter) {
remote_connect_domain_event_callback_deregister_any_args args;
args.callbackID = remoteID;