diff --git a/ChangeLog b/ChangeLog index b7126f9daca62304897d48f8f3b1becbaf954313..03a973f6a7750365f77afa799660b70b4ee77fc9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,10 @@ +Wed Mar 11 14:42:24 CET 2009 Daniel Veillard + + * src/xs_internal.c: fix xen events handling problem (Dan Berrange) + Tue Mar 10 12:03:37 CET 2009 Daniel Veillard - * src/xend_internal.c: fix an allocation problem in + * src/xend_internal.c: fix an allocation problem in xenDaemonDomainLookupByName_ids Tue Mar 10 10:29:46 GMT 2009 Daniel P. Berrange diff --git a/src/xs_internal.c b/src/xs_internal.c index 298bee802bccdfa2dcf77c8bc2b43b3380d2b6dd..50cc575f806cbd5251d141d33d56679c797f9932 100644 --- a/src/xs_internal.c +++ b/src/xs_internal.c @@ -1215,7 +1215,7 @@ xenStoreFindWatch(xenStoreWatchListPtr list, static void xenStoreWatchEvent(int watch ATTRIBUTE_UNUSED, int fd ATTRIBUTE_UNUSED, - int events ATTRIBUTE_UNUSED, + int events, void *data) { char **event; @@ -1226,8 +1226,12 @@ xenStoreWatchEvent(int watch ATTRIBUTE_UNUSED, virConnectPtr conn = data; xenUnifiedPrivatePtr priv = (xenUnifiedPrivatePtr) conn->privateData; + if(!priv) return; + /* only set a watch on read and write events */ + if (events & (VIR_EVENT_HANDLE_ERROR | VIR_EVENT_HANDLE_HANGUP)) return; + xenUnifiedLock(priv); if(!priv->xshandle)