From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53713) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ys8u4-0007Qc-7P for qemu-devel@nongnu.org; Tue, 12 May 2015 08:03:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Ys8tz-0003xP-7P for qemu-devel@nongnu.org; Tue, 12 May 2015 08:03:16 -0400 Received: from mx1.redhat.com ([209.132.183.28]:55211) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ys8tz-0003wy-2U for qemu-devel@nongnu.org; Tue, 12 May 2015 08:03:11 -0400 Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (Postfix) with ESMTPS id 479EC35C80F for ; Tue, 12 May 2015 12:03:10 +0000 (UTC) From: Markus Armbruster Date: Tue, 12 May 2015 14:02:56 +0200 Message-Id: <1431432187-10993-5-git-send-email-armbru@redhat.com> In-Reply-To: <1431432187-10993-1-git-send-email-armbru@redhat.com> References: <1431432187-10993-1-git-send-email-armbru@redhat.com> Subject: [Qemu-devel] [PATCH 04/15] net/dump: Improve -net/host_net_add dump error reporting List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: stefanha@redhat.com When -net dump fails, it first reports a specific error, then a generic one, like this: $ qemu-system-x86_64 -net dump,id=foo,file=/eperm qemu-system-x86_64: -net dump,id=foo,file=/eperm: -net dump: can't open /eperm qemu-system-x86_64: -net dump,id=foo,file=/eperm: Device 'dump' could not be initialized Convert net_init_tap() to Error. This suppresses the unwanted second message. Signed-off-by: Markus Armbruster --- net/dump.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/net/dump.c b/net/dump.c index 214e88a..02c8064 100644 --- a/net/dump.c +++ b/net/dump.c @@ -101,7 +101,8 @@ static NetClientInfo net_dump_info = { }; static int net_dump_init(NetClientState *peer, const char *device, - const char *name, const char *filename, int len) + const char *name, const char *filename, int len, + Error **errp) { struct pcap_file_hdr hdr; NetClientState *nc; @@ -111,7 +112,7 @@ static int net_dump_init(NetClientState *peer, const char *device, fd = open(filename, O_CREAT | O_TRUNC | O_WRONLY | O_BINARY, 0644); if (fd < 0) { - error_report("-net dump: can't open %s", filename); + error_setg_errno(errp, errno, "-net dump: can't open %s", filename); return -1; } @@ -124,7 +125,7 @@ static int net_dump_init(NetClientState *peer, const char *device, hdr.linktype = 1; if (write(fd, &hdr, sizeof(hdr)) < sizeof(hdr)) { - error_report("-net dump write error: %s", strerror(errno)); + error_setg_errno(errp, errno, "-net dump write error"); close(fd); return -1; } @@ -148,7 +149,6 @@ static int net_dump_init(NetClientState *peer, const char *device, int net_init_dump(const NetClientOptions *opts, const char *name, NetClientState *peer, Error **errp) { - /* FIXME error_setg(errp, ...) on failure */ int len; const char *file; char def_file[128]; @@ -174,7 +174,7 @@ int net_init_dump(const NetClientOptions *opts, const char *name, if (dump->has_len) { if (dump->len > INT_MAX) { - error_report("invalid length: %"PRIu64, dump->len); + error_setg(errp, "invalid length: %"PRIu64, dump->len); return -1; } len = dump->len; @@ -182,5 +182,5 @@ int net_init_dump(const NetClientOptions *opts, const char *name, len = 65536; } - return net_dump_init(peer, "dump", name, file, len); + return net_dump_init(peer, "dump", name, file, len, errp); } -- 1.9.3