diff --git a/src/shared/format-table.c b/src/shared/format-table.c index a13a198b7a..645e5b9afa 100644 --- a/src/shared/format-table.c +++ b/src/shared/format-table.c @@ -2536,6 +2536,9 @@ int table_print_json(Table *t, FILE *f, JsonFormatFlags flags) { assert(t); + if (flags & JSON_FORMAT_OFF) /* If JSON output is turned off, use regular output */ + return table_print(t, f); + if (!f) f = stdout; diff --git a/src/shared/json.c b/src/shared/json.c index 6beb56cfa0..9a1a1787df 100644 --- a/src/shared/json.c +++ b/src/shared/json.c @@ -1766,6 +1766,9 @@ int json_variant_format(JsonVariant *v, JsonFormatFlags flags, char **ret) { assert_return(v, -EINVAL); assert_return(ret, -EINVAL); + if (flags & JSON_FORMAT_OFF) + return -ENOEXEC; + { _cleanup_fclose_ FILE *f = NULL; diff --git a/src/shared/json.h b/src/shared/json.h index abc0dccddb..a69e1de5c0 100644 --- a/src/shared/json.h +++ b/src/shared/json.h @@ -175,6 +175,7 @@ typedef enum JsonFormatFlags { JSON_FORMAT_SSE = 1 << 6, /* prefix/suffix with W3C server-sent events */ JSON_FORMAT_SEQ = 1 << 7, /* prefix/suffix with RFC 7464 application/json-seq */ JSON_FORMAT_FLUSH = 1 << 8, /* call fflush() after dumping JSON */ + JSON_FORMAT_OFF = 1 << 9, /* make json_variant_format() fail with -ENOEXEC */ } JsonFormatFlags; int json_variant_format(JsonVariant *v, JsonFormatFlags flags, char **ret);