VIR_NETWORK_FORWARD_LAST,
"none", "nat", "route" )
-#define virNetworkReportError(conn, code, fmt...) \
- virReportErrorHelper(conn, VIR_FROM_NETWORK, code, __FILE__, \
- __FUNCTION__, __LINE__, fmt)
+#define virNetworkReportError(code, fmt...) \
+ virReportErrorHelper(NULL, VIR_FROM_NETWORK, code, __FILE__, \
+ __FUNCTION__, __LINE__, fmt)
virNetworkObjPtr virNetworkFindByUUID(const virNetworkObjListPtr nets,
const unsigned char *uuid)
nets->count = 0;
}
-virNetworkObjPtr virNetworkAssignDef(virConnectPtr conn,
- virNetworkObjListPtr nets,
+virNetworkObjPtr virNetworkAssignDef(virNetworkObjListPtr nets,
const virNetworkDefPtr def)
{
virNetworkObjPtr network;
return NULL;
}
if (virMutexInit(&network->lock) < 0) {
- virNetworkReportError(conn, VIR_ERR_INTERNAL_ERROR,
+ virNetworkReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("cannot initialize mutex"));
VIR_FREE(network);
return NULL;
static int
-virNetworkDHCPRangeDefParseXML(virConnectPtr conn,
- virNetworkDefPtr def,
+virNetworkDHCPRangeDefParseXML(virNetworkDefPtr def,
xmlNodePtr node) {
xmlNodePtr cur;
}
if (virSocketParseAddr(start, &saddr, 0) < 0) {
- virNetworkReportError(conn, VIR_ERR_XML_ERROR,
+ virNetworkReportError(VIR_ERR_XML_ERROR,
_("cannot parse dhcp start address '%s'"),
start);
xmlFree(start);
continue;
}
if (virSocketParseAddr(end, &eaddr, 0) < 0) {
- virNetworkReportError(conn, VIR_ERR_XML_ERROR,
+ virNetworkReportError(VIR_ERR_XML_ERROR,
_("cannot parse dhcp end address '%s'"),
end);
xmlFree(start);
range = virSocketGetRange(&saddr, &eaddr);
if (range < 0) {
- virNetworkReportError(conn, VIR_ERR_XML_ERROR,
+ virNetworkReportError(VIR_ERR_XML_ERROR,
_("dhcp range '%s' to '%s' invalid"),
start, end);
xmlFree(start);
mac = xmlGetProp(cur, BAD_CAST "mac");
if ((mac != NULL) &&
(virParseMacAddr((const char *) mac, &addr[0]) != 0)) {
- virNetworkReportError(conn, VIR_ERR_INTERNAL_ERROR,
+ virNetworkReportError(VIR_ERR_INTERNAL_ERROR,
_("cannot parse MAC address '%s'"),
mac);
VIR_FREE(mac);
}
name = xmlGetProp(cur, BAD_CAST "name");
if ((name != NULL) && (!c_isalpha(name[0]))) {
- virNetworkReportError(conn, VIR_ERR_INTERNAL_ERROR,
+ virNetworkReportError(VIR_ERR_INTERNAL_ERROR,
_("cannot use name address '%s'"),
name);
VIR_FREE(name);
}
ip = xmlGetProp(cur, BAD_CAST "ip");
if (inet_pton(AF_INET, (const char *) ip, &inaddress) <= 0) {
- virNetworkReportError(conn, VIR_ERR_INTERNAL_ERROR,
+ virNetworkReportError(VIR_ERR_INTERNAL_ERROR,
_("cannot parse IP address '%s'"),
ip);
VIR_FREE(ip);
}
static int
-virNetworkIPParseXML(virConnectPtr conn,
- virNetworkDefPtr def,
+virNetworkIPParseXML(virNetworkDefPtr def,
xmlNodePtr node) {
xmlNodePtr cur;
while (cur != NULL) {
if (cur->type == XML_ELEMENT_NODE &&
xmlStrEqual(cur->name, BAD_CAST "dhcp")) {
- int result = virNetworkDHCPRangeDefParseXML(conn, def, cur);
+ int result = virNetworkDHCPRangeDefParseXML(def, cur);
if (result)
return result;
}
static virNetworkDefPtr
-virNetworkDefParseXML(virConnectPtr conn,
- xmlXPathContextPtr ctxt)
+virNetworkDefParseXML(xmlXPathContextPtr ctxt)
{
virNetworkDefPtr def;
char *tmp;
/* Extract network name */
def->name = virXPathString("string(./name[1])", ctxt);
if (!def->name) {
- virNetworkReportError(conn, VIR_ERR_NO_NAME, NULL);
+ virNetworkReportError(VIR_ERR_NO_NAME, NULL);
goto error;
}
tmp = virXPathString("string(./uuid[1])", ctxt);
if (!tmp) {
if (virUUIDGenerate(def->uuid)) {
- virNetworkReportError(conn, VIR_ERR_INTERNAL_ERROR,
+ virNetworkReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("Failed to generate UUID"));
goto error;
}
} else {
if (virUUIDParse(tmp, def->uuid) < 0) {
VIR_FREE(tmp);
- virNetworkReportError(conn, VIR_ERR_INTERNAL_ERROR,
+ virNetworkReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("malformed uuid element"));
goto error;
}
xmlNodePtr ip;
if (inet_pton(AF_INET, def->ipAddress, &inaddress) <= 0) {
- virNetworkReportError(conn, VIR_ERR_INTERNAL_ERROR,
+ virNetworkReportError(VIR_ERR_INTERNAL_ERROR,
_("cannot parse IP address '%s'"),
def->ipAddress);
goto error;
}
if (inet_pton(AF_INET, def->netmask, &innetmask) <= 0) {
- virNetworkReportError(conn, VIR_ERR_INTERNAL_ERROR,
+ virNetworkReportError(VIR_ERR_INTERNAL_ERROR,
_("cannot parse netmask '%s'"),
def->netmask);
goto error;
}
if ((ip = virXPathNode("./ip[1]", ctxt)) &&
- virNetworkIPParseXML(conn, def, ip) < 0)
+ virNetworkIPParseXML(def, ip) < 0)
goto error;
}
if (virXPathBoolean("count(./forward) > 0", ctxt)) {
if (!def->ipAddress ||
!def->netmask) {
- virNetworkReportError(conn, VIR_ERR_INTERNAL_ERROR,
+ virNetworkReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("Forwarding requested, but no IPv4 address/netmask provided"));
goto error;
}
tmp = virXPathString("string(./forward[1]/@mode)", ctxt);
if (tmp) {
if ((def->forwardType = virNetworkForwardTypeFromString(tmp)) < 0) {
- virNetworkReportError(conn, VIR_ERR_INTERNAL_ERROR,
+ virNetworkReportError(VIR_ERR_INTERNAL_ERROR,
_("unknown forwarding type '%s'"), tmp);
VIR_FREE(tmp);
goto error;
xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
if (ctxt) {
- virConnectPtr conn = ctxt->_private;
-
- if (conn &&
- conn->err.code == VIR_ERR_NONE &&
+ if (virGetLastError() == NULL &&
ctxt->lastError.level == XML_ERR_FATAL &&
ctxt->lastError.message != NULL) {
- virNetworkReportError (conn, VIR_ERR_XML_DETAIL,
- _("at line %d: %s"),
- ctxt->lastError.line,
- ctxt->lastError.message);
+ virNetworkReportError(VIR_ERR_XML_DETAIL,
+ _("at line %d: %s"),
+ ctxt->lastError.line,
+ ctxt->lastError.message);
}
}
}
-virNetworkDefPtr virNetworkDefParseString(virConnectPtr conn,
- const char *xmlStr)
+virNetworkDefPtr virNetworkDefParseString(const char *xmlStr)
{
xmlParserCtxtPtr pctxt;
xmlDocPtr xml = NULL;
if (!pctxt || !pctxt->sax)
goto cleanup;
pctxt->sax->error = catchXMLError;
- pctxt->_private = conn;
- if (conn) virResetError (&conn->err);
xml = xmlCtxtReadDoc (pctxt, BAD_CAST xmlStr, "network.xml", NULL,
XML_PARSE_NOENT | XML_PARSE_NONET |
XML_PARSE_NOWARNING);
if (!xml) {
- if (conn && conn->err.code == VIR_ERR_NONE)
- virNetworkReportError(conn, VIR_ERR_XML_ERROR,
- "%s", _("failed to parse xml document"));
+ if (virGetLastError() == NULL)
+ virNetworkReportError(VIR_ERR_XML_ERROR,
+ "%s", _("failed to parse xml document"));
goto cleanup;
}
if ((root = xmlDocGetRootElement(xml)) == NULL) {
- virNetworkReportError(conn, VIR_ERR_INTERNAL_ERROR,
+ virNetworkReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("missing root element"));
goto cleanup;
}
- def = virNetworkDefParseNode(conn, xml, root);
+ def = virNetworkDefParseNode(xml, root);
cleanup:
xmlFreeParserCtxt (pctxt);
return def;
}
-virNetworkDefPtr virNetworkDefParseFile(virConnectPtr conn,
- const char *filename)
+virNetworkDefPtr virNetworkDefParseFile(const char *filename)
{
xmlParserCtxtPtr pctxt;
xmlDocPtr xml = NULL;
if (!pctxt || !pctxt->sax)
goto cleanup;
pctxt->sax->error = catchXMLError;
- pctxt->_private = conn;
- if (conn) virResetError (&conn->err);
xml = xmlCtxtReadFile (pctxt, filename, NULL,
XML_PARSE_NOENT | XML_PARSE_NONET |
XML_PARSE_NOWARNING);
if (!xml) {
- if (conn && conn->err.code == VIR_ERR_NONE)
- virNetworkReportError(conn, VIR_ERR_XML_ERROR,
- "%s", _("failed to parse xml document"));
+ if (virGetLastError() == NULL)
+ virNetworkReportError(VIR_ERR_XML_ERROR,
+ "%s", _("failed to parse xml document"));
goto cleanup;
}
if ((root = xmlDocGetRootElement(xml)) == NULL) {
- virNetworkReportError(conn, VIR_ERR_INTERNAL_ERROR,
+ virNetworkReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("missing root element"));
goto cleanup;
}
- def = virNetworkDefParseNode(conn, xml, root);
+ def = virNetworkDefParseNode(xml, root);
cleanup:
xmlFreeParserCtxt (pctxt);
}
-virNetworkDefPtr virNetworkDefParseNode(virConnectPtr conn,
- xmlDocPtr xml,
+virNetworkDefPtr virNetworkDefParseNode(xmlDocPtr xml,
xmlNodePtr root)
{
xmlXPathContextPtr ctxt = NULL;
virNetworkDefPtr def = NULL;
if (!xmlStrEqual(root->name, BAD_CAST "network")) {
- virNetworkReportError(conn, VIR_ERR_INTERNAL_ERROR,
+ virNetworkReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("incorrect root element"));
return NULL;
}
}
ctxt->node = root;
- def = virNetworkDefParseXML(conn, ctxt);
+ def = virNetworkDefParseXML(ctxt);
cleanup:
xmlXPathFreeContext(ctxt);
return def;
}
-char *virNetworkDefFormat(virConnectPtr conn ATTRIBUTE_UNUSED /*TEMPORARY*/,
- const virNetworkDefPtr def)
+char *virNetworkDefFormat(const virNetworkDefPtr def)
{
virBuffer buf = VIR_BUFFER_INITIALIZER;
unsigned char *uuid;
return NULL;
}
-int virNetworkSaveXML(virConnectPtr conn,
- const char *configDir,
+int virNetworkSaveXML(const char *configDir,
virNetworkDefPtr def,
const char *xml)
{
size_t towrite;
int err;
- if ((configFile = virNetworkConfigFile(conn, configDir, def->name)) == NULL)
+ if ((configFile = virNetworkConfigFile(configDir, def->name)) == NULL)
goto cleanup;
if ((err = virFileMakePath(configDir))) {
return ret;
}
-int virNetworkSaveConfig(virConnectPtr conn,
- const char *configDir,
+int virNetworkSaveConfig(const char *configDir,
virNetworkDefPtr def)
{
int ret = -1;
char *xml;
- if (!(xml = virNetworkDefFormat(conn, def)))
+ if (!(xml = virNetworkDefFormat(def)))
goto cleanup;
- if (virNetworkSaveXML(conn, configDir, def, xml))
+ if (virNetworkSaveXML(configDir, def, xml))
goto cleanup;
ret = 0;
}
-virNetworkObjPtr virNetworkLoadConfig(virConnectPtr conn,
- virNetworkObjListPtr nets,
+virNetworkObjPtr virNetworkLoadConfig(virNetworkObjListPtr nets,
const char *configDir,
const char *autostartDir,
const char *name)
virNetworkObjPtr net;
int autostart;
- if ((configFile = virNetworkConfigFile(conn, configDir, name)) == NULL)
+ if ((configFile = virNetworkConfigFile(configDir, name)) == NULL)
goto error;
- if ((autostartLink = virNetworkConfigFile(conn, autostartDir, name)) == NULL)
+ if ((autostartLink = virNetworkConfigFile(autostartDir, name)) == NULL)
goto error;
if ((autostart = virFileLinkPointsTo(autostartLink, configFile)) < 0)
goto error;
- if (!(def = virNetworkDefParseFile(conn, configFile)))
+ if (!(def = virNetworkDefParseFile(configFile)))
goto error;
if (!STREQ(name, def->name)) {
- virNetworkReportError(conn, VIR_ERR_INTERNAL_ERROR,
+ virNetworkReportError(VIR_ERR_INTERNAL_ERROR,
_("Network config filename '%s'"
" does not match network name '%s'"),
configFile, def->name);
/* Generate a bridge if none is specified, but don't check for collisions
* if a bridge is hardcoded, so the network is at least defined
*/
- if (virNetworkSetBridgeName(conn, nets, def, 0))
+ if (virNetworkSetBridgeName(nets, def, 0))
goto error;
- if (!(net = virNetworkAssignDef(conn, nets, def)))
+ if (!(net = virNetworkAssignDef(nets, def)))
goto error;
net->autostart = autostart;
return NULL;
}
-int virNetworkLoadAllConfigs(virConnectPtr conn,
- virNetworkObjListPtr nets,
+int virNetworkLoadAllConfigs(virNetworkObjListPtr nets,
const char *configDir,
const char *autostartDir)
{
/* NB: ignoring errors, so one malformed config doesn't
kill the whole process */
- net = virNetworkLoadConfig(conn,
- nets,
+ net = virNetworkLoadConfig(nets,
configDir,
autostartDir,
entry->d_name);
return 0;
}
-int virNetworkDeleteConfig(virConnectPtr conn,
- const char *configDir,
+int virNetworkDeleteConfig(const char *configDir,
const char *autostartDir,
virNetworkObjPtr net)
{
char *autostartLink = NULL;
int ret = -1;
- if ((configFile = virNetworkConfigFile(conn, configDir, net->def->name)) == NULL)
+ if ((configFile = virNetworkConfigFile(configDir, net->def->name)) == NULL)
goto error;
- if ((autostartLink = virNetworkConfigFile(conn, autostartDir, net->def->name)) == NULL)
+ if ((autostartLink = virNetworkConfigFile(autostartDir, net->def->name)) == NULL)
goto error;
/* Not fatal if this doesn't work */
return ret;
}
-char *virNetworkConfigFile(virConnectPtr conn ATTRIBUTE_UNUSED /*TEMPORARY*/,
- const char *dir,
+char *virNetworkConfigFile(const char *dir,
const char *name)
{
char *ret = NULL;
return ret;
}
-char *virNetworkAllocateBridge(virConnectPtr conn,
- const virNetworkObjListPtr nets,
+char *virNetworkAllocateBridge(const virNetworkObjListPtr nets,
const char *template)
{
id++;
} while (id <= MAX_BRIDGE_ID);
- virNetworkReportError(conn, VIR_ERR_INTERNAL_ERROR,
+ virNetworkReportError(VIR_ERR_INTERNAL_ERROR,
_("Bridge generation exceeded max id %d"),
MAX_BRIDGE_ID);
return NULL;
}
-int virNetworkSetBridgeName(virConnectPtr conn,
- const virNetworkObjListPtr nets,
+int virNetworkSetBridgeName(const virNetworkObjListPtr nets,
virNetworkDefPtr def,
int check_collision) {
* defined. */
if (check_collision &&
virNetworkBridgeInUse(nets, def->bridge, def->name)) {
- networkReportError(conn, NULL, NULL, VIR_ERR_INTERNAL_ERROR,
- _("bridge name '%s' already in use."),
- def->bridge);
+ virNetworkReportError(VIR_ERR_INTERNAL_ERROR,
+ _("bridge name '%s' already in use."),
+ def->bridge);
goto error;
}
} else {
/* Allocate a bridge name */
- if (!(def->bridge = virNetworkAllocateBridge(conn, nets, def->bridge)))
+ if (!(def->bridge = virNetworkAllocateBridge(nets, def->bridge)))
goto error;
}
return net->active;
}
-#define networkReportError(conn, dom, net, code, fmt...) \
- virReportErrorHelper(conn, VIR_FROM_QEMU, code, __FILE__, \
- __FUNCTION__, __LINE__, fmt)
-
-
virNetworkObjPtr virNetworkFindByUUID(const virNetworkObjListPtr nets,
const unsigned char *uuid);
virNetworkObjPtr virNetworkFindByName(const virNetworkObjListPtr nets,
void virNetworkObjFree(virNetworkObjPtr net);
void virNetworkObjListFree(virNetworkObjListPtr vms);
-virNetworkObjPtr virNetworkAssignDef(virConnectPtr conn,
- virNetworkObjListPtr nets,
+virNetworkObjPtr virNetworkAssignDef(virNetworkObjListPtr nets,
const virNetworkDefPtr def);
void virNetworkRemoveInactive(virNetworkObjListPtr nets,
const virNetworkObjPtr net);
-virNetworkDefPtr virNetworkDefParseString(virConnectPtr conn,
- const char *xmlStr);
-virNetworkDefPtr virNetworkDefParseFile(virConnectPtr conn,
- const char *filename);
-virNetworkDefPtr virNetworkDefParseNode(virConnectPtr conn,
- xmlDocPtr xml,
+virNetworkDefPtr virNetworkDefParseString(const char *xmlStr);
+virNetworkDefPtr virNetworkDefParseFile(const char *filename);
+virNetworkDefPtr virNetworkDefParseNode(xmlDocPtr xml,
xmlNodePtr root);
-char *virNetworkDefFormat(virConnectPtr conn,
- const virNetworkDefPtr def);
+char *virNetworkDefFormat(const virNetworkDefPtr def);
-int virNetworkSaveXML(virConnectPtr conn,
- const char *configDir,
+int virNetworkSaveXML(const char *configDir,
virNetworkDefPtr def,
const char *xml);
-int virNetworkSaveConfig(virConnectPtr conn,
- const char *configDir,
+int virNetworkSaveConfig(const char *configDir,
virNetworkDefPtr def);
-virNetworkObjPtr virNetworkLoadConfig(virConnectPtr conn,
- virNetworkObjListPtr nets,
+virNetworkObjPtr virNetworkLoadConfig(virNetworkObjListPtr nets,
const char *configDir,
const char *autostartDir,
const char *file);
-int virNetworkLoadAllConfigs(virConnectPtr conn,
- virNetworkObjListPtr nets,
+int virNetworkLoadAllConfigs(virNetworkObjListPtr nets,
const char *configDir,
const char *autostartDir);
-int virNetworkDeleteConfig(virConnectPtr conn,
- const char *configDir,
+int virNetworkDeleteConfig(const char *configDir,
const char *autostartDir,
virNetworkObjPtr net);
-char *virNetworkConfigFile(virConnectPtr conn,
- const char *dir,
+char *virNetworkConfigFile(const char *dir,
const char *name);
int virNetworkBridgeInUse(const virNetworkObjListPtr nets,
const char *bridge,
const char *skipname);
-char *virNetworkAllocateBridge(virConnectPtr conn,
- const virNetworkObjListPtr nets,
+char *virNetworkAllocateBridge(const virNetworkObjListPtr nets,
const char *template);
-int virNetworkSetBridgeName(virConnectPtr conn,
- const virNetworkObjListPtr nets,
+int virNetworkSetBridgeName(const virNetworkObjListPtr nets,
virNetworkDefPtr def,
int check_collision);
#define VIR_FROM_THIS VIR_FROM_NETWORK
+#define networkReportError(code, fmt...) \
+ virReportErrorHelper(NULL, VIR_FROM_NETWORK, code, __FILE__, \
+ __FUNCTION__, __LINE__, fmt)
+
/* Main driver state */
struct network_driver {
virMutex lock;
static int networkShutdown(void);
-static int networkStartNetworkDaemon(virConnectPtr conn,
- struct network_driver *driver,
- virNetworkObjPtr network);
+static int networkStartNetworkDaemon(struct network_driver *driver,
+ virNetworkObjPtr network);
-static int networkShutdownNetworkDaemon(virConnectPtr conn,
- struct network_driver *driver,
- virNetworkObjPtr network);
+static int networkShutdownNetworkDaemon(struct network_driver *driver,
+ virNetworkObjPtr network);
static void networkReloadIptablesRules(struct network_driver *driver);
virNetworkObjLock(obj);
- if ((config = virNetworkConfigFile(NULL,
- NETWORK_STATE_DIR,
+ if ((config = virNetworkConfigFile(NETWORK_STATE_DIR,
obj->def->name)) == NULL) {
virNetworkObjUnlock(obj);
continue;
}
/* Try and load the live config */
- tmp = virNetworkDefParseFile(NULL, config);
+ tmp = virNetworkDefParseFile(config);
VIR_FREE(config);
if (tmp) {
obj->newDef = obj->def;
virNetworkObjLock(driver->networks.objs[i]);
if (driver->networks.objs[i]->autostart &&
!virNetworkObjIsActive(driver->networks.objs[i]) &&
- networkStartNetworkDaemon(NULL, driver, driver->networks.objs[i]) < 0) {
+ networkStartNetworkDaemon(driver, driver->networks.objs[i]) < 0) {
/* failed to start but already logged */
}
virNetworkObjUnlock(driver->networks.objs[i]);
}
- if (virNetworkLoadAllConfigs(NULL,
- &driverState->networks,
+ if (virNetworkLoadAllConfigs(&driverState->networks,
driverState->networkConfigDir,
driverState->networkAutostartDir) < 0)
goto error;
return 0;
networkDriverLock(driverState);
- virNetworkLoadAllConfigs(NULL,
- &driverState->networks,
+ virNetworkLoadAllConfigs(&driverState->networks,
driverState->networkConfigDir,
driverState->networkAutostartDir);
networkReloadIptablesRules(driverState);
static int
-dhcpStartDhcpDaemon(virConnectPtr conn,
- virNetworkObjPtr network)
+dhcpStartDhcpDaemon(virNetworkObjPtr network)
{
const char **argv;
char *pidfile;
network->dnsmasqPid = -1;
if (network->def->ipAddress == NULL) {
- networkReportError(conn, NULL, NULL, VIR_ERR_INTERNAL_ERROR,
- "%s", _("cannot start dhcp daemon without IP address for server"));
+ networkReportError(VIR_ERR_INTERNAL_ERROR,
+ "%s", _("cannot start dhcp daemon without IP address for server"));
return -1;
}
return ret;
}
-static int networkStartNetworkDaemon(virConnectPtr conn,
- struct network_driver *driver,
- virNetworkObjPtr network) {
+static int networkStartNetworkDaemon(struct network_driver *driver,
+ virNetworkObjPtr network)
+{
int err;
if (virNetworkObjIsActive(network)) {
- networkReportError(conn, NULL, NULL, VIR_ERR_INTERNAL_ERROR,
- "%s", _("network is already active"));
+ networkReportError(VIR_ERR_INTERNAL_ERROR,
+ "%s", _("network is already active"));
return -1;
}
if ((network->def->ipAddress ||
network->def->nranges) &&
- dhcpStartDhcpDaemon(conn, network) < 0)
+ dhcpStartDhcpDaemon(network) < 0)
goto err_delbr2;
/* Persist the live configuration now we have bridge info */
- if (virNetworkSaveConfig(conn, NETWORK_STATE_DIR, network->def) < 0) {
+ if (virNetworkSaveConfig(NETWORK_STATE_DIR, network->def) < 0) {
goto err_kill;
}
}
-static int networkShutdownNetworkDaemon(virConnectPtr conn,
- struct network_driver *driver,
- virNetworkObjPtr network) {
+static int networkShutdownNetworkDaemon(struct network_driver *driver,
+ virNetworkObjPtr network)
+{
int err;
char *stateFile;
if (!virNetworkObjIsActive(network))
return 0;
- stateFile = virNetworkConfigFile(conn, NETWORK_STATE_DIR, network->def->name);
+ stateFile = virNetworkConfigFile(NETWORK_STATE_DIR, network->def->name);
if (!stateFile)
return -1;
network = virNetworkFindByUUID(&driver->networks, uuid);
networkDriverUnlock(driver);
if (!network) {
- networkReportError(conn, NULL, NULL, VIR_ERR_NO_NETWORK,
- "%s", _("no network with matching uuid"));
+ networkReportError(VIR_ERR_NO_NETWORK,
+ "%s", _("no network with matching uuid"));
goto cleanup;
}
network = virNetworkFindByName(&driver->networks, name);
networkDriverUnlock(driver);
if (!network) {
- networkReportError(conn, NULL, NULL, VIR_ERR_NO_NETWORK,
- _("no network with matching name '%s'"), name);
+ networkReportError(VIR_ERR_NO_NETWORK,
+ _("no network with matching name '%s'"), name);
goto cleanup;
}
obj = virNetworkFindByUUID(&driver->networks, net->uuid);
networkDriverUnlock(driver);
if (!obj) {
- networkReportError(net->conn, NULL, NULL, VIR_ERR_NO_NETWORK, NULL);
+ networkReportError(VIR_ERR_NO_NETWORK, NULL);
goto cleanup;
}
ret = virNetworkObjIsActive(obj);
obj = virNetworkFindByUUID(&driver->networks, net->uuid);
networkDriverUnlock(driver);
if (!obj) {
- networkReportError(net->conn, NULL, NULL, VIR_ERR_NO_NETWORK, NULL);
+ networkReportError(VIR_ERR_NO_NETWORK, NULL);
goto cleanup;
}
ret = obj->persistent;
networkDriverLock(driver);
- if (!(def = virNetworkDefParseString(conn, xml)))
+ if (!(def = virNetworkDefParseString(xml)))
goto cleanup;
- if (virNetworkSetBridgeName(conn, &driver->networks, def, 1))
+ if (virNetworkSetBridgeName(&driver->networks, def, 1))
goto cleanup;
- if (!(network = virNetworkAssignDef(conn,
- &driver->networks,
+ if (!(network = virNetworkAssignDef(&driver->networks,
def)))
goto cleanup;
def = NULL;
- if (networkStartNetworkDaemon(conn, driver, network) < 0) {
+ if (networkStartNetworkDaemon(driver, network) < 0) {
virNetworkRemoveInactive(&driver->networks,
network);
network = NULL;
networkDriverLock(driver);
- if (!(def = virNetworkDefParseString(conn, xml)))
+ if (!(def = virNetworkDefParseString(xml)))
goto cleanup;
- if (virNetworkSetBridgeName(conn, &driver->networks, def, 1))
+ if (virNetworkSetBridgeName(&driver->networks, def, 1))
goto cleanup;
- if (!(network = virNetworkAssignDef(conn,
- &driver->networks,
+ if (!(network = virNetworkAssignDef(&driver->networks,
def)))
goto cleanup;
def = NULL;
network->persistent = 1;
- if (virNetworkSaveConfig(conn,
- driver->networkConfigDir,
+ if (virNetworkSaveConfig(driver->networkConfigDir,
network->newDef ? network->newDef : network->def) < 0) {
virNetworkRemoveInactive(&driver->networks,
network);
network = virNetworkFindByUUID(&driver->networks, net->uuid);
if (!network) {
- networkReportError(net->conn, NULL, net, VIR_ERR_INVALID_NETWORK,
+ networkReportError(VIR_ERR_INVALID_NETWORK,
"%s", _("no network with matching uuid"));
goto cleanup;
}
if (virNetworkObjIsActive(network)) {
- networkReportError(net->conn, NULL, net, VIR_ERR_INTERNAL_ERROR,
+ networkReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("network is still active"));
goto cleanup;
}
- if (virNetworkDeleteConfig(net->conn,
- driver->networkConfigDir,
+ if (virNetworkDeleteConfig(driver->networkConfigDir,
driver->networkAutostartDir,
network) < 0)
goto cleanup;
network = virNetworkFindByUUID(&driver->networks, net->uuid);
if (!network) {
- networkReportError(net->conn, NULL, net, VIR_ERR_INVALID_NETWORK,
+ networkReportError(VIR_ERR_INVALID_NETWORK,
"%s", _("no network with matching uuid"));
goto cleanup;
}
- ret = networkStartNetworkDaemon(net->conn, driver, network);
+ ret = networkStartNetworkDaemon(driver, network);
cleanup:
if (network)
network = virNetworkFindByUUID(&driver->networks, net->uuid);
if (!network) {
- networkReportError(net->conn, NULL, net, VIR_ERR_INVALID_NETWORK,
+ networkReportError(VIR_ERR_INVALID_NETWORK,
"%s", _("no network with matching uuid"));
goto cleanup;
}
if (!virNetworkObjIsActive(network)) {
- networkReportError(net->conn, NULL, net, VIR_ERR_INTERNAL_ERROR,
+ networkReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("network is not active"));
goto cleanup;
}
- ret = networkShutdownNetworkDaemon(net->conn, driver, network);
+ ret = networkShutdownNetworkDaemon(driver, network);
if (!network->persistent) {
virNetworkRemoveInactive(&driver->networks,
network);
networkDriverUnlock(driver);
if (!network) {
- networkReportError(net->conn, NULL, net, VIR_ERR_INVALID_NETWORK,
+ networkReportError(VIR_ERR_INVALID_NETWORK,
"%s", _("no network with matching uuid"));
goto cleanup;
}
- ret = virNetworkDefFormat(net->conn, network->def);
+ ret = virNetworkDefFormat(network->def);
cleanup:
if (network)
networkDriverUnlock(driver);
if (!network) {
- networkReportError(net->conn, NULL, net, VIR_ERR_INVALID_NETWORK,
+ networkReportError(VIR_ERR_INVALID_NETWORK,
"%s", _("no network with matching id"));
goto cleanup;
}
if (!(network->def->bridge)) {
- networkReportError(net->conn, NULL, net, VIR_ERR_INTERNAL_ERROR,
+ networkReportError(VIR_ERR_INTERNAL_ERROR,
_("network '%s' does not have a bridge name."),
network->def->name);
goto cleanup;
network = virNetworkFindByUUID(&driver->networks, net->uuid);
networkDriverUnlock(driver);
if (!network) {
- networkReportError(net->conn, NULL, net, VIR_ERR_INVALID_NETWORK,
- "%s", _("no network with matching uuid"));
+ networkReportError(VIR_ERR_INVALID_NETWORK,
+ "%s", _("no network with matching uuid"));
goto cleanup;
}
network = virNetworkFindByUUID(&driver->networks, net->uuid);
if (!network) {
- networkReportError(net->conn, NULL, net, VIR_ERR_INVALID_NETWORK,
- "%s", _("no network with matching uuid"));
+ networkReportError(VIR_ERR_INVALID_NETWORK,
+ "%s", _("no network with matching uuid"));
goto cleanup;
}
if (!network->persistent) {
- networkReportError(net->conn, NULL, net, VIR_ERR_INTERNAL_ERROR,
- "%s", _("cannot set autostart for transient network"));
+ networkReportError(VIR_ERR_INTERNAL_ERROR,
+ "%s", _("cannot set autostart for transient network"));
goto cleanup;
}
autostart = (autostart != 0);
if (network->autostart != autostart) {
- if ((configFile = virNetworkConfigFile(net->conn, driver->networkConfigDir, network->def->name)) == NULL)
+ if ((configFile = virNetworkConfigFile(driver->networkConfigDir, network->def->name)) == NULL)
goto cleanup;
- if ((autostartLink = virNetworkConfigFile(net->conn, driver->networkAutostartDir, network->def->name)) == NULL)
+ if ((autostartLink = virNetworkConfigFile(driver->networkAutostartDir, network->def->name)) == NULL)
goto cleanup;
if (autostart) {
domobj->persistent = 1;
virDomainObjUnlock(domobj);
- if (!(netdef = virNetworkDefParseString(conn, defaultNetworkXML)))
+ if (!(netdef = virNetworkDefParseString(defaultNetworkXML)))
goto error;
- if (!(netobj = virNetworkAssignDef(conn, &privconn->networks, netdef))) {
+ if (!(netobj = virNetworkAssignDef(&privconn->networks, netdef))) {
virNetworkDefFree(netdef);
goto error;
}
goto error;
}
- def = virNetworkDefParseFile(conn, absFile);
+ def = virNetworkDefParseFile(absFile);
VIR_FREE(absFile);
if (!def)
goto error;
} else {
- if ((def = virNetworkDefParseNode(conn, xml, networks[i])) == NULL)
+ if ((def = virNetworkDefParseNode(xml, networks[i])) == NULL)
goto error;
}
- if (!(net = virNetworkAssignDef(conn, &privconn->networks,
+ if (!(net = virNetworkAssignDef(&privconn->networks,
def))) {
virNetworkDefFree(def);
goto error;
virNetworkPtr ret = NULL;
testDriverLock(privconn);
- if ((def = virNetworkDefParseString(conn, xml)) == NULL)
+ if ((def = virNetworkDefParseString(xml)) == NULL)
goto cleanup;
- if ((net = virNetworkAssignDef(conn, &privconn->networks, def)) == NULL)
+ if ((net = virNetworkAssignDef(&privconn->networks, def)) == NULL)
goto cleanup;
def = NULL;
net->active = 1;
virNetworkPtr ret = NULL;
testDriverLock(privconn);
- if ((def = virNetworkDefParseString(conn, xml)) == NULL)
+ if ((def = virNetworkDefParseString(xml)) == NULL)
goto cleanup;
- if ((net = virNetworkAssignDef(conn, &privconn->networks, def)) == NULL)
+ if ((net = virNetworkAssignDef(&privconn->networks, def)) == NULL)
goto cleanup;
def = NULL;
net->persistent = 1;
goto cleanup;
}
- ret = virNetworkDefFormat(network->conn, privnet->def);
+ ret = virNetworkDefFormat(privnet->def);
cleanup:
if (privnet)
char *networkInterfaceNameUtf8 = NULL;
IHostNetworkInterface *networkInterface = NULL;
- virNetworkDefPtr def = virNetworkDefParseString(conn, xml);
+ virNetworkDefPtr def = virNetworkDefParseString(xml);
if ( (!def)
|| (def->forwardType != VIR_NETWORK_FORWARD_NONE))
VBOX_UTF16_FREE(networkInterfaceNameUtf16);
VBOX_RELEASE(host);
- ret = virNetworkDefFormat(network->conn, def);
+ ret = virNetworkDefFormat(def);
cleanup:
VIR_FREE(networkNameUtf8);
if (virtTestLoadFile(outxml, &outXmlPtr, MAX_FILE) < 0)
goto fail;
- if (!(dev = virNetworkDefParseString(NULL, inXmlData)))
+ if (!(dev = virNetworkDefParseString(inXmlData)))
goto fail;
- if (!(actual = virNetworkDefFormat(NULL, dev)))
+ if (!(actual = virNetworkDefFormat(dev)))
goto fail;
if (STRNEQ(outXmlData, actual)) {