chiark / gitweb /
resolved: be a bit more communicative about conflicts
authorLennart Poettering <lennart@poettering.net>
Wed, 6 Aug 2014 15:21:00 +0000 (17:21 +0200)
committerLennart Poettering <lennart@poettering.net>
Mon, 11 Aug 2014 13:06:22 +0000 (15:06 +0200)
src/resolve/resolved-dns-transaction.c
src/resolve/resolved-dns-zone.c

index e76940e18ed82b0c86b0f685209a92c54a56672f..cf2987d1925cb4d922fc1e56f7e7e5e92a3ff240 100644 (file)
@@ -118,6 +118,7 @@ static void dns_transaction_stop(DnsTransaction *t) {
 }
 
 static void dns_transaction_tentative(DnsTransaction *t, DnsPacket *p) {
+        _cleanup_free_ char *pretty = NULL;
         DnsZoneItem *z;
         Iterator i;
 
@@ -127,10 +128,13 @@ static void dns_transaction_tentative(DnsTransaction *t, DnsPacket *p) {
         if (manager_our_packet(t->scope->manager, p) != 0)
                 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),
                   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
          * lexicographically smaller IP address loses */
index 5f250e7ca3989f51f6cbc3cb48888eca887b8efa..13b1b3c595a7f66c8990154356d30b9b83b4a8c6 100644 (file)
@@ -530,11 +530,14 @@ void dns_zone_item_ready(DnsZoneItem *i) {
                  * lexicographically smaller IP address we continue
                  * 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;
-                else {
+                else {
                         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;
+                        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) {
@@ -553,6 +556,7 @@ void dns_zone_item_ready(DnsZoneItem *i) {
 }
 
 static int dns_zone_item_verify(DnsZoneItem *i) {
+        _cleanup_free_ char *pretty = NULL;
         int r;
 
         assert(i);
@@ -560,6 +564,9 @@ static int dns_zone_item_verify(DnsZoneItem *i) {
         if (i->state != DNS_ZONE_ITEM_ESTABLISHED)
                 return 0;
 
+        dns_resource_record_to_string(i->rr, &pretty);
+        log_debug("Verifying RR %s", strna(pretty));
+
         i->state = DNS_ZONE_ITEM_VERIFYING;
         r = dns_zone_item_probe_start(i);
         if (r < 0) {