diff options
author | Dario Lombardo <lomato@gmail.com> | 2018-04-20 14:04:50 +0200 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2018-04-24 03:46:41 +0000 |
commit | 73a1e98f4edbd9596e084e269bc050f17906531a (patch) | |
tree | 732e847b95150a527b58601ee2f95e6b304885fd /wsutil | |
parent | 631fec3e1bdb069466da95ebfc0f0b3de5706415 (diff) |
wsutil: use json-glib instead of jsmn if present.
Change-Id: I61b0fc2c23ad08aba3e29471bdfef6cab682bb21
Reviewed-on: https://code.wireshark.org/review/27056
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'wsutil')
-rw-r--r-- | wsutil/CMakeLists.txt | 5 | ||||
-rw-r--r-- | wsutil/wsjson.c | 15 |
2 files changed, 18 insertions, 2 deletions
diff --git a/wsutil/CMakeLists.txt b/wsutil/CMakeLists.txt index 7ee405a334..f3e000f28b 100644 --- a/wsutil/CMakeLists.txt +++ b/wsutil/CMakeLists.txt @@ -227,6 +227,11 @@ set(wsutil_LIBS ${WIN_WSOCK32_LIBRARY} ${GNUTLS_LIBRARIES} ) + +IF(HAVE_JSONGLIB) + list(APPEND wsutil_LIBS ${JSONGLIB_LIBRARIES}) +ENDIF() + IF(WIN32) set(wsutil_LIBS ${wsutil_LIBS} "iphlpapi.lib" "ws2_32.lib") ENDIF(WIN32) diff --git a/wsutil/wsjson.c b/wsutil/wsjson.c index 7c0dafd19c..7d5c442ecd 100644 --- a/wsutil/wsjson.c +++ b/wsutil/wsjson.c @@ -10,6 +10,8 @@ * SPDX-License-Identifier: GPL-2.0-or-later */ +#include "config.h" + #include "wsjson.h" #include <string.h> @@ -18,13 +20,22 @@ #include <wsutil/unicode-utils.h> #include "log.h" +#ifdef HAVE_JSONGLIB +#include <json-glib/json-glib.h> +#endif + gboolean wsjson_is_valid_json(const guint8* buf, const size_t len) { + gboolean ret = TRUE; +#ifdef HAVE_JSONGLIB + JsonParser *parser = json_parser_new(); + GError* error; + ret = json_parser_load_from_data(parser, buf, len, &error); +#else /* We expect no more than 1024 tokens */ guint max_tokens = 1024; jsmntok_t* t; jsmn_parser p; - gboolean ret = TRUE; int rcode; t = g_new0(jsmntok_t, max_tokens); @@ -54,7 +65,7 @@ gboolean wsjson_is_valid_json(const guint8* buf, const size_t len) } g_free(t); - +#endif return ret; } |