Skip to content

Commit 34a2223

Browse files
lionheartyubluca
authored andcommitted
dns-rr: fix SOA JSON fields
Signed-off-by: dongshengyuan <dongshengyuan@uniontech.com>
1 parent da9a330 commit 34a2223

3 files changed

Lines changed: 27 additions & 1 deletion

File tree

src/resolve/test-dns-rr.c

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2240,6 +2240,30 @@ TEST(dns_resource_record_to_string_soa) {
22402240
ASSERT_STREQ(str, "www.example.com IN SOA ns0.example.com ns0.example.com 1111111111 86400 7200 4000000 3600");
22412241
}
22422242

2243+
TEST(dns_resource_record_to_json_soa) {
2244+
_cleanup_(dns_resource_record_unrefp) DnsResourceRecord *rr = NULL;
2245+
_cleanup_(sd_json_variant_unrefp) sd_json_variant *j = NULL;
2246+
2247+
rr = dns_resource_record_new_full(DNS_CLASS_IN, DNS_TYPE_SOA, "www.example.com");
2248+
ASSERT_NOT_NULL(rr);
2249+
rr->soa.mname = strdup("ns0.example.com");
2250+
rr->soa.rname = strdup("hostmaster.example.com");
2251+
rr->soa.serial = 1111111111;
2252+
rr->soa.refresh = 86400;
2253+
rr->soa.retry = 7200;
2254+
rr->soa.expire = 4000000;
2255+
rr->soa.minimum = 3600;
2256+
2257+
ASSERT_OK(dns_resource_record_to_json(rr, &j));
2258+
ASSERT_STREQ(sd_json_variant_string(sd_json_variant_by_key(j, "mname")), "ns0.example.com");
2259+
ASSERT_STREQ(sd_json_variant_string(sd_json_variant_by_key(j, "rname")), "hostmaster.example.com");
2260+
ASSERT_EQ(sd_json_variant_unsigned(sd_json_variant_by_key(j, "serial")), UINT64_C(1111111111));
2261+
ASSERT_EQ(sd_json_variant_unsigned(sd_json_variant_by_key(j, "refresh")), UINT64_C(86400));
2262+
ASSERT_EQ(sd_json_variant_unsigned(sd_json_variant_by_key(j, "retry")), UINT64_C(7200));
2263+
ASSERT_EQ(sd_json_variant_unsigned(sd_json_variant_by_key(j, "expire")), UINT64_C(4000000));
2264+
ASSERT_EQ(sd_json_variant_unsigned(sd_json_variant_by_key(j, "minimum")), UINT64_C(3600));
2265+
}
2266+
22432267
TEST(dns_resource_record_to_string_ptr) {
22442268
_cleanup_(dns_resource_record_unrefp) DnsResourceRecord *rr = NULL;
22452269
const char *str;

src/shared/dns-rr.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2374,7 +2374,8 @@ int dns_resource_record_to_json(DnsResourceRecord *rr, sd_json_variant **ret) {
23742374
SD_JSON_BUILD_PAIR_STRING("rname", rr->soa.rname),
23752375
SD_JSON_BUILD_PAIR_UNSIGNED("serial", rr->soa.serial),
23762376
SD_JSON_BUILD_PAIR_UNSIGNED("refresh", rr->soa.refresh),
2377-
SD_JSON_BUILD_PAIR_UNSIGNED("expire", rr->soa.retry),
2377+
SD_JSON_BUILD_PAIR_UNSIGNED("retry", rr->soa.retry),
2378+
SD_JSON_BUILD_PAIR_UNSIGNED("expire", rr->soa.expire),
23782379
SD_JSON_BUILD_PAIR_UNSIGNED("minimum", rr->soa.minimum));
23792380

23802381
case DNS_TYPE_MX:

src/shared/varlink-io.systemd.Resolve.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ SD_VARLINK_DEFINE_STRUCT_TYPE(
6767
SD_VARLINK_DEFINE_FIELD(rname, SD_VARLINK_STRING, SD_VARLINK_NULLABLE),
6868
SD_VARLINK_DEFINE_FIELD(serial, SD_VARLINK_INT, SD_VARLINK_NULLABLE),
6969
SD_VARLINK_DEFINE_FIELD(refresh, SD_VARLINK_INT, SD_VARLINK_NULLABLE),
70+
SD_VARLINK_DEFINE_FIELD(retry, SD_VARLINK_INT, SD_VARLINK_NULLABLE),
7071
SD_VARLINK_DEFINE_FIELD(expire, SD_VARLINK_INT, SD_VARLINK_NULLABLE),
7172
SD_VARLINK_DEFINE_FIELD(minimum, SD_VARLINK_INT, SD_VARLINK_NULLABLE),
7273
SD_VARLINK_DEFINE_FIELD(exchange, SD_VARLINK_STRING, SD_VARLINK_NULLABLE),

0 commit comments

Comments
 (0)