|
|
TODO
The following is mostly an internal, not user-visible stuff.
* rearrange an API to make dns_query object owned by application, so that it'll look like this: struct dns_query *q; q = dns_query_alloc(ctx); dns_query_set(q, options, domain_name, flags, ...); dns_query_submit(ctx, q); For more information see NOTES file, section "Planned API changes".
* allow NULL callbacks? Or provide separate resolver context list of queries which are done but wich did not have callback, and dns_pick() routine to retrieve results from this query, i.e. allow non-callback usage? The non-callback usage may be handy sometimes (any *good* example?), but it will be difficult to provide type-safe non-callback interface due to various RR-specific types in use.
* DNS_OPT_FLAGS should be DNS_OPT_ADDFLAGS and DNS_OPT_SETFLAGS. Currently one can't add a single flag bit but preserve existing bits... at least not without retrieving all current flags before, which isn't that bad anyway.
* dns_set_opts() may process flags too (such as aaonly etc)
* a way to disable $NSCACHEIP et al processing? (with now separate dns_init() and dns_reset(), it has finer control, but still no way to init from system files but ignore environment variables and the like)
* initialize/open the context automatically, and be more liberal about initialization in general?
* dns_init(ctx, do_open) - make the parameter opposite, aka dns_init(ctx, skip_open) ?
* allow TCP queue?
* more accurate error reporting. Currently, udns always returns TEMPFAIL, but don't specify why it happened (ENOMEM, timeout, etc).
* check the error value returned by recvfrom() and sendto() and determine which errors to ignore.
* maybe merge dns_timeouts() and dns_ioevent(), to have only one entry point for everything? For traditional select-loop-based eventloop it may be easier, but for callback-driven event loops the two should be separate. Provide an option, or a single dns_events() entry point for select-loop approach, or just call dns_ioevent() from within dns_timeouts() (probably after renaming it to be dns_events()) ?
* implement /etc/hosts lookup too, ala [c-]ares??
* sortlist support?
|