Subpages
Current problems
- API suggests that it can add to sections out-of-order, but it can't (*_add_rrset always puts rrset to current section, whatever it is)
- Some parts of code use knot_packet_t, some raw wire this leads to multiple implementation of the same thing
- Packet parsing is mixed with interpretation (f.e. parsing packet during transfer)
- Each major feature implements its own packet parsing, rrset writing, response creating
- This leads to a ctrl+c/+v code that is hard to refactor
- Packet checks are slightly different every time, sometime things are checked sometimes not
- Packet is built (sometimes) and then copied to the output wire while it could be done in-place
- Duplicated functionality with knot_wire_* and unclear purpose of the knot_response* and knot_query* functions.
- rrsets pointers in packet are separated, this triples any refactoring
- packet compression is done via two different structures and strangely so
Proposed services
The merge request !147 (merged) is more up-to-date.
Knot library should provide following vertically integrated APIs:
- wire API (working with flags, compression pointers, byteorder conversions...)
- packet API (create, parse/write qname and rrsets, sections...)
- name compression API
- edns API
- tsig API
- processing API (building blocks for queries and answers)
- regular query processing
- notify processing
- axfr/ixfr processing
- ddns processing