Skip to content

Commit 8101b55

Browse files
emontnemeryjstasiak
authored andcommitted
Add new records first in cache entry instead of last (python-zeroconf#110)
* Add new records first in cache entry instead of last * Added DNSCache unit test
1 parent d0e4712 commit 8101b55

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

test_zeroconf.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -497,6 +497,19 @@ def test_incoming_ipv6(self):
497497
pass
498498

499499

500+
class TestDNSCache(unittest.TestCase):
501+
502+
def test_order(self):
503+
record1 = r.DNSAddress('a', r._TYPE_SOA, r._CLASS_IN, 1, b'a')
504+
record2 = r.DNSAddress('a', r._TYPE_SOA, r._CLASS_IN, 1, b'b')
505+
cache = r.DNSCache()
506+
cache.add(record1)
507+
cache.add(record2)
508+
entry = r.DNSEntry('a', r._TYPE_SOA, r._CLASS_IN)
509+
cached_record = cache.get(entry)
510+
self.assertEqual(cached_record, record2)
511+
512+
500513
class ServiceTypesQuery(unittest.TestCase):
501514

502515
def test_integration_with_listener(self):

zeroconf.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1014,7 +1014,8 @@ def __init__(self):
10141014

10151015
def add(self, entry):
10161016
"""Adds an entry"""
1017-
self.cache.setdefault(entry.key, []).append(entry)
1017+
# Insert first in list so get returns newest entry
1018+
self.cache.setdefault(entry.key, []).insert(0, entry)
10181019

10191020
def remove(self, entry):
10201021
"""Removes an entry"""

0 commit comments

Comments
 (0)