Hi,
I have compiled LibVirt 0.7.4 under mingw, and I want to use it with domain callback. Here
is a a code sample of my situation (I'm using visual studio) :
static int domain_event(virConnectPtr conn,
virDomainPtr dom,
int evt,
int detail,
void *opaque)
{
bool test = true;
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
virConnectPtr conn = virConnectOpen("qemu+tcp://192.168.220.198/session");
// Set Callback
int cbresult = virConnectDomainEventRegister(conn, domain_event, NULL, NULL);
// Lookup Domain
virDomainPtr dom = virDomainLookupByName(conn, "Test1");
if (virDomainIsActive(dom) == 1)
{
// Start Domain
int startDom = virDomainCreate(dom);
if (startDom != 0)
{
virErrorPtr e = virGetLastError();
bool test = true;
}
}
else
{
// Stop Domain
int StopDom = virDomainDestroy(dom);
if (StopDom != 0)
{
virErrorPtr e = virGetLastError();
bool test = true;
}
}
return 0;
}
This code works well when I did'nt use callbacks, but when I use it, it throw an error
at the virDomainCreate or virDomainDestroy call. In the application windows (console) I
have an "unmarshaling msg", I have study the case it comme from the call of
"xdr_string" method in the "xdr_remote_nonull_string" method
(remote_protocol.c).
I think, the xdr_string method is unable to marshall strings from the XDR* object to a
char**.
I've tried with dynamic linking or static linking of libvirt lib. Have you any clue to
have work callbacks ?
Best Regards,
Arnaud Champion