| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -6,12 +6,11 @@ from .._dns cimport DNSQuestion, DNSRecord | |||
| 6 | 6 | from .._protocol.incoming cimport DNSIncoming | |
| 7 | 7 | from .._updates cimport RecordUpdateListener | |
| 8 | 8 | from .._utils.time cimport current_time_millis | |
| 9 | - | ||
| 9 | + from .._record_update cimport RecordUpdate | ||
| 10 | 10 | ||
| 11 | 11 | cdef cython.float _DNS_PTR_MIN_TTL | |
| 12 | 12 | cdef cython.uint _TYPE_PTR | |
| 13 | 13 | cdef object _ADDRESS_RECORD_TYPES | |
| 14 | - cdef object RecordUpdate | ||
| 15 | 14 | cdef bint TYPE_CHECKING | |
| 16 | 15 | cdef object _TYPE_PTR | |
| 17 | 16 | ||
@@ -31,6 +30,7 @@ cdef class RecordManager: | |||
| 31 | 30 | record=DNSRecord, | |
| 32 | 31 | answers=cython.list, | |
| 33 | 32 | maybe_entry=DNSRecord, | |
| 33 | + rec_update=RecordUpdate | ||
| 34 | 34 | ) | |
| 35 | 35 | cpdef void async_updates_from_response(self, DNSIncoming msg) | |
| 36 | 36 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -120,11 +120,15 @@ def async_updates_from_response(self, msg: DNSIncoming) -> None: | |||
| 120 | 120 | address_adds.append(record) | |
| 121 | 121 | else: | |
| 122 | 122 | other_adds.append(record) | |
| 123 | - updates.append(RecordUpdate(record, maybe_entry)) | ||
| 123 | + rec_update = RecordUpdate.__new__(RecordUpdate) | ||
| 124 | + rec_update._fast_init(record, maybe_entry) | ||
| 125 | + updates.append(rec_update) | ||
| 124 | 126 | # This is likely a goodbye since the record is | |
| 125 | 127 | # expired and exists in the cache | |
| 126 | 128 | elif maybe_entry is not None: | |
| 127 | - updates.append(RecordUpdate(record, maybe_entry)) | ||
| 129 | + rec_update = RecordUpdate.__new__(RecordUpdate) | ||
| 130 | + rec_update._fast_init(record, maybe_entry) | ||
| 131 | + updates.append(rec_update) | ||
| 128 | 132 | removes.add(record) | |
| 129 | 133 | ||
| 130 | 134 | if unique_types: | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -8,3 +8,5 @@ cdef class RecordUpdate: | |||
| 8 | 8 | ||
| 9 | 9 | cdef public DNSRecord new | |
| 10 | 10 | cdef public DNSRecord old | |
| 11 | + | ||
| 12 | + cdef void _fast_init(self, object new, object old) | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -24,12 +24,18 @@ | |||
| 24 | 24 | ||
| 25 | 25 | from ._dns import DNSRecord | |
| 26 | 26 | ||
| 27 | + _DNSRecord = DNSRecord | ||
| 28 | + | ||
| 27 | 29 | ||
| 28 | 30 | class RecordUpdate: | |
| 29 | 31 | __slots__ = ("new", "old") | |
| 30 | 32 | ||
| 31 | - def __init__(self, new: DNSRecord, old: Optional[DNSRecord] = None): | ||
| 33 | + def __init__(self, new: DNSRecord, old: Optional[DNSRecord] = None) -> None: | ||
| 32 | 34 | """RecordUpdate represents a change in a DNS record.""" | |
| 35 | + self._fast_init(new, old) | ||
| 36 | + | ||
| 37 | + def _fast_init(self, new: _DNSRecord, old: Optional[_DNSRecord]) -> None: | ||
| 38 | + """Fast init for RecordUpdate.""" | ||
| 33 | 39 | self.new = new | |
| 34 | 40 | self.old = old | |
| 35 | 41 | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments