aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulia Suvorova via Qemu-devel <qemu-devel@nongnu.org>2018-03-15 23:06:32 +0300
committerJason Wang <jasowang@redhat.com>2018-03-26 14:52:43 +0800
commit7587855cd23755a7a6bd01b026611465f5584ecd (patch)
treed690ef5304a7ee5edde9c00286c775dfcb796d78
parent94b52958b77a2a040564cf7ed716d3a9545d94e5 (diff)
net/vde: print error on vde_open() failure
Despite the fact that now when the initialization of vde fails, qemu does not end silently, no informative error is printed. The patch generates an error and pushes it through the calling function. Related bug: https://bugs.launchpad.net/qemu/+bug/676029 Signed-off-by: Julia Suvorova <jusual@mail.ru> Signed-off-by: Jason Wang <jasowang@redhat.com>
-rw-r--r--net/vde.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/net/vde.c b/net/vde.c
index e50e5d6394..99189cccb6 100644
--- a/net/vde.c
+++ b/net/vde.c
@@ -30,6 +30,7 @@
#include "qemu-common.h"
#include "qemu/option.h"
#include "qemu/main-loop.h"
+#include "qapi/error.h"
typedef struct VDEState {
NetClientState nc;
@@ -76,7 +77,7 @@ static NetClientInfo net_vde_info = {
static int net_vde_init(NetClientState *peer, const char *model,
const char *name, const char *sock,
- int port, const char *group, int mode)
+ int port, const char *group, int mode, Error **errp)
{
NetClientState *nc;
VDEState *s;
@@ -92,6 +93,7 @@ static int net_vde_init(NetClientState *peer, const char *model,
vde = vde_open(init_sock, (char *)"QEMU", &args);
if (!vde){
+ error_setg_errno(errp, errno, "Could not open vde");
return -1;
}
@@ -112,7 +114,6 @@ static int net_vde_init(NetClientState *peer, const char *model,
int net_init_vde(const Netdev *netdev, const char *name,
NetClientState *peer, Error **errp)
{
- /* FIXME error_setg(errp, ...) on failure */
const NetdevVdeOptions *vde;
assert(netdev->type == NET_CLIENT_DRIVER_VDE);
@@ -120,7 +121,7 @@ int net_init_vde(const Netdev *netdev, const char *name,
/* missing optional values have been initialized to "all bits zero" */
if (net_vde_init(peer, "vde", name, vde->sock, vde->port, vde->group,
- vde->has_mode ? vde->mode : 0700) == -1) {
+ vde->has_mode ? vde->mode : 0700, errp) == -1) {
return -1;
}