From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=33590 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Q3Czk-0008Tf-Os for qemu-devel@nongnu.org; Fri, 25 Mar 2011 15:48:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Q3Czi-0006LN-C2 for qemu-devel@nongnu.org; Fri, 25 Mar 2011 15:48:27 -0400 Received: from e6.ny.us.ibm.com ([32.97.182.146]:44975) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Q3Czi-0006LB-9W for qemu-devel@nongnu.org; Fri, 25 Mar 2011 15:48:26 -0400 Received: from d01dlp01.pok.ibm.com (d01dlp01.pok.ibm.com [9.56.224.56]) by e6.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p2PJO9ZG015225 for ; Fri, 25 Mar 2011 15:24:09 -0400 Received: from d01relay01.pok.ibm.com (d01relay01.pok.ibm.com [9.56.227.233]) by d01dlp01.pok.ibm.com (Postfix) with ESMTP id 43F5938C8038 for ; Fri, 25 Mar 2011 15:48:20 -0400 (EDT) Received: from d01av03.pok.ibm.com (d01av03.pok.ibm.com [9.56.224.217]) by d01relay01.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p2PJmPVq394394 for ; Fri, 25 Mar 2011 15:48:25 -0400 Received: from d01av03.pok.ibm.com (loopback [127.0.0.1]) by d01av03.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p2PJmPbR024765 for ; Fri, 25 Mar 2011 16:48:25 -0300 From: Michael Roth Date: Fri, 25 Mar 2011 14:47:52 -0500 Message-Id: <1301082479-4058-6-git-send-email-mdroth@linux.vnet.ibm.com> In-Reply-To: <1301082479-4058-1-git-send-email-mdroth@linux.vnet.ibm.com> References: <1301082479-4058-1-git-send-email-mdroth@linux.vnet.ibm.com> Subject: [Qemu-devel] [RFC][PATCH v1 05/12] qapi: fix handling for null-return async callbacks List-Id: qemu-devel.nongnu.org 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