resolved: be a bit more communicative about conflicts
This commit is contained in:
parent
c02091d23b
commit
2fb3034cb2
|
@ -118,6 +118,7 @@ static void dns_transaction_stop(DnsTransaction *t) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static void dns_transaction_tentative(DnsTransaction *t, DnsPacket *p) {
|
static void dns_transaction_tentative(DnsTransaction *t, DnsPacket *p) {
|
||||||
|
_cleanup_free_ char *pretty = NULL;
|
||||||
DnsZoneItem *z;
|
DnsZoneItem *z;
|
||||||
Iterator i;
|
Iterator i;
|
||||||
|
|
||||||
|
@ -127,10 +128,13 @@ static void dns_transaction_tentative(DnsTransaction *t, DnsPacket *p) {
|
||||||
if (manager_our_packet(t->scope->manager, p) != 0)
|
if (manager_our_packet(t->scope->manager, p) != 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
log_debug("Transaction on scope %s on %s/%s got tentative packet",
|
in_addr_to_string(p->family, &p->sender, &pretty);
|
||||||
|
|
||||||
|
log_debug("Transaction on scope %s on %s/%s got tentative packet from %s",
|
||||||
dns_protocol_to_string(t->scope->protocol),
|
dns_protocol_to_string(t->scope->protocol),
|
||||||
t->scope->link ? t->scope->link->name : "*",
|
t->scope->link ? t->scope->link->name : "*",
|
||||||
t->scope->family == AF_UNSPEC ? "*" : af_to_name(t->scope->family));
|
t->scope->family == AF_UNSPEC ? "*" : af_to_name(t->scope->family),
|
||||||
|
pretty);
|
||||||
|
|
||||||
/* RFC 4795, Section 4.1 says that the peer with the
|
/* RFC 4795, Section 4.1 says that the peer with the
|
||||||
* lexicographically smaller IP address loses */
|
* lexicographically smaller IP address loses */
|
||||||
|
|
|
@ -530,11 +530,14 @@ void dns_zone_item_ready(DnsZoneItem *i) {
|
||||||
* lexicographically smaller IP address we continue
|
* lexicographically smaller IP address we continue
|
||||||
* and defend it. */
|
* and defend it. */
|
||||||
|
|
||||||
if (!IN_SET(i->state, DNS_ZONE_ITEM_ESTABLISHED, DNS_ZONE_ITEM_VERIFYING))
|
if (!IN_SET(i->state, DNS_ZONE_ITEM_ESTABLISHED, DNS_ZONE_ITEM_VERIFYING)) {
|
||||||
|
log_debug("Got a successful probe for not yet established RR, we lost.");
|
||||||
we_lost = true;
|
we_lost = true;
|
||||||
else {
|
} else {
|
||||||
assert(i->probe_transaction->received);
|
assert(i->probe_transaction->received);
|
||||||
we_lost = memcmp(&i->probe_transaction->received->sender, &i->probe_transaction->received->destination, FAMILY_ADDRESS_SIZE(i->probe_transaction->received->family)) > 0;
|
we_lost = memcmp(&i->probe_transaction->received->sender, &i->probe_transaction->received->destination, FAMILY_ADDRESS_SIZE(i->probe_transaction->received->family)) > 0;
|
||||||
|
if (we_lost)
|
||||||
|
log_debug("Got a successful probe reply for an established RR, and we have a lexicographically lower IP address and thus lost.");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (we_lost) {
|
if (we_lost) {
|
||||||
|
@ -553,6 +556,7 @@ void dns_zone_item_ready(DnsZoneItem *i) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static int dns_zone_item_verify(DnsZoneItem *i) {
|
static int dns_zone_item_verify(DnsZoneItem *i) {
|
||||||
|
_cleanup_free_ char *pretty = NULL;
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
assert(i);
|
assert(i);
|
||||||
|
@ -560,6 +564,9 @@ static int dns_zone_item_verify(DnsZoneItem *i) {
|
||||||
if (i->state != DNS_ZONE_ITEM_ESTABLISHED)
|
if (i->state != DNS_ZONE_ITEM_ESTABLISHED)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
dns_resource_record_to_string(i->rr, &pretty);
|
||||||
|
log_debug("Verifying RR %s", strna(pretty));
|
||||||
|
|
||||||
i->state = DNS_ZONE_ITEM_VERIFYING;
|
i->state = DNS_ZONE_ITEM_VERIFYING;
|
||||||
r = dns_zone_item_probe_start(i);
|
r = dns_zone_item_probe_start(i);
|
||||||
if (r < 0) {
|
if (r < 0) {
|
||||||
|
|
Loading…
Reference in New Issue