74 lines
1.7 KiB
Cython
74 lines
1.7 KiB
Cython
import cython
|
|
|
|
from ._dns cimport (
|
|
DNSAddress,
|
|
DNSEntry,
|
|
DNSHinfo,
|
|
DNSNsec,
|
|
DNSPointer,
|
|
DNSRecord,
|
|
DNSService,
|
|
DNSText,
|
|
)
|
|
|
|
|
|
cdef object _UNIQUE_RECORD_TYPES
|
|
cdef object _TYPE_PTR
|
|
cdef cython.uint _ONE_SECOND
|
|
|
|
cdef _remove_key(cython.dict cache, object key, DNSRecord record)
|
|
|
|
|
|
cdef class DNSCache:
|
|
|
|
cdef public cython.dict cache
|
|
cdef public cython.dict service_cache
|
|
|
|
cpdef bint async_add_records(self, object entries)
|
|
|
|
cpdef void async_remove_records(self, object entries)
|
|
|
|
@cython.locals(
|
|
store=cython.dict,
|
|
)
|
|
cpdef DNSRecord async_get_unique(self, DNSRecord entry)
|
|
|
|
@cython.locals(
|
|
record=DNSRecord,
|
|
)
|
|
cpdef list async_expire(self, double now)
|
|
|
|
@cython.locals(
|
|
records=cython.dict,
|
|
record=DNSRecord,
|
|
)
|
|
cpdef list async_all_by_details(self, str name, object type_, object class_)
|
|
|
|
cpdef cython.dict async_entries_with_name(self, str name)
|
|
|
|
cpdef cython.dict async_entries_with_server(self, str name)
|
|
|
|
@cython.locals(
|
|
cached_entry=DNSRecord,
|
|
)
|
|
cpdef DNSRecord get_by_details(self, str name, object type_, object class_)
|
|
|
|
@cython.locals(
|
|
records=cython.dict,
|
|
entry=DNSRecord,
|
|
)
|
|
cpdef cython.list get_all_by_details(self, str name, object type_, object class_)
|
|
|
|
@cython.locals(
|
|
store=cython.dict,
|
|
)
|
|
cdef bint _async_add(self, DNSRecord record)
|
|
|
|
cdef void _async_remove(self, DNSRecord record)
|
|
|
|
@cython.locals(
|
|
record=DNSRecord,
|
|
created_double=double,
|
|
)
|
|
cpdef void async_mark_unique_records_older_than_1s_to_expire(self, cython.set unique_types, object answers, double now)
|