1
0
mirror of https://github.com/systemd/systemd.git synced 2024-10-27 18:55:40 +03:00

busctl: use new JSON_BUILD_PAIR_CONDITIONAL() for minimizing bus message JSON transformations

Let's not generate object fields that aren't defined for a message.
This commit is contained in:
Lennart Poettering 2018-11-27 22:30:30 +01:00
parent 319a4f27c4
commit 3919bc24aa

View File

@ -1153,18 +1153,18 @@ static int message_json(sd_bus_message *m, FILE *f) {
JSON_BUILD_PAIR("endian", JSON_BUILD_STRING(e)),
JSON_BUILD_PAIR("flags", JSON_BUILD_INTEGER(m->header->flags)),
JSON_BUILD_PAIR("version", JSON_BUILD_INTEGER(m->header->version)),
JSON_BUILD_PAIR("priority", JSON_BUILD_INTEGER(m->priority)),
JSON_BUILD_PAIR_CONDITION(m->priority != 0, "priority", JSON_BUILD_INTEGER(m->priority)),
JSON_BUILD_PAIR("cookie", JSON_BUILD_INTEGER(BUS_MESSAGE_COOKIE(m))),
JSON_BUILD_PAIR("reply_cookie", JSON_BUILD_INTEGER(m->reply_cookie)),
JSON_BUILD_PAIR("sender", JSON_BUILD_STRING(m->sender)),
JSON_BUILD_PAIR("destination", JSON_BUILD_STRING(m->destination)),
JSON_BUILD_PAIR("path", JSON_BUILD_STRING(m->path)),
JSON_BUILD_PAIR("interface", JSON_BUILD_STRING(m->interface)),
JSON_BUILD_PAIR("member", JSON_BUILD_STRING(m->member)),
JSON_BUILD_PAIR("monotonic", JSON_BUILD_INTEGER(m->monotonic)),
JSON_BUILD_PAIR("realtime", JSON_BUILD_INTEGER(m->realtime)),
JSON_BUILD_PAIR("seqnum", JSON_BUILD_INTEGER(m->seqnum)),
JSON_BUILD_PAIR("error_name", JSON_BUILD_STRING(m->error.name)),
JSON_BUILD_PAIR_CONDITION(m->reply_cookie != 0, "reply_cookie", JSON_BUILD_INTEGER(m->reply_cookie)),
JSON_BUILD_PAIR_CONDITION(m->sender, "sender", JSON_BUILD_STRING(m->sender)),
JSON_BUILD_PAIR_CONDITION(m->destination, "destination", JSON_BUILD_STRING(m->destination)),
JSON_BUILD_PAIR_CONDITION(m->path, "path", JSON_BUILD_STRING(m->path)),
JSON_BUILD_PAIR_CONDITION(m->interface, "interface", JSON_BUILD_STRING(m->interface)),
JSON_BUILD_PAIR_CONDITION(m->member, "member", JSON_BUILD_STRING(m->member)),
JSON_BUILD_PAIR_CONDITION(m->monotonic != 0, "monotonic", JSON_BUILD_INTEGER(m->monotonic)),
JSON_BUILD_PAIR_CONDITION(m->realtime != 0, "realtime", JSON_BUILD_INTEGER(m->realtime)),
JSON_BUILD_PAIR_CONDITION(m->seqnum != 0, "seqnum", JSON_BUILD_INTEGER(m->seqnum)),
JSON_BUILD_PAIR_CONDITION(m->error.name, "error_name", JSON_BUILD_STRING(m->error.name)),
JSON_BUILD_PAIR("payload", JSON_BUILD_VARIANT(v))));
if (r < 0)
return log_error_errno(r, "Failed to build JSON object: %m");