static int show_statistics(int argc, char **argv, void *userdata) {
_cleanup_(table_unrefp) Table *table = NULL;
- JsonVariant *reply = NULL, *stats = NULL;
+ JsonVariant *reply = NULL;
_cleanup_(varlink_unrefp) Varlink *vl = NULL;
int r;
if (r < 0)
return log_error_errno(r, "Failed to issue DumpStatistics() varlink call: %m");
- stats = json_variant_by_key(reply, "statistics");
- if (!stats)
- return log_error_errno(SYNTHETIC_ERRNO(ENOTRECOVERABLE),
- "DumpStatistics() response is missing 'statistics' key.");
-
- if (!json_variant_is_object(stats))
- return log_error_errno(SYNTHETIC_ERRNO(ENOTRECOVERABLE),
- "DumpStatistics() response 'statistics' field not an object");
-
if (!FLAGS_SET(arg_json_format_flags, JSON_FORMAT_OFF))
- return json_variant_dump(stats, arg_json_format_flags, NULL, NULL);
+ return json_variant_dump(reply, arg_json_format_flags, NULL, NULL);
struct statistics {
JsonVariant *transactions;
{},
};
- r = json_dispatch(stats, statistics_dispatch_table, NULL, JSON_LOG, &statistics);
+ r = json_dispatch(reply, statistics_dispatch_table, NULL, JSON_LOG, &statistics);
if (r < 0)
return r;
}
static int reset_statistics(int argc, char **argv, void *userdata) {
- JsonVariant *reply = NULL, *s = NULL;
+ JsonVariant *reply = NULL;
_cleanup_(varlink_unrefp) Varlink *vl = NULL;
int r;
if (r < 0)
return log_error_errno(r, "Failed to issue ResetStatistics() varlink call: %m");
- s = json_variant_by_key(reply, "success");
- if (!s)
- return log_error_errno(SYNTHETIC_ERRNO(ENOTRECOVERABLE),
- "ResetStatistics() response is missing 'success' key.");
-
if (!FLAGS_SET(arg_json_format_flags, JSON_FORMAT_OFF))
return json_variant_dump(reply, arg_json_format_flags, NULL, NULL);
const char *verified_feature_level;
const char *possible_feature_level;
const char *dnssec_mode;
- bool can_do_dnssec;
+ bool dnssec_supported;
size_t received_udp_fragment_max;
uint64_t n_failed_udp;
uint64_t n_failed_tcp;
int r;
static const JsonDispatch dispatch_table[] = {
- { "server", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(struct server_state, server_name), JSON_MANDATORY },
- { "type", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(struct server_state, type), JSON_MANDATORY },
- { "interface", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(struct server_state, ifname), 0 },
- { "verifiedFeatureLevel", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(struct server_state, verified_feature_level), 0 },
- { "possibleFeatureLevel", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(struct server_state, possible_feature_level), 0 },
- { "dnssecMode", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(struct server_state, dnssec_mode), JSON_MANDATORY },
- { "canDoDNSSEC", JSON_VARIANT_BOOLEAN, json_dispatch_boolean, offsetof(struct server_state, can_do_dnssec), JSON_MANDATORY },
- { "maxUDPFragmentSize", JSON_VARIANT_UNSIGNED, json_dispatch_uint64, offsetof(struct server_state, received_udp_fragment_max), JSON_MANDATORY },
- { "failedUDPAttempts", JSON_VARIANT_UNSIGNED, json_dispatch_uint64, offsetof(struct server_state, n_failed_udp), JSON_MANDATORY },
- { "failedTCPAttempts", JSON_VARIANT_UNSIGNED, json_dispatch_uint64, offsetof(struct server_state, n_failed_tcp), JSON_MANDATORY },
- { "seenTruncatedPacket", JSON_VARIANT_BOOLEAN, json_dispatch_boolean, offsetof(struct server_state, packet_truncated), JSON_MANDATORY },
- { "seenOPTRRGettingLost", JSON_VARIANT_BOOLEAN, json_dispatch_boolean, offsetof(struct server_state, packet_bad_opt), JSON_MANDATORY },
- { "seenRRSIGRRMissing", JSON_VARIANT_BOOLEAN, json_dispatch_boolean, offsetof(struct server_state, packet_rrsig_missing), JSON_MANDATORY },
- { "seenInvalidPacket", JSON_VARIANT_BOOLEAN, json_dispatch_boolean, offsetof(struct server_state, packet_invalid), JSON_MANDATORY },
- { "serverDroppedDOFlag", JSON_VARIANT_BOOLEAN, json_dispatch_boolean, offsetof(struct server_state, packet_do_off), JSON_MANDATORY },
+ { "Server", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(struct server_state, server_name), JSON_MANDATORY },
+ { "Type", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(struct server_state, type), JSON_MANDATORY },
+ { "Interface", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(struct server_state, ifname), 0 },
+ { "VerifiedFeatureLevel", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(struct server_state, verified_feature_level), 0 },
+ { "PossibleFeatureLevel", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(struct server_state, possible_feature_level), 0 },
+ { "DNSSECMode", JSON_VARIANT_STRING, json_dispatch_const_string, offsetof(struct server_state, dnssec_mode), JSON_MANDATORY },
+ { "DNSSECSupported", JSON_VARIANT_BOOLEAN, json_dispatch_boolean, offsetof(struct server_state, dnssec_supported), JSON_MANDATORY },
+ { "ReceivedUDPFragmentMax", JSON_VARIANT_UNSIGNED, json_dispatch_uint64, offsetof(struct server_state, received_udp_fragment_max), JSON_MANDATORY },
+ { "FailedUDPAttempts", JSON_VARIANT_UNSIGNED, json_dispatch_uint64, offsetof(struct server_state, n_failed_udp), JSON_MANDATORY },
+ { "FailedTCPAttempts", JSON_VARIANT_UNSIGNED, json_dispatch_uint64, offsetof(struct server_state, n_failed_tcp), JSON_MANDATORY },
+ { "PacketTruncated", JSON_VARIANT_BOOLEAN, json_dispatch_boolean, offsetof(struct server_state, packet_truncated), JSON_MANDATORY },
+ { "PacketBadOpt", JSON_VARIANT_BOOLEAN, json_dispatch_boolean, offsetof(struct server_state, packet_bad_opt), JSON_MANDATORY },
+ { "PacketRRSIGMissing", JSON_VARIANT_BOOLEAN, json_dispatch_boolean, offsetof(struct server_state, packet_rrsig_missing), JSON_MANDATORY },
+ { "PacketInvalid", JSON_VARIANT_BOOLEAN, json_dispatch_boolean, offsetof(struct server_state, packet_invalid), JSON_MANDATORY },
+ { "PacketDoOff", JSON_VARIANT_BOOLEAN, json_dispatch_boolean, offsetof(struct server_state, packet_do_off), JSON_MANDATORY },
{},
};
r = table_add_many(table,
TABLE_FIELD, "DNSSEC Mode",
TABLE_STRING, server_state.dnssec_mode,
- TABLE_FIELD, "Can do DNSSEC",
- TABLE_STRING, yes_no(server_state.can_do_dnssec),
+ TABLE_FIELD, "DNSSEC Supported",
+ TABLE_STRING, yes_no(server_state.dnssec_supported),
TABLE_FIELD, "Maximum UDP fragment size received",
TABLE_UINT64, server_state.received_udp_fragment_max,
TABLE_FIELD, "Failed UDP attempts",
return json_build(ret,
JSON_BUILD_OBJECT(
- JSON_BUILD_PAIR_STRING("server", strna(dns_server_string_full(server))),
- JSON_BUILD_PAIR_STRING("type", strna(dns_server_type_to_string(server->type))),
- JSON_BUILD_PAIR_CONDITION(server->type == DNS_SERVER_LINK, "interface", JSON_BUILD_STRING(server->link ? server->link->ifname : NULL)),
- JSON_BUILD_PAIR_STRING("verifiedFeatureLevel", strna(dns_server_feature_level_to_string(server->verified_feature_level))),
- JSON_BUILD_PAIR_STRING("possibleFeatureLevel", strna(dns_server_feature_level_to_string(server->possible_feature_level))),
- JSON_BUILD_PAIR_STRING("dnssecMode", strna(dnssec_mode_to_string(dns_server_get_dnssec_mode(server)))),
- JSON_BUILD_PAIR_BOOLEAN("canDoDNSSEC", dns_server_dnssec_supported(server)),
- JSON_BUILD_PAIR_UNSIGNED("maxUDPFragmentSize", server->received_udp_fragment_max),
- JSON_BUILD_PAIR_UNSIGNED("failedUDPAttempts", server->n_failed_udp),
- JSON_BUILD_PAIR_UNSIGNED("failedTCPAttempts", server->n_failed_tcp),
- JSON_BUILD_PAIR_BOOLEAN("seenTruncatedPacket", server->packet_truncated),
- JSON_BUILD_PAIR_BOOLEAN("seenOPTRRGettingLost", server->packet_bad_opt),
- JSON_BUILD_PAIR_BOOLEAN("seenRRSIGRRMissing", server->packet_rrsig_missing),
- JSON_BUILD_PAIR_BOOLEAN("seenInvalidPacket", server->packet_invalid),
- JSON_BUILD_PAIR_BOOLEAN("serverDroppedDOFlag", server->packet_do_off)));
+ JSON_BUILD_PAIR_STRING("Server", strna(dns_server_string_full(server))),
+ JSON_BUILD_PAIR_STRING("Type", strna(dns_server_type_to_string(server->type))),
+ JSON_BUILD_PAIR_CONDITION(server->type == DNS_SERVER_LINK, "Interface", JSON_BUILD_STRING(server->link ? server->link->ifname : NULL)),
+ JSON_BUILD_PAIR_STRING("VerifiedFeatureLevel", strna(dns_server_feature_level_to_string(server->verified_feature_level))),
+ JSON_BUILD_PAIR_STRING("PossibleFeatureLevel", strna(dns_server_feature_level_to_string(server->possible_feature_level))),
+ JSON_BUILD_PAIR_STRING("DNSSECMode", strna(dnssec_mode_to_string(dns_server_get_dnssec_mode(server)))),
+ JSON_BUILD_PAIR_BOOLEAN("DNSSECSupported", dns_server_dnssec_supported(server)),
+ JSON_BUILD_PAIR_UNSIGNED("ReceivedUDPFragmentMax", server->received_udp_fragment_max),
+ JSON_BUILD_PAIR_UNSIGNED("FailedUDPAttempts", server->n_failed_udp),
+ JSON_BUILD_PAIR_UNSIGNED("FailedTCPAttempts", server->n_failed_tcp),
+ JSON_BUILD_PAIR_BOOLEAN("PacketTruncated", server->packet_truncated),
+ JSON_BUILD_PAIR_BOOLEAN("PacketBadOpt", server->packet_bad_opt),
+ JSON_BUILD_PAIR_BOOLEAN("PacketRRSIGMissing", server->packet_rrsig_missing),
+ JSON_BUILD_PAIR_BOOLEAN("PacketInvalid", server->packet_invalid),
+ JSON_BUILD_PAIR_BOOLEAN("PacketDoOff", server->packet_do_off)));
}