On Fri, Nov 06, 2009 at 04:28:07AM +0100, Matthias Bolte wrote: > --- > src/phyp/phyp_driver.c | 71 +++++++++++++++++++----------------------------- > 1 files changed, 28 insertions(+), 43 deletions(-) > > diff --git a/src/phyp/phyp_driver.c b/src/phyp/phyp_driver.c > index 6263fd2..a92046a 100644 > --- a/src/phyp/phyp_driver.c > +++ b/src/phyp/phyp_driver.c > @@ -61,6 +61,10 @@ > > #define VIR_FROM_THIS VIR_FROM_PHYP > > +#define PHYP_ERROR(conn, code, fmt...) \ > + virReportErrorHelper(conn, VIR_FROM_PHYP, code, __FILE__, __FUNCTION__, \ > + __LINE__, fmt) > + > /* > * URI: phyp://user@[hmc|ivm]/managed_system > * */ > @@ -86,23 +90,14 @@ phypOpen(virConnectPtr conn, > return VIR_DRV_OPEN_DECLINED; > > if (conn->uri->server == NULL) { > - virRaiseError(conn, NULL, NULL, 0, VIR_FROM_PHYP, > - VIR_ERR_ERROR, NULL, NULL, NULL, 0, 0, "%s", > - _("Missing server name in phyp:// URI")); > - return VIR_DRV_OPEN_ERROR; > - } > - > - if (conn->uri->path == NULL) { > - virRaiseError(conn, NULL, NULL, 0, VIR_FROM_PHYP, > - VIR_ERR_ERROR, NULL, NULL, NULL, 0, 0, "%s", > - _("Missing managed system name in phyp:// URI")); > + PHYP_ERROR(conn, VIR_ERR_INTERNAL_ERROR, > + _("Missing server name in phyp:// URI")); > return VIR_DRV_OPEN_ERROR; > } > > if (conn->uri->path == NULL) { > - virRaiseError(conn, NULL, NULL, 0, VIR_FROM_PHYP, > - VIR_ERR_ERROR, NULL, NULL, NULL, 0, 0, "%s", > - _("Missing path name in phyp:// URI")); > + PHYP_ERROR(conn, VIR_ERR_INTERNAL_ERROR, > + _("Missing managed system name in phyp:// URI")); > return VIR_DRV_OPEN_ERROR; > } Hum, okay, I had to look twice to convince myself the error messages were properly matched :-) > @@ -148,16 +143,14 @@ phypOpen(virConnectPtr conn, > *char_ptr = '\0'; > > if (escape_specialcharacters(conn->uri->path, string, len) == -1) { > - virRaiseError(conn, NULL, NULL, 0, VIR_FROM_PHYP, > - VIR_ERR_ERROR, NULL, NULL, NULL, 0, 0, "%s", > - _("Error parsing 'path'. Invalid characters.")); > + PHYP_ERROR(conn, VIR_ERR_INTERNAL_ERROR, > + _("Error parsing 'path'. Invalid characters.")); > goto failure; > } > > if ((session = openSSHSession(conn, auth, &internal_socket)) == NULL) { > - virRaiseError(conn, NULL, NULL, 0, VIR_FROM_PHYP, > - VIR_ERR_ERROR, NULL, NULL, NULL, 0, 0, "%s", > - _("Error while opening SSH session.")); > + PHYP_ERROR(conn, VIR_ERR_INTERNAL_ERROR, > + _("Error while opening SSH session.")); > goto failure; > } > //conn->uri->path = string; > @@ -244,9 +237,8 @@ openSSHSession(virConnectPtr conn, virConnectAuthPtr auth, > > ret = getaddrinfo(hostname, "22", &hints, &ai); > if (ret != 0) { > - virRaiseError(conn, NULL, NULL, 0, VIR_FROM_PHYP, > - VIR_ERR_ERROR, NULL, NULL, NULL, 0, 0, > - _("Error while getting %s address info"), hostname); > + PHYP_ERROR(conn, VIR_ERR_INTERNAL_ERROR, > + _("Error while getting %s address info"), hostname); > goto err; > } > > @@ -262,9 +254,8 @@ openSSHSession(virConnectPtr conn, virConnectAuthPtr auth, > cur = cur->ai_next; > } > > - virRaiseError(conn, NULL, NULL, 0, VIR_FROM_PHYP, > - VIR_ERR_ERROR, NULL, NULL, NULL, 0, 0, > - _("Failed to connect to %s"), hostname); > + PHYP_ERROR(conn, VIR_ERR_INTERNAL_ERROR, > + _("Failed to connect to %s"), hostname); > freeaddrinfo(ai); > goto err; > > @@ -283,9 +274,8 @@ openSSHSession(virConnectPtr conn, virConnectAuthPtr auth, > while ((rc = libssh2_session_startup(session, sock)) == > LIBSSH2_ERROR_EAGAIN) ; > if (rc) { > - virRaiseError(conn, NULL, NULL, 0, VIR_FROM_PHYP, > - VIR_ERR_ERROR, NULL, NULL, NULL, 0, 0, "%s", > - _("Failure establishing SSH session.")); > + PHYP_ERROR(conn, VIR_ERR_INTERNAL_ERROR, > + _("Failure establishing SSH session.")); > goto disconnect; > } > > @@ -307,9 +297,8 @@ openSSHSession(virConnectPtr conn, virConnectAuthPtr auth, > }; > > if (!auth || !auth->cb) { > - virRaiseError(conn, NULL, NULL, 0, VIR_FROM_PHYP, > - VIR_ERR_ERROR, NULL, NULL, NULL, 0, 0, "%s", > - _("No authentication callback provided.")); > + PHYP_ERROR(conn, VIR_ERR_AUTH_FAILED, > + _("No authentication callback provided.")); > goto disconnect; > } > > @@ -319,9 +308,8 @@ openSSHSession(virConnectPtr conn, virConnectAuthPtr auth, > } > > if (!hasPassphrase) { > - virRaiseError(conn, NULL, NULL, 0, VIR_FROM_PHYP, > - VIR_ERR_ERROR, NULL, NULL, NULL, 0, 0, "%s", > - _("Required credentials are not supported.")); > + PHYP_ERROR(conn, VIR_ERR_AUTH_FAILED, > + _("Required credentials are not supported.")); > goto disconnect; > } > > @@ -329,18 +317,16 @@ openSSHSession(virConnectPtr conn, virConnectAuthPtr auth, > (auth->cb) (creds, ARRAY_CARDINALITY(creds), auth->cbdata); > > if (res < 0) { > - virRaiseError(conn, NULL, NULL, 0, VIR_FROM_PHYP, > - VIR_ERR_ERROR, NULL, NULL, NULL, 0, 0, "%s", > - _("Unable to fetch credentials.")); > + PHYP_ERROR(conn, VIR_ERR_AUTH_FAILED, > + _("Unable to fetch credentials.")); > goto disconnect; > } > > if (creds[0].result) { > password = creds[0].result; > } else { > - virRaiseError(conn, NULL, NULL, 0, VIR_FROM_PHYP, > - VIR_ERR_ERROR, NULL, NULL, NULL, 0, 0, "%s", > - _("Unable to get password certificates")); > + PHYP_ERROR(conn, VIR_ERR_AUTH_FAILED, > + _("Unable to get password certificates")); > goto disconnect; > } > > @@ -350,9 +336,8 @@ openSSHSession(virConnectPtr conn, virConnectAuthPtr auth, > LIBSSH2_ERROR_EAGAIN) ; > > if (rc) { > - virRaiseError(conn, NULL, NULL, 0, VIR_FROM_PHYP, > - VIR_ERR_ERROR, NULL, NULL, NULL, 0, 0, "%s", > - _("Authentication failed")); > + PHYP_ERROR(conn, VIR_ERR_AUTH_FAILED, > + _("Authentication failed")); > goto disconnect; > } else > goto exit; ACK, very good ! thanks a lot ! Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@xxxxxxxxxxxx | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/ -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list