network: add dnr resolvers to networkctl status json output
This commit is contained in:
@@ -43,6 +43,8 @@ struct sd_dns_resolver {
|
||||
|
||||
void siphash24_compress_resolver(const sd_dns_resolver *res, struct siphash *state);
|
||||
|
||||
int dns_resolver_transports_to_strv(sd_dns_alpn_flags transports, char ***ret);
|
||||
|
||||
int dns_resolvers_to_dot_addrs(const sd_dns_resolver *resolvers, size_t n_resolvers,
|
||||
struct in_addr_full ***ret_addrs, size_t *ret_n_addrs);
|
||||
|
||||
|
||||
@@ -174,6 +174,32 @@ const char* format_dns_svc_param_key(uint16_t i, char buf[static DECIMAL_STR_MAX
|
||||
return snprintf_ok(buf, DECIMAL_STR_MAX(uint16_t)+3, "key%i", i);
|
||||
}
|
||||
|
||||
int dns_resolver_transports_to_strv(sd_dns_alpn_flags transports, char ***ret) {
|
||||
_cleanup_strv_free_ char **ans = NULL;
|
||||
|
||||
assert(ret);
|
||||
|
||||
if (FLAGS_SET(transports, SD_DNS_ALPN_DO53)) {
|
||||
/* Do53 has no ALPN, this flag is only for our own usage. */
|
||||
}
|
||||
|
||||
if (FLAGS_SET(transports, SD_DNS_ALPN_HTTP_2_TLS))
|
||||
if (strv_extend(&ans, "h2") < 0)
|
||||
return -ENOMEM;
|
||||
if (FLAGS_SET(transports, SD_DNS_ALPN_HTTP_3))
|
||||
if (strv_extend(&ans, "h3") < 0)
|
||||
return -ENOMEM;
|
||||
if (FLAGS_SET(transports, SD_DNS_ALPN_DOT))
|
||||
if (strv_extend(&ans, "dot") < 0)
|
||||
return -ENOMEM;
|
||||
if (FLAGS_SET(transports, SD_DNS_ALPN_DOQ))
|
||||
if (strv_extend(&ans, "doq") < 0)
|
||||
return -ENOMEM;
|
||||
|
||||
*ret = TAKE_PTR(ans);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int dnr_parse_svc_params(const uint8_t *option, size_t len, sd_dns_resolver *resolver) {
|
||||
size_t offset = 0;
|
||||
int r;
|
||||
|
||||
Reference in New Issue
Block a user