virObjectEvent parent;
int type;
+ int detail;
};
typedef struct _virNetworkEventLifecycle virNetworkEventLifecycle;
typedef virNetworkEventLifecycle *virNetworkEventLifecyclePtr;
networkLifecycleEvent = (virNetworkEventLifecyclePtr)event;
((virConnectNetworkEventLifecycleCallback)cb)(conn, net,
networkLifecycleEvent->type,
- 0,
+ networkLifecycleEvent->detail,
cbopaque);
goto cleanup;
}
virObjectEventPtr
virNetworkEventLifecycleNew(const char *name,
const unsigned char *uuid,
- int type)
+ int type,
+ int detail)
{
virNetworkEventLifecyclePtr event;
int eventId = (VIR_EVENT_NAMESPACE_NETWORK << 8) + VIR_NETWORK_EVENT_ID_LIFECYCLE;
return NULL;
event->type = type;
+ event->detail = detail;
return (virObjectEventPtr)event;
}
virObjectEventPtr
virNetworkEventLifecycleNew(const char *name,
const unsigned char *uuid,
- int type);
+ int type,
+ int detail);
void
virNetworkEventDispatchDefaultFunc(virConnectPtr conn,
event = virNetworkEventLifecycleNew(network->def->name,
network->def->uuid,
- VIR_NETWORK_EVENT_STARTED);
+ VIR_NETWORK_EVENT_STARTED,
+ 0);
VIR_INFO("Creating network '%s'", network->def->name);
ret = virGetNetwork(conn, network->def->name, network->def->uuid);
}
event = virNetworkEventLifecycleNew(def->name, def->uuid,
- VIR_NETWORK_EVENT_DEFINED);
+ VIR_NETWORK_EVENT_DEFINED,
+ 0);
VIR_INFO("Defining network '%s'", def->name);
ret = virGetNetwork(conn, def->name, def->uuid);
event = virNetworkEventLifecycleNew(network->def->name,
network->def->uuid,
- VIR_NETWORK_EVENT_UNDEFINED);
+ VIR_NETWORK_EVENT_UNDEFINED,
+ 0);
VIR_INFO("Undefining network '%s'", network->def->name);
if (!active) {
event = virNetworkEventLifecycleNew(network->def->name,
network->def->uuid,
- VIR_NETWORK_EVENT_STARTED);
+ VIR_NETWORK_EVENT_STARTED,
+ 0);
cleanup:
if (event)
event = virNetworkEventLifecycleNew(network->def->name,
network->def->uuid,
- VIR_NETWORK_EVENT_STOPPED);
+ VIR_NETWORK_EVENT_STOPPED,
+ 0);
if (!network->persistent) {
if (networkRemoveInactive(driver, network) < 0) {
if (!net)
return;
- event = virNetworkEventLifecycleNew(net->name, net->uuid, msg->event);
+ event = virNetworkEventLifecycleNew(net->name, net->uuid, msg->event, msg->detail);
virNetworkFree(net);
remoteDomainEventQueue(priv, event);
net->active = 1;
event = virNetworkEventLifecycleNew(net->def->name, net->def->uuid,
- VIR_NETWORK_EVENT_STARTED);
+ VIR_NETWORK_EVENT_STARTED,
+ 0);
ret = virGetNetwork(conn, net->def->name, net->def->uuid);
net->persistent = 1;
event = virNetworkEventLifecycleNew(net->def->name, net->def->uuid,
- VIR_NETWORK_EVENT_DEFINED);
+ VIR_NETWORK_EVENT_DEFINED,
+ 0);
ret = virGetNetwork(conn, net->def->name, net->def->uuid);
}
event = virNetworkEventLifecycleNew(network->name, network->uuid,
- VIR_NETWORK_EVENT_UNDEFINED);
+ VIR_NETWORK_EVENT_UNDEFINED,
+ 0);
virNetworkRemoveInactive(&privconn->networks,
privnet);
privnet->active = 1;
event = virNetworkEventLifecycleNew(privnet->def->name, privnet->def->uuid,
- VIR_NETWORK_EVENT_STARTED);
+ VIR_NETWORK_EVENT_STARTED,
+ 0);
ret = 0;
cleanup:
privnet->active = 0;
event = virNetworkEventLifecycleNew(privnet->def->name, privnet->def->uuid,
- VIR_NETWORK_EVENT_STOPPED);
+ VIR_NETWORK_EVENT_STOPPED,
+ 0);
if (!privnet->persistent) {
virNetworkRemoveInactive(&privconn->networks,
privnet);