forked from pool/libvirt
48 lines
1.6 KiB
Diff
48 lines
1.6 KiB
Diff
|
commit 32620dabb12df70e14a645c20797b7658cd89e02
|
||
|
Author: Jim Fehlig <jfehlig@suse.com>
|
||
|
Date: Thu Sep 1 16:22:38 2011 -0600
|
||
|
|
||
|
Don't overwrite errors from xend_{get,req}
|
||
|
|
||
|
xenDaemonDomainFetch() was overwriting errors reported by
|
||
|
xend_get() and xend_req(). E.g. without patch
|
||
|
|
||
|
error: failed Xen syscall xenDaemonDomainFetch failed to find this domain
|
||
|
|
||
|
with patch
|
||
|
|
||
|
error: internal error Xend returned HTTP Content-Length of 73817, which exceeds
|
||
|
maximum of 65536
|
||
|
|
||
|
diff --git a/src/xen/xend_internal.c b/src/xen/xend_internal.c
|
||
|
index f44d674..957cd17 100644
|
||
|
--- a/src/xen/xend_internal.c
|
||
|
+++ b/src/xen/xend_internal.c
|
||
|
@@ -359,8 +359,10 @@ xend_get(virConnectPtr xend, const char *path,
|
||
|
ret = xend_req(s, content);
|
||
|
VIR_FORCE_CLOSE(s);
|
||
|
|
||
|
- if (((ret < 0) || (ret >= 300)) &&
|
||
|
- ((ret != 404) || (!STRPREFIX(path, "/xend/domain/")))) {
|
||
|
+ if (ret < 0)
|
||
|
+ return ret;
|
||
|
+
|
||
|
+ if ((ret >= 300) && ((ret != 404) || (!STRPREFIX(path, "/xend/domain/")))) {
|
||
|
virXendError(VIR_ERR_GET_FAILED,
|
||
|
_("%d status from xen daemon: %s:%s"),
|
||
|
ret, path, NULLSTR(*content));
|
||
|
@@ -1810,12 +1812,8 @@ xenDaemonDomainFetch(virConnectPtr conn,
|
||
|
root = sexpr_get(conn, "/xend/domain/%s?detail=1", name);
|
||
|
else
|
||
|
root = sexpr_get(conn, "/xend/domain/%d?detail=1", domid);
|
||
|
- if (root == NULL) {
|
||
|
- virXendError(VIR_ERR_XEN_CALL,
|
||
|
- "%s", _("xenDaemonDomainFetch failed to"
|
||
|
- " find this domain"));
|
||
|
+ if (root == NULL)
|
||
|
return (NULL);
|
||
|
- }
|
||
|
|
||
|
priv = (xenUnifiedPrivatePtr) conn->privateData;
|
||
|
|