summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2014-08-10 22:48:16 +0200
committerLennart Poettering <lennart@poettering.net>2014-08-11 15:06:22 +0200
commit4d91eec42d3ba547c4e2578df0d6fd568075647b (patch)
tree0017e196985a4d20a0d0d587314ad7b926233589
parent3ef64445cdf12d7703aa79b39f3c170037d587c7 (diff)
resolved: actually, the peer with the lower IP address wins conflicts
-rw-r--r--src/resolve/resolved-dns-transaction.c6
-rw-r--r--src/resolve/resolved-dns-zone.c6
2 files changed, 6 insertions, 6 deletions
diff --git a/src/resolve/resolved-dns-transaction.c b/src/resolve/resolved-dns-transaction.c
index dfed74dc91..990b1f2e43 100644
--- a/src/resolve/resolved-dns-transaction.c
+++ b/src/resolve/resolved-dns-transaction.c
@@ -137,12 +137,12 @@ static void dns_transaction_tentative(DnsTransaction *t, DnsPacket *p) {
/* RFC 4795, Section 4.1 says that the peer with the
* lexicographically smaller IP address loses */
- if (memcmp(&p->sender, &p->destination, FAMILY_ADDRESS_SIZE(p->family)) < 0) {
- log_debug("Peer has lexicographically smaller IP address and thus lost in the conflict.");
+ if (memcmp(&p->sender, &p->destination, FAMILY_ADDRESS_SIZE(p->family)) >= 0) {
+ log_debug("Peer has lexicographically larger IP address and thus lost in the conflict.");
return;
}
- log_debug("We have the lexicographically smaller IP address and thus lost in the conflict.");
+ log_debug("We have the lexicographically larger IP address and thus lost in the conflict.");
t->block_gc++;
while ((z = set_first(t->zone_items))) {
diff --git a/src/resolve/resolved-dns-zone.c b/src/resolve/resolved-dns-zone.c
index ebbd1e2bf1..370ecefd79 100644
--- a/src/resolve/resolved-dns-zone.c
+++ b/src/resolve/resolved-dns-zone.c
@@ -527,7 +527,7 @@ void dns_zone_item_ready(DnsZoneItem *i) {
/* The probe got a successful reply. If we so far
* weren't established we just give up. If we already
* were established, and the peer has the
- * lexicographically smaller IP address we continue
+ * lexicographically larger IP address we continue
* and defend it. */
if (!IN_SET(i->state, DNS_ZONE_ITEM_ESTABLISHED, DNS_ZONE_ITEM_VERIFYING)) {
@@ -535,9 +535,9 @@ void dns_zone_item_ready(DnsZoneItem *i) {
we_lost = true;
} 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;
+ 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.");
+ log_debug("Got a successful probe reply for an established RR, and we have a lexicographically larger IP address and thus lost.");
}
if (we_lost) {