From nobody Thu Dec 18 08:35:43 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1554270060131708.4787970043316; Tue, 2 Apr 2019 22:41:00 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id E5AC0330244; Wed, 3 Apr 2019 05:40:58 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id B5A78608CC; Wed, 3 Apr 2019 05:40:58 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 75A6A180338B; Wed, 3 Apr 2019 05:40:58 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x335eZl2030503 for ; Wed, 3 Apr 2019 01:40:35 -0400 Received: by smtp.corp.redhat.com (Postfix) id 3871D60FE5; Wed, 3 Apr 2019 05:40:35 +0000 (UTC) Received: from icr.brq.redhat.com (unknown [10.43.2.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id B50206025C for ; Wed, 3 Apr 2019 05:40:33 +0000 (UTC) From: =?UTF-8?q?J=C3=A1n=20Tomko?= To: libvir-list@redhat.com Date: Wed, 3 Apr 2019 07:40:20 +0200 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 05/10] json: assume WITH_YAJL2 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Wed, 03 Apr 2019 05:40:59 +0000 (UTC) Now that we require YAJL2, drop the code dealing with YAJL 1. Signed-off-by: J=C3=A1n Tomko Reviewed-by: Daniel P. Berrang=C3=A9 --- src/util/virjson.c | 55 +++------------------------------------------- 1 file changed, 3 insertions(+), 52 deletions(-) diff --git a/src/util/virjson.c b/src/util/virjson.c index d5d66f879f..b163d5c1cb 100644 --- a/src/util/virjson.c +++ b/src/util/virjson.c @@ -33,16 +33,8 @@ # include # include =20 -# ifdef WITH_YAJL2 -# define yajl_size_t size_t -# define VIR_YAJL_STATUS_OK(status) ((status) =3D=3D yajl_status_ok) -# else -# define yajl_size_t unsigned int -# define yajl_complete_parse yajl_parse_complete -# define VIR_YAJL_STATUS_OK(status) \ - ((status) =3D=3D yajl_status_ok || (status) =3D=3D yajl_status_insuffi= cient_data) -# endif - +# define yajl_size_t size_t +# define VIR_YAJL_STATUS_OK(status) ((status) =3D=3D yajl_status_ok) #endif =20 /* XXX fixme */ @@ -1819,41 +1811,18 @@ virJSONValueFromString(const char *jsonstring) virJSONValuePtr ret =3D NULL; int rc; size_t len =3D strlen(jsonstring); -# ifndef WITH_YAJL2 - yajl_parser_config cfg =3D { 0, 1 }; /* Match yajl 2 default behavior = */ - VIR_AUTOPTR(virJSONValue) tmp =3D NULL; -# endif =20 VIR_DEBUG("string=3D%s", jsonstring); =20 -# ifdef WITH_YAJL2 hand =3D yajl_alloc(&parserCallbacks, NULL, &parser); -# else - hand =3D yajl_alloc(&parserCallbacks, &cfg, NULL, &parser); -# endif if (!hand) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Unable to create JSON parser")); goto cleanup; } =20 - /* Yajl 2 is nice enough to default to rejecting trailing garbage. - * Yajl 1.0.12 has yajl_get_bytes_consumed to make that detection - * simpler. But we're stuck with yajl 1.0.7 on RHEL 6, which - * happily quits parsing at the end of a valid JSON construct, - * with no visibility into how much more input remains. Wrapping - * things in an array forces yajl to confess the truth. */ -# ifdef WITH_YAJL2 + /* Yajl 2 is nice enough to default to rejecting trailing garbage. */ rc =3D yajl_parse(hand, (const unsigned char *)jsonstring, len); -# else - rc =3D yajl_parse(hand, (const unsigned char *)"[", 1); - parser.wrap =3D 1; - if (VIR_YAJL_STATUS_OK(rc)) - rc =3D yajl_parse(hand, (const unsigned char *)jsonstring, len); - parser.wrap =3D 0; - if (VIR_YAJL_STATUS_OK(rc)) - rc =3D yajl_parse(hand, (const unsigned char *)"]", 1); -# endif if (!VIR_YAJL_STATUS_OK(rc) || yajl_complete_parse(hand) !=3D yajl_status_ok) { unsigned char *errstr =3D yajl_get_error(hand, 1, @@ -1875,17 +1844,6 @@ virJSONValueFromString(const char *jsonstring) virJSONValueFree(parser.head); } else { ret =3D parser.head; -# ifndef WITH_YAJL2 - /* Undo the array wrapping above */ - tmp =3D ret; - ret =3D NULL; - if (virJSONValueArraySize(tmp) > 1) - virReportError(VIR_ERR_INTERNAL_ERROR, - _("cannot parse json %s: too many items present= "), - jsonstring); - else - ret =3D virJSONValueArraySteal(tmp, 0); -# endif } =20 cleanup: @@ -1977,22 +1935,15 @@ virJSONValueToString(virJSONValuePtr object, const unsigned char *str; char *ret =3D NULL; yajl_size_t len; -# ifndef WITH_YAJL2 - yajl_gen_config conf =3D { pretty ? 1 : 0, pretty ? " " : " "}; -# endif =20 VIR_DEBUG("object=3D%p", object); =20 -# ifdef WITH_YAJL2 g =3D yajl_gen_alloc(NULL); if (g) { yajl_gen_config(g, yajl_gen_beautify, pretty ? 1 : 0); yajl_gen_config(g, yajl_gen_indent_string, pretty ? " " : " "); yajl_gen_config(g, yajl_gen_validate_utf8, 1); } -# else - g =3D yajl_gen_alloc(&conf, NULL); -# endif if (!g) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Unable to create JSON formatter")); --=20 2.19.2 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list