Result NetControlThread::startNetwork() { Result result; QString name = task.object; bool started = false; if ( task.srcConnPtr==nullptr ) { result.result = false; result.err = "Connection pointer is NULL."; return result; }; virNetworkPtr network = virNetworkLookupByName( *task.srcConnPtr, name.toUtf8().data()); if ( network!=nullptr ) { started = (virNetworkCreate(network)+1) ? true : false; if (!started) result.err = sendConnErrors(); virNetworkFree(network); } else result.err = sendConnErrors(); result.name = name; result.result = started; result.msg.append(QString("'<b>%1</b>' Network %2 Started.") .arg(name).arg((started)?"":"don't")); return result; }
static int testNetworkStartStopEvent(const void *data) { const objecteventTest *test = data; lifecycleEventCounter counter; int id; int ret = 0; lifecycleEventCounter_reset(&counter); id = virConnectNetworkEventRegisterAny(test->conn, test->net, VIR_NETWORK_EVENT_ID_LIFECYCLE, VIR_NETWORK_EVENT_CALLBACK(&networkLifecycleCb), &counter, NULL); virNetworkCreate(test->net); virNetworkDestroy(test->net); if (virEventRunDefaultImpl() < 0) { ret = -1; goto cleanup; } if (counter.startEvents != 1 || counter.stopEvents != 1 || counter.unexpectedEvents > 0) { ret = -1; goto cleanup; } cleanup: virConnectNetworkEventDeregisterAny(test->conn, id); return ret; }
int main(int argc, char *argv[]) { virConnectPtr conn; virNetworkPtr net; if(argc != 2) { printf("usage: ./start_network domain_network\n"); return -1; } conn = virConnectOpen("qemu:///system"); if (conn == NULL) { fprintf(stderr, "Failed to open connection to qemu:///system\n"); return -1; } net = virNetworkLookupByName(conn, argv[1]); if (!net) { fprintf(stderr, "Network is not found\n"); virConnectClose(conn); return -1; } if (virNetworkCreate(net) < 0) { virNetworkFree(net); virConnectClose(conn); fprintf(stderr, "Cannot start network\n"); return -1; } fprintf(stderr, "Network %s has started\n", argv[1]); virNetworkFree(net); virConnectClose(conn); return 0; }