Efficient node data storage, libknot refactoring
Changes:
-
new file rr.h:
- contains functions and structures that work with RRs or RR arrays.
- this enables us to have RRSet-like functionality inside
node_t
-
node no longer stores
knot_rrset_t
, but only structure containing type, data and additional nodes. -
RRSet API cleaned up a lot:
-
RRSet is now an entrypoint into zone structure
-
It is no longer possible to create RRSet that is not sorted or one that contains duplicates
-
Obsolete getter functions removed
-
Node and zone contents API cleaned up
-
DDNS rewritten to changeset creation only.
-
Still far from perfect, but this is the best I can do without new zone API
-
Over-complicated prereq check rewritten too
-
Changeset application greatly simplified, no need to explicitly handle changes anymore
-
Application now preserves the changeset structure, everything is copied
-
We could probably simplify the code a lot because of this at many places