From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:39504) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QBpz4-0006ua-21 for qemu-devel@nongnu.org; Mon, 18 Apr 2011 11:03:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QBpz0-0000pj-2Y for qemu-devel@nongnu.org; Mon, 18 Apr 2011 11:03:26 -0400 Received: from e38.co.us.ibm.com ([32.97.110.159]:45335) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QBpyz-0000pb-T6 for qemu-devel@nongnu.org; Mon, 18 Apr 2011 11:03:22 -0400 Received: from d03relay03.boulder.ibm.com (d03relay03.boulder.ibm.com [9.17.195.228]) by e38.co.us.ibm.com (8.14.4/8.13.1) with ESMTP id p3IElfJr021709 for ; Mon, 18 Apr 2011 08:47:41 -0600 Received: from d03av04.boulder.ibm.com (d03av04.boulder.ibm.com [9.17.195.170]) by d03relay03.boulder.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p3IF37uj095198 for ; Mon, 18 Apr 2011 09:03:18 -0600 Received: from d03av04.boulder.ibm.com (loopback [127.0.0.1]) by d03av04.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p3IF36Pd021798 for ; Mon, 18 Apr 2011 09:03:06 -0600 From: Michael Roth Date: Mon, 18 Apr 2011 10:02:21 -0500 Message-Id: <1303138953-1334-6-git-send-email-mdroth@linux.vnet.ibm.com> In-Reply-To: <1303138953-1334-1-git-send-email-mdroth@linux.vnet.ibm.com> References: <1303138953-1334-1-git-send-email-mdroth@linux.vnet.ibm.com> Subject: [Qemu-devel] [RFC][PATCH v2 05/17] qapi: fix handling for null-return async callbacks List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: aliguori@linux.vnet.ibm.com, agl@linux.vnet.ibm.com, mdroth@linux.vnet.ibm.com, Jes.Sorensen@redhat.com Async commands like 'guest-ping' have NULL retvals. Handle these by inserting an empty dictionary in the response's "return" field. Signed-off-by: Michael Roth --- qmp-core.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/qmp-core.c b/qmp-core.c index e33f7a4..9f3d182 100644 --- a/qmp-core.c +++ b/qmp-core.c @@ -922,9 +922,12 @@ void qmp_async_complete_command(QmpCommandState *cmd, QObject *retval, Error *er rsp = qdict_new(); if (err) { qdict_put_obj(rsp, "error", error_get_qobject(err)); - } else { + } else if (retval) { qobject_incref(retval); qdict_put_obj(rsp, "return", retval); + } else { + /* add empty "return" dict, this is the standard for NULL returns */ + qdict_put_obj(rsp, "return", QOBJECT(qdict_new())); } if (cmd->tag) { qdict_put_obj(rsp, "tag", cmd->tag); -- 1.7.0.4