-
Notifications
You must be signed in to change notification settings - Fork 9
/
TODO
68 lines (61 loc) · 3.12 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
Urgent stuff
* merge with the new version of aht
* randomize the aht hash function -- upgrade aht itself, it is generally
useful.
* Modify the brain-dead algorithm that removes the last accessed entry
with a simpler algorithm that just drops a random entry.
* CNAME RR
- Check better the return code of ht_add_generic and others ht_* functions
expecially add assert()ions when you feel this functions can return only
a range of value.
- AXFR ACLs per-zone
- Clear the AA bit from forwarded responses and cached ones
- The control interface, unix domain sockets
- name encode/decode: versions without dyn allocation
- Check the effect of entry removing: removing some duplicated
entry (for example with id 0) will be impossible to lookup
for an entry with the same name/type/class with an id of 1,2,...
- Out of memory issue
- CNAME
- HINFO
- name compression for outgoing packets
- SOA minimum issue
- Query with the recursion required not set
- Many things to fix about the protocol, truncation, TTLs, ..., see the RFC2181
* the responses should be generated using the same IP address
in the dest address field of the query sent by the client.
* RRs with the same label (name/qclass/qtype) and the same
data SHOULD be suppressed, only one considered.
* In an RRSet all the TTLs MUST be the same.
* RRSet with different TTL should not be accepted in a response:
if they comes from an authoritative source the software
should use for the whole set the minimum TTL. If the source
ins't authoritative the response should be discarded and
the authoritative servers contacted.
* Servers MUST never merge RRs from a response with RRs in
the cache to form a response.
* TTLs received greater than 2^31-1 should be considered
as zero.
--- continue with the section 10 of the RFC ---
DONE: * Truncation: the TC bit should be set only when the RRSet needed
for the reply don't fit the protocol limit. It should not be
set when _extra_ informations can't be included. When the additional
information can't be inserted the entire RR that can't fit
the left space shound NOT be excluded from the response. Otherwise
when TC bit is set the not complete RR of the RRSet can be
left in the response. When a client receive a respose with the
TC bit set should retry to query the server under the TCP
DONE: DNS over TCP should also be able to reply to SOA RR requests.
Usually the refresh starts asking for the SOA RR, than asking for
the AXFR.
--------------------------------------------------------------------------
Less urgent stuff
- Clean-up the config refresh code.
- Change query and query_section to question_* when appropriate
- Move protocol related stuff to udp.c and tcp.c
- After the fork the TCP handler should close all the unneedded filedes
- The forwarding code should check for forward entry in timeout
_after_ the incoming packet processing? Otherwise the response that
may cause the forward entry clean-up is considered only after that
the DNS server tryed to ask the same query to the next forwarder.
- Use alloca() instead of malloc() when possible.