On 23.06.2015 13:26, Mikhail Feoktistov wrote: > If the configuration of the instance has been modified, for example added disk or network device, then hypervisor > sends event with prlIssuerType = PIE_DISPATCHER and EventType = PET_DSP_EVT_VM_CONFIG_CHANGED > We should handle this event in prlsdkHandleVmEvent function to update instance's XML config. > prlsdkHandleVmEvent is a common handler and it recieves many events. > We don't need to handle all of them. Remove error message in case of unhandled events. > --- > src/vz/vz_sdk.c | 4 ++-- > 1 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/src/vz/vz_sdk.c b/src/vz/vz_sdk.c > index 98f7a57..d4d48e8 100644 > --- a/src/vz/vz_sdk.c > +++ b/src/vz/vz_sdk.c > @@ -1736,8 +1736,7 @@ prlsdkHandleVmEvent(vzConnPtr privconn, PRL_HANDLE prlEvent) > prlEvent = PRL_INVALID_HANDLE; > break; > default: > - virReportError(VIR_ERR_INTERNAL_ERROR, > - _("Can't handle event of type %d"), prlEventType); > + VIR_DEBUG("Skipping event type %d", prlEventType); > } > > cleanup: > @@ -1768,6 +1767,7 @@ prlsdkEventsHandler(PRL_HANDLE prlEvent, PRL_VOID_PTR opaque) > > switch (prlIssuerType) { > case PIE_VIRTUAL_MACHINE: > + case PIE_DISPATCHER: > prlsdkHandleVmEvent(privconn, prlEvent); > // above function takes own of event > prlEvent = PRL_INVALID_HANDLE; > So as switch on issuer_type doesn't solve event discrimitation task probably it would be better just to move to previous scheme. Previous scheme has 2 very similar switches in prlsdkHandleVmEvent and prlsdkEventsHandler and now I understand why. 1. SDK hides 3 types behind PHT_EVENT handles. 1. IOEvent 2. IOEventPackage 3. VMEvent and only VMEvent has PrlEvent_GetIssuerId method, other types responds PRL_UNIMPLEMENTED. Next we need an issuer_id for all events of interest but we don't know if is safe to call PrlEvent_GetIssuerId as we have no means to discriminate IOEvent and VMEvent. So we discriminate by checking the result of PrlEvent_GetType instead. Thus the only purpose of first switch is to call PrlEvent_GetIssuerId safely. The better approach will probably be to ask for PrlEvent_GetIssuerId always and don't treat PRL_UNIMPLEMENTED as error. This way we can get rid of the first switch. -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list