[libvirt] [RFC PATCH 0/3+] cleanup __FUNCTION__ usage

Posting as an RFC, since this patch series could be extended to do a lot more cleanups - I don't want to do the extra work unless we agree that this is worthwhile. See each patch for more comments. [RFC PATCH 1/3] build: use gnulib func module [PATCH 2/3] datatypes: avoid redundant __FUNCTION__ [RFC PATCH 3/3] libvirt: convert virLibNetworkError to avoid __FUNCTION__ bootstrap.conf | 1 + src/datatypes.c | 36 ++++++++++++++++++------------------ src/libvirt.c | 52 +++++++++++++++++++++++++++------------------------- 3 files changed, 46 insertions(+), 43 deletions(-)

Guarantee linkage even for non-gcc that lack __func__. Meanwhile, our use of gcc's __FUNCTION__ instead of C99 __func__ may be worth a global search-and-replace. * bootstrap.conf (gnulib_modules): Add func. --- In general, it's nicer to write standards-compliant code than to rely on gcc-specific names; should I do the replacement to use __func__? bootstrap.conf | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/bootstrap.conf b/bootstrap.conf index 1e193d9..7bd0f80 100644 --- a/bootstrap.conf +++ b/bootstrap.conf @@ -27,6 +27,7 @@ close connect count-one-bits dirname-lgpl +func getaddrinfo gethostname getpass -- 1.7.0.1

virLibConnError already includes __FUNCTION__ in its output, so we were redundant. Furthermore, clang warns that __FUNCTION__ is not a string literal (at least __FUNCTION__ will never contain %, so it was not a security risk). * src/datatypes.c: Replace __FUNCTION__ with a descriptive string. --- src/datatypes.c | 36 ++++++++++++++++++------------------ 1 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/datatypes.c b/src/datatypes.c index 25962a6..cea8765 100644 --- a/src/datatypes.c +++ b/src/datatypes.c @@ -287,7 +287,7 @@ virUnrefConnect(virConnectPtr conn) { int refs; if ((!VIR_IS_CONNECT(conn))) { - virLibConnError(VIR_ERR_INVALID_ARG, __FUNCTION__); + virLibConnError(VIR_ERR_INVALID_ARG, _("no connection")); return(-1); } virMutexLock(&conn->lock); @@ -345,7 +345,7 @@ virGetDomain(virConnectPtr conn, const char *name, const unsigned char *uuid) { virDomainPtr ret = NULL; if ((!VIR_IS_CONNECT(conn)) || (name == NULL) || (uuid == NULL)) { - virLibConnError(VIR_ERR_INVALID_ARG, __FUNCTION__); + virLibConnError(VIR_ERR_INVALID_ARG, _("no connection")); return(NULL); } virMutexLock(&conn->lock); @@ -455,7 +455,7 @@ virUnrefDomain(virDomainPtr domain) { int refs; if (!VIR_IS_CONNECTED_DOMAIN(domain)) { - virLibConnError(VIR_ERR_INVALID_ARG, __FUNCTION__); + virLibConnError(VIR_ERR_INVALID_ARG, _("no connection")); return(-1); } virMutexLock(&domain->conn->lock); @@ -490,7 +490,7 @@ virGetNetwork(virConnectPtr conn, const char *name, const unsigned char *uuid) { virNetworkPtr ret = NULL; if ((!VIR_IS_CONNECT(conn)) || (name == NULL) || (uuid == NULL)) { - virLibConnError(VIR_ERR_INVALID_ARG, __FUNCTION__); + virLibConnError(VIR_ERR_INVALID_ARG, _("no connection")); return(NULL); } virMutexLock(&conn->lock); @@ -592,7 +592,7 @@ virUnrefNetwork(virNetworkPtr network) { int refs; if (!VIR_IS_CONNECTED_NETWORK(network)) { - virLibConnError(VIR_ERR_INVALID_ARG, __FUNCTION__); + virLibConnError(VIR_ERR_INVALID_ARG, _("no connection")); return(-1); } virMutexLock(&network->conn->lock); @@ -629,7 +629,7 @@ virGetInterface(virConnectPtr conn, const char *name, const char *mac) { virInterfacePtr ret = NULL; if ((!VIR_IS_CONNECT(conn)) || (name == NULL)) { - virLibConnError(VIR_ERR_INVALID_ARG, __FUNCTION__); + virLibConnError(VIR_ERR_INVALID_ARG, _("no connection")); return(NULL); } @@ -774,7 +774,7 @@ virUnrefInterface(virInterfacePtr iface) { int refs; if (!VIR_IS_CONNECTED_INTERFACE(iface)) { - virLibConnError(VIR_ERR_INVALID_ARG, __FUNCTION__); + virLibConnError(VIR_ERR_INVALID_ARG, _("no connection")); return(-1); } virMutexLock(&iface->conn->lock); @@ -810,7 +810,7 @@ virGetStoragePool(virConnectPtr conn, const char *name, const unsigned char *uui virStoragePoolPtr ret = NULL; if ((!VIR_IS_CONNECT(conn)) || (name == NULL) || (uuid == NULL)) { - virLibConnError(VIR_ERR_INVALID_ARG, __FUNCTION__); + virLibConnError(VIR_ERR_INVALID_ARG, _("no connection")); return(NULL); } virMutexLock(&conn->lock); @@ -913,7 +913,7 @@ virUnrefStoragePool(virStoragePoolPtr pool) { int refs; if (!VIR_IS_CONNECTED_STORAGE_POOL(pool)) { - virLibConnError(VIR_ERR_INVALID_ARG, __FUNCTION__); + virLibConnError(VIR_ERR_INVALID_ARG, _("no connection")); return(-1); } virMutexLock(&pool->conn->lock); @@ -950,7 +950,7 @@ virGetStorageVol(virConnectPtr conn, const char *pool, const char *name, const c virStorageVolPtr ret = NULL; if ((!VIR_IS_CONNECT(conn)) || (name == NULL) || (key == NULL)) { - virLibConnError(VIR_ERR_INVALID_ARG, __FUNCTION__); + virLibConnError(VIR_ERR_INVALID_ARG, _("no connection")); return(NULL); } virMutexLock(&conn->lock); @@ -1062,7 +1062,7 @@ virUnrefStorageVol(virStorageVolPtr vol) { int refs; if (!VIR_IS_CONNECTED_STORAGE_VOL(vol)) { - virLibConnError(VIR_ERR_INVALID_ARG, __FUNCTION__); + virLibConnError(VIR_ERR_INVALID_ARG, _("no connection")); return(-1); } virMutexLock(&vol->conn->lock); @@ -1098,7 +1098,7 @@ virGetNodeDevice(virConnectPtr conn, const char *name) virNodeDevicePtr ret = NULL; if ((!VIR_IS_CONNECT(conn)) || (name == NULL)) { - virLibConnError(VIR_ERR_INVALID_ARG, __FUNCTION__); + virLibConnError(VIR_ERR_INVALID_ARG, _("no connection")); return(NULL); } virMutexLock(&conn->lock); @@ -1230,7 +1230,7 @@ virGetSecret(virConnectPtr conn, const unsigned char *uuid, char uuidstr[VIR_UUID_STRING_BUFLEN]; if (!VIR_IS_CONNECT(conn) || uuid == NULL || usageID == NULL) { - virLibConnError(VIR_ERR_INVALID_ARG, __FUNCTION__); + virLibConnError(VIR_ERR_INVALID_ARG, _("no connection")); return NULL; } virMutexLock(&conn->lock); @@ -1329,7 +1329,7 @@ virUnrefSecret(virSecretPtr secret) { int refs; if (!VIR_IS_CONNECTED_SECRET(secret)) { - virLibConnError(VIR_ERR_INVALID_ARG, __FUNCTION__); + virLibConnError(VIR_ERR_INVALID_ARG, _("no connection")); return -1; } virMutexLock(&secret->conn->lock); @@ -1423,7 +1423,7 @@ virGetNWFilter(virConnectPtr conn, const char *name, const unsigned char *uuid) virNWFilterPtr ret = NULL; if ((!VIR_IS_CONNECT(conn)) || (name == NULL) || (uuid == NULL)) { - virLibConnError(VIR_ERR_INVALID_ARG, __FUNCTION__); + virLibConnError(VIR_ERR_INVALID_ARG, _("no connection")); return(NULL); } virMutexLock(&conn->lock); @@ -1526,7 +1526,7 @@ virUnrefNWFilter(virNWFilterPtr pool) { int refs; if (!VIR_IS_CONNECTED_NWFILTER(pool)) { - virLibConnError(VIR_ERR_INVALID_ARG, __FUNCTION__); + virLibConnError(VIR_ERR_INVALID_ARG, _("no connection")); return -1; } virMutexLock(&pool->conn->lock); @@ -1550,7 +1550,7 @@ virGetDomainSnapshot(virDomainPtr domain, const char *name) virDomainSnapshotPtr ret = NULL; if ((!VIR_IS_DOMAIN(domain)) || (name == NULL)) { - virLibConnError(VIR_ERR_INVALID_ARG, __FUNCTION__); + virLibConnError(VIR_ERR_INVALID_ARG, _("not a snapshot")); return(NULL); } virMutexLock(&domain->conn->lock); @@ -1630,7 +1630,7 @@ virUnrefDomainSnapshot(virDomainSnapshotPtr snapshot) int refs; if (!VIR_IS_DOMAIN_SNAPSHOT(snapshot)) { - virLibConnError(VIR_ERR_INVALID_ARG, __FUNCTION__); + virLibConnError(VIR_ERR_INVALID_ARG, _("not a snapshot")); return(-1); } -- 1.7.0.1

2010/5/12 Eric Blake <eblake@redhat.com>:
virLibConnError already includes __FUNCTION__ in its output, so we were redundant. Furthermore, clang warns that __FUNCTION__ is not a string literal (at least __FUNCTION__ will never contain %, so it was not a security risk).
* src/datatypes.c: Replace __FUNCTION__ with a descriptive string. --- src/datatypes.c | 36 ++++++++++++++++++------------------ 1 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/src/datatypes.c b/src/datatypes.c index 25962a6..cea8765 100644 --- a/src/datatypes.c +++ b/src/datatypes.c @@ -287,7 +287,7 @@ virUnrefConnect(virConnectPtr conn) { int refs;
if ((!VIR_IS_CONNECT(conn))) { - virLibConnError(VIR_ERR_INVALID_ARG, __FUNCTION__); + virLibConnError(VIR_ERR_INVALID_ARG, _("no connection"));
As Chris pointed out a while ago: https://www.redhat.com/archives/libvir-list/2010-April/msg01241.html There are some error codes that have string representations attached which imply a certain usage style. VIR_ERR_INVALID_ARG is one of those. See virErrorMsg: case VIR_ERR_INVALID_ARG: if (info == NULL) errmsg = _("invalid argument in"); else errmsg = _("invalid argument in %s"); break; This implies that you pass the function name as additional information. But I must admit that I never used VIR_ERR_INVALID_ARG as it is implied, because I wasn't aware of that until recently. The VIR_ERR_XML_ERROR is an even worse example: case VIR_ERR_XML_ERROR: if (info == NULL) errmsg = _("XML description not well formed or invalid"); else errmsg = _("XML description for %s is not well formed or invalid"); break; Unrelated to your patch I suggest that we unify the string representations for error codes to a common style: case VIR_ERR_INVALID_ARG: if (info == NULL) errmsg = _("invalid argument"); else errmsg = _("invalid argument: %s"); break; case VIR_ERR_XML_ERROR: if (info == NULL) errmsg = _("XML description not well formed or invalid"); else errmsg = _("XML description not well formed or invalid: %s"); break; And adapt the callers.
return(-1); } virMutexLock(&conn->lock); @@ -345,7 +345,7 @@ virGetDomain(virConnectPtr conn, const char *name, const unsigned char *uuid) { virDomainPtr ret = NULL;
if ((!VIR_IS_CONNECT(conn)) || (name == NULL) || (uuid == NULL)) { - virLibConnError(VIR_ERR_INVALID_ARG, __FUNCTION__); + virLibConnError(VIR_ERR_INVALID_ARG, _("no connection"));
"no connection" is only true in 1/3 of the possibilities to get into this block.
return(NULL); } virMutexLock(&conn->lock); @@ -455,7 +455,7 @@ virUnrefDomain(virDomainPtr domain) { int refs;
if (!VIR_IS_CONNECTED_DOMAIN(domain)) { - virLibConnError(VIR_ERR_INVALID_ARG, __FUNCTION__); + virLibConnError(VIR_ERR_INVALID_ARG, _("no connection"));
VIR_IS_CONNECTED_DOMAIN is false if domain isn't a domain, or if it's connection object isn't a connection. Therefore "no connection" is incomplete.
return(-1); } virMutexLock(&domain->conn->lock); @@ -490,7 +490,7 @@ virGetNetwork(virConnectPtr conn, const char *name, const unsigned char *uuid) { virNetworkPtr ret = NULL;
if ((!VIR_IS_CONNECT(conn)) || (name == NULL) || (uuid == NULL)) { - virLibConnError(VIR_ERR_INVALID_ARG, __FUNCTION__); + virLibConnError(VIR_ERR_INVALID_ARG, _("no connection"));
"no connection" is only true in 1/3 of the possibilities to get into this block.
return(NULL); } virMutexLock(&conn->lock); @@ -592,7 +592,7 @@ virUnrefNetwork(virNetworkPtr network) { int refs;
if (!VIR_IS_CONNECTED_NETWORK(network)) { - virLibConnError(VIR_ERR_INVALID_ARG, __FUNCTION__); + virLibConnError(VIR_ERR_INVALID_ARG, _("no connection"));
As with VIR_IS_CONNECTED_DOMAIN above "no connection" is incomplete here.
return(-1); } virMutexLock(&network->conn->lock); @@ -629,7 +629,7 @@ virGetInterface(virConnectPtr conn, const char *name, const char *mac) { virInterfacePtr ret = NULL;
if ((!VIR_IS_CONNECT(conn)) || (name == NULL)) { - virLibConnError(VIR_ERR_INVALID_ARG, __FUNCTION__); + virLibConnError(VIR_ERR_INVALID_ARG, _("no connection"));
"no connection" is only true in 1/2 of the possibilities to get into this block.
return(NULL); }
@@ -774,7 +774,7 @@ virUnrefInterface(virInterfacePtr iface) { int refs;
if (!VIR_IS_CONNECTED_INTERFACE(iface)) { - virLibConnError(VIR_ERR_INVALID_ARG, __FUNCTION__); + virLibConnError(VIR_ERR_INVALID_ARG, _("no connection"));
The same as with VIR_IS_CONNECTED_DOMAIN and VIR_IS_CONNECTED_NETWORK above.
return(-1); } virMutexLock(&iface->conn->lock); @@ -810,7 +810,7 @@ virGetStoragePool(virConnectPtr conn, const char *name, const unsigned char *uui virStoragePoolPtr ret = NULL;
if ((!VIR_IS_CONNECT(conn)) || (name == NULL) || (uuid == NULL)) { - virLibConnError(VIR_ERR_INVALID_ARG, __FUNCTION__); + virLibConnError(VIR_ERR_INVALID_ARG, _("no connection"));
"no connection" is only true in 1/3 of the possibilities to get into this block.
return(NULL); } virMutexLock(&conn->lock); @@ -913,7 +913,7 @@ virUnrefStoragePool(virStoragePoolPtr pool) { int refs;
if (!VIR_IS_CONNECTED_STORAGE_POOL(pool)) { - virLibConnError(VIR_ERR_INVALID_ARG, __FUNCTION__); + virLibConnError(VIR_ERR_INVALID_ARG, _("no connection"));
"no connection" is incomplete here too.
return(-1); } virMutexLock(&pool->conn->lock); @@ -950,7 +950,7 @@ virGetStorageVol(virConnectPtr conn, const char *pool, const char *name, const c virStorageVolPtr ret = NULL;
if ((!VIR_IS_CONNECT(conn)) || (name == NULL) || (key == NULL)) { - virLibConnError(VIR_ERR_INVALID_ARG, __FUNCTION__); + virLibConnError(VIR_ERR_INVALID_ARG, _("no connection"));
"no connection" is only true in 1/3 of the possibilities to get into this block.
return(NULL); } virMutexLock(&conn->lock); @@ -1062,7 +1062,7 @@ virUnrefStorageVol(virStorageVolPtr vol) { int refs;
if (!VIR_IS_CONNECTED_STORAGE_VOL(vol)) { - virLibConnError(VIR_ERR_INVALID_ARG, __FUNCTION__); + virLibConnError(VIR_ERR_INVALID_ARG, _("no connection"));
And another incomplete message.
return(-1); } virMutexLock(&vol->conn->lock); @@ -1098,7 +1098,7 @@ virGetNodeDevice(virConnectPtr conn, const char *name) virNodeDevicePtr ret = NULL;
if ((!VIR_IS_CONNECT(conn)) || (name == NULL)) { - virLibConnError(VIR_ERR_INVALID_ARG, __FUNCTION__); + virLibConnError(VIR_ERR_INVALID_ARG, _("no connection"));
"no connection" is only true in 1/2 of the possibilities to get into this block.
return(NULL); } virMutexLock(&conn->lock); @@ -1230,7 +1230,7 @@ virGetSecret(virConnectPtr conn, const unsigned char *uuid, char uuidstr[VIR_UUID_STRING_BUFLEN];
if (!VIR_IS_CONNECT(conn) || uuid == NULL || usageID == NULL) { - virLibConnError(VIR_ERR_INVALID_ARG, __FUNCTION__); + virLibConnError(VIR_ERR_INVALID_ARG, _("no connection"));
"no connection" is only true in 1/3 of the possibilities to get into this block.
return NULL; } virMutexLock(&conn->lock); @@ -1329,7 +1329,7 @@ virUnrefSecret(virSecretPtr secret) { int refs;
if (!VIR_IS_CONNECTED_SECRET(secret)) { - virLibConnError(VIR_ERR_INVALID_ARG, __FUNCTION__); + virLibConnError(VIR_ERR_INVALID_ARG, _("no connection"));
And another incomplete message.
return -1; } virMutexLock(&secret->conn->lock); @@ -1423,7 +1423,7 @@ virGetNWFilter(virConnectPtr conn, const char *name, const unsigned char *uuid) virNWFilterPtr ret = NULL;
if ((!VIR_IS_CONNECT(conn)) || (name == NULL) || (uuid == NULL)) { - virLibConnError(VIR_ERR_INVALID_ARG, __FUNCTION__); + virLibConnError(VIR_ERR_INVALID_ARG, _("no connection"));
"no connection" is only true in 1/3 of the possibilities to get into this block.
return(NULL); } virMutexLock(&conn->lock); @@ -1526,7 +1526,7 @@ virUnrefNWFilter(virNWFilterPtr pool) { int refs;
if (!VIR_IS_CONNECTED_NWFILTER(pool)) { - virLibConnError(VIR_ERR_INVALID_ARG, __FUNCTION__); + virLibConnError(VIR_ERR_INVALID_ARG, _("no connection"));
And another incomplete message.
return -1; } virMutexLock(&pool->conn->lock); @@ -1550,7 +1550,7 @@ virGetDomainSnapshot(virDomainPtr domain, const char *name) virDomainSnapshotPtr ret = NULL;
if ((!VIR_IS_DOMAIN(domain)) || (name == NULL)) { - virLibConnError(VIR_ERR_INVALID_ARG, __FUNCTION__); + virLibConnError(VIR_ERR_INVALID_ARG, _("not a snapshot"));
This block is entered if domain is no domain or name is NULL, therefore "not a snapshot" is a misleading error message here. Matthias

On Wed, May 12, 2010 at 10:31:50AM +0200, Matthias Bolte wrote:
2010/5/12 Eric Blake <eblake@redhat.com>:
<snip>
As Chris pointed out a while ago:
https://www.redhat.com/archives/libvir-list/2010-April/msg01241.html
There are some error codes that have string representations attached which imply a certain usage style. VIR_ERR_INVALID_ARG is one of those. See virErrorMsg:
case VIR_ERR_INVALID_ARG: if (info == NULL) errmsg = _("invalid argument in"); else errmsg = _("invalid argument in %s"); break;
This implies that you pass the function name as additional information. But I must admit that I never used VIR_ERR_INVALID_ARG as it is implied, because I wasn't aware of that until recently.
The VIR_ERR_XML_ERROR is an even worse example:
case VIR_ERR_XML_ERROR: if (info == NULL) errmsg = _("XML description not well formed or invalid"); else errmsg = _("XML description for %s is not well formed or invalid"); break;
Unrelated to your patch I suggest that we unify the string representations for error codes to a common style:
case VIR_ERR_INVALID_ARG: if (info == NULL) errmsg = _("invalid argument"); else errmsg = _("invalid argument: %s"); break;
case VIR_ERR_XML_ERROR: if (info == NULL) errmsg = _("XML description not well formed or invalid"); else errmsg = _("XML description not well formed or invalid: %s"); break;
And adapt the callers.
+1 A common style for error messages is the right way to go, and I like the style Matthias proposes of "general error message: %s", "specific error" IMO, most of the time outputting a function name in an error message only obscures the message, and in the cases in which it's actually useful information, the writer of the message can always include it manually. The same goes for pointer addresses. I think this rework is a real usability enhancement. If we have consensus that we should do it, I'll submit patches for the storage and node device code. Dave

On 05/12/2010 09:54 AM, Dave Allan wrote:
Unrelated to your patch I suggest that we unify the string representations for error codes to a common style:
case VIR_ERR_INVALID_ARG: if (info == NULL) errmsg = _("invalid argument"); else errmsg = _("invalid argument: %s"); break;
case VIR_ERR_XML_ERROR: if (info == NULL) errmsg = _("XML description not well formed or invalid"); else errmsg = _("XML description not well formed or invalid: %s"); break;
And adapt the callers.
+1
A common style for error messages is the right way to go, and I like the style Matthias proposes of
Yeah, I also agree, and I would like to see this cleanup as well. Hopefully it will lead to clearer error messages from libvirt. -- Chris Lalancette

All uses of virLibNetworkError passed __FUNCTION__ as the info string; avoid the duplication by factoring it into a macro which can contain additional information (namely, the line number). The resulting error messages differ in the attributed location (now pointing to the caller rather than the helper), but the rest of the error text is unchanged. * src/libvirt.c (virLibNetworkError): Convert to macro, and drop extra parameter. All callers simplified. (virLibNetworkErrorHelper): Refactor function to take new parameters. --- If this type of cleanup is desirable, I can trim the 600+ other uses of __FUNCTION__ out of libvirt.c. src/libvirt.c | 52 +++++++++++++++++++++++++++------------------------- 1 files changed, 27 insertions(+), 25 deletions(-) diff --git a/src/libvirt.c b/src/libvirt.c index eb05337..2764793 100644 --- a/src/libvirt.c +++ b/src/libvirt.c @@ -503,9 +503,11 @@ virLibDomainError(virDomainPtr domain, virErrorNumber error, * * Handle an error at the connection level */ +#define virLibNetworkError(net, error) \ + virLibNetworkErrorHelper(net, error, __FILE__, __FUNCTION__, __LINE__) static void -virLibNetworkError(virNetworkPtr network, virErrorNumber error, - const char *info) +virLibNetworkErrorHelper(virNetworkPtr network, virErrorNumber error, + const char *file, const char *func, size_t line) { virConnectPtr conn = NULL; const char *errmsg; @@ -513,12 +515,12 @@ virLibNetworkError(virNetworkPtr network, virErrorNumber error, if (error == VIR_ERR_OK) return; - errmsg = virErrorMsg(error, info); + errmsg = virErrorMsg(error, func); if (error != VIR_ERR_INVALID_NETWORK) { conn = network->conn; } - virRaiseError(conn, NULL, network, VIR_FROM_NET, error, VIR_ERR_ERROR, - errmsg, info, NULL, 0, 0, errmsg, info); + virRaiseErrorFull(conn, file, func, line, VIR_FROM_NET, error, + VIR_ERR_ERROR, errmsg, func, NULL, 0, 0, errmsg, func); } /** @@ -5630,7 +5632,7 @@ virNetworkGetConnect (virNetworkPtr net) virResetLastError(); if (!VIR_IS_CONNECTED_NETWORK (net)) { - virLibNetworkError (NULL, VIR_ERR_INVALID_NETWORK, __FUNCTION__); + virLibNetworkError (NULL, VIR_ERR_INVALID_NETWORK); virDispatchError(NULL); return NULL; } @@ -6028,13 +6030,13 @@ virNetworkUndefine(virNetworkPtr network) { virResetLastError(); if (!VIR_IS_CONNECTED_NETWORK(network)) { - virLibNetworkError(NULL, VIR_ERR_INVALID_NETWORK, __FUNCTION__); + virLibNetworkError(NULL, VIR_ERR_INVALID_NETWORK); virDispatchError(NULL); return (-1); } conn = network->conn; if (conn->flags & VIR_CONNECT_RO) { - virLibNetworkError(network, VIR_ERR_OPERATION_DENIED, __FUNCTION__); + virLibNetworkError(network, VIR_ERR_OPERATION_DENIED); goto error; } @@ -6071,13 +6073,13 @@ virNetworkCreate(virNetworkPtr network) virResetLastError(); if (!VIR_IS_CONNECTED_NETWORK(network)) { - virLibNetworkError(NULL, VIR_ERR_INVALID_NETWORK, __FUNCTION__); + virLibNetworkError(NULL, VIR_ERR_INVALID_NETWORK); virDispatchError(NULL); return (-1); } conn = network->conn; if (conn->flags & VIR_CONNECT_RO) { - virLibNetworkError(network, VIR_ERR_OPERATION_DENIED, __FUNCTION__); + virLibNetworkError(network, VIR_ERR_OPERATION_DENIED); goto error; } @@ -6116,14 +6118,14 @@ virNetworkDestroy(virNetworkPtr network) virResetLastError(); if (!VIR_IS_CONNECTED_NETWORK(network)) { - virLibNetworkError(NULL, VIR_ERR_INVALID_NETWORK, __FUNCTION__); + virLibNetworkError(NULL, VIR_ERR_INVALID_NETWORK); virDispatchError(NULL); return (-1); } conn = network->conn; if (conn->flags & VIR_CONNECT_RO) { - virLibNetworkError(network, VIR_ERR_OPERATION_DENIED, __FUNCTION__); + virLibNetworkError(network, VIR_ERR_OPERATION_DENIED); goto error; } @@ -6159,7 +6161,7 @@ virNetworkFree(virNetworkPtr network) virResetLastError(); if (!VIR_IS_CONNECTED_NETWORK(network)) { - virLibNetworkError(NULL, VIR_ERR_INVALID_NETWORK, __FUNCTION__); + virLibNetworkError(NULL, VIR_ERR_INVALID_NETWORK); virDispatchError(NULL); return (-1); } @@ -6219,7 +6221,7 @@ virNetworkGetName(virNetworkPtr network) virResetLastError(); if (!VIR_IS_NETWORK(network)) { - virLibNetworkError(NULL, VIR_ERR_INVALID_NETWORK, __FUNCTION__); + virLibNetworkError(NULL, VIR_ERR_INVALID_NETWORK); virDispatchError(NULL); return (NULL); } @@ -6243,12 +6245,12 @@ virNetworkGetUUID(virNetworkPtr network, unsigned char *uuid) virResetLastError(); if (!VIR_IS_NETWORK(network)) { - virLibNetworkError(NULL, VIR_ERR_INVALID_NETWORK, __FUNCTION__); + virLibNetworkError(NULL, VIR_ERR_INVALID_NETWORK); virDispatchError(NULL); return (-1); } if (uuid == NULL) { - virLibNetworkError(network, VIR_ERR_INVALID_ARG, __FUNCTION__); + virLibNetworkError(network, VIR_ERR_INVALID_ARG); goto error; } @@ -6280,12 +6282,12 @@ virNetworkGetUUIDString(virNetworkPtr network, char *buf) virResetLastError(); if (!VIR_IS_NETWORK(network)) { - virLibNetworkError(NULL, VIR_ERR_INVALID_NETWORK, __FUNCTION__); + virLibNetworkError(NULL, VIR_ERR_INVALID_NETWORK); virDispatchError(NULL); return (-1); } if (buf == NULL) { - virLibNetworkError(network, VIR_ERR_INVALID_ARG, __FUNCTION__); + virLibNetworkError(network, VIR_ERR_INVALID_ARG); goto error; } @@ -6320,12 +6322,12 @@ virNetworkGetXMLDesc(virNetworkPtr network, int flags) virResetLastError(); if (!VIR_IS_CONNECTED_NETWORK(network)) { - virLibNetworkError(NULL, VIR_ERR_INVALID_NETWORK, __FUNCTION__); + virLibNetworkError(NULL, VIR_ERR_INVALID_NETWORK); virDispatchError(NULL); return (NULL); } if (flags != 0) { - virLibNetworkError(network, VIR_ERR_INVALID_ARG, __FUNCTION__); + virLibNetworkError(network, VIR_ERR_INVALID_ARG); goto error; } @@ -6365,7 +6367,7 @@ virNetworkGetBridgeName(virNetworkPtr network) virResetLastError(); if (!VIR_IS_CONNECTED_NETWORK(network)) { - virLibNetworkError(NULL, VIR_ERR_INVALID_NETWORK, __FUNCTION__); + virLibNetworkError(NULL, VIR_ERR_INVALID_NETWORK); virDispatchError(NULL); return (NULL); } @@ -6408,12 +6410,12 @@ virNetworkGetAutostart(virNetworkPtr network, virResetLastError(); if (!VIR_IS_CONNECTED_NETWORK(network)) { - virLibNetworkError(NULL, VIR_ERR_INVALID_NETWORK, __FUNCTION__); + virLibNetworkError(NULL, VIR_ERR_INVALID_NETWORK); virDispatchError(NULL); return (-1); } if (!autostart) { - virLibNetworkError(network, VIR_ERR_INVALID_ARG, __FUNCTION__); + virLibNetworkError(network, VIR_ERR_INVALID_ARG); goto error; } @@ -6454,13 +6456,13 @@ virNetworkSetAutostart(virNetworkPtr network, virResetLastError(); if (!VIR_IS_CONNECTED_NETWORK(network)) { - virLibNetworkError(NULL, VIR_ERR_INVALID_NETWORK, __FUNCTION__); + virLibNetworkError(NULL, VIR_ERR_INVALID_NETWORK); virDispatchError(NULL); return (-1); } if (network->conn->flags & VIR_CONNECT_RO) { - virLibNetworkError(network, VIR_ERR_OPERATION_DENIED, __FUNCTION__); + virLibNetworkError(network, VIR_ERR_OPERATION_DENIED); goto error; } -- 1.7.0.1
participants (4)
-
Chris Lalancette
-
Dave Allan
-
Eric Blake
-
Matthias Bolte