| 1 |
$Id: TODO,v 1.13 2007/01/15 21:19:08 mjt Exp $ |
|---|
| 2 |
|
|---|
| 3 |
The following is mostly an internal, not user-visible stuff. |
|---|
| 4 |
|
|---|
| 5 |
* rearrange an API to make dns_query object owned by application, |
|---|
| 6 |
so that it'll look like this: |
|---|
| 7 |
struct dns_query *q; |
|---|
| 8 |
q = udns_query_alloc(ctx); |
|---|
| 9 |
udns_query_set(q, options, domain_name, flags, ...); |
|---|
| 10 |
udns_query_submit(ctx, q); |
|---|
| 11 |
or |
|---|
| 12 |
udns_query_resolve(ctx, q); |
|---|
| 13 |
|
|---|
| 14 |
* allow NULL callbacks? Or provide separate resolver |
|---|
| 15 |
context list of queries which are done but wich did not |
|---|
| 16 |
have callback, and dns_pick() routine to retrieve results |
|---|
| 17 |
from this query, i.e. allow non-callback usage? The |
|---|
| 18 |
non-callback usage may be handy sometimes (any *good* |
|---|
| 19 |
example?), but it will be difficult to provide type-safe |
|---|
| 20 |
non-callback interface due to various RR-specific types |
|---|
| 21 |
in use. |
|---|
| 22 |
|
|---|
| 23 |
* DNS_OPT_FLAGS should be DNS_OPT_ADDFLAGS and DNS_OPT_SETFLAGS. |
|---|
| 24 |
Currently one can't add a single flag bit but preserve |
|---|
| 25 |
existing bits... at least not without retrieving all current |
|---|
| 26 |
flags before, which isn't that bad anyway. |
|---|
| 27 |
|
|---|
| 28 |
* dns_set_opts() may process flags too (such as aaonly etc) |
|---|
| 29 |
|
|---|
| 30 |
* a way to disable $NSCACHEIP et al processing? |
|---|
| 31 |
(with now separate dns_init() and dns_reset(), it has finer |
|---|
| 32 |
control, but still no way to init from system files but ignore |
|---|
| 33 |
environment variables and the like) |
|---|
| 34 |
|
|---|
| 35 |
* initialize/open the context automatically, and be more |
|---|
| 36 |
liberal about initialization in general? |
|---|
| 37 |
|
|---|
| 38 |
* dns_init(ctx, do_open) - make the parameter opposite, aka |
|---|
| 39 |
dns_init(ctx, skip_open) ? |
|---|
| 40 |
|
|---|
| 41 |
* allow TCP queue? |
|---|
| 42 |
|
|---|
| 43 |
* And oh, qID should really be random. Or... not. |
|---|
| 44 |
See notes in udns_resolver.c, dns_newid(). |
|---|
| 45 |
|
|---|
| 46 |
* more accurate error reporting. Currently, udns always returns TEMPFAIL, |
|---|
| 47 |
but don't specify why it happened (ENOMEM, timeout, etc). |
|---|
| 48 |
|
|---|
| 49 |
* check the error value returned by recvfrom() and |
|---|
| 50 |
sendto() and determine which errors to ignore. |
|---|
| 51 |
|
|---|
| 52 |
* maybe merge dns_timeouts() and dns_ioevent(), to have |
|---|
| 53 |
only one entry point for everything? For traditional |
|---|
| 54 |
select-loop-based eventloop it may be easier, but for |
|---|
| 55 |
callback-driven event loops the two should be separate. |
|---|
| 56 |
Provide an option, or a single dns_events() entry point |
|---|
| 57 |
for select-loop approach, or just call dns_ioevent() |
|---|
| 58 |
from within dns_timeouts() (probably after renaming |
|---|
| 59 |
it to be dns_events()) ? |
|---|
| 60 |
|
|---|
| 61 |
* implement /etc/hosts lookup too, ala [c-]ares?? |
|---|
| 62 |
|
|---|
| 63 |
* sortlist support? |
|---|
| 64 |
|
|---|
| 65 |
* windows port? Oh no please!.. At least, I can't do it myself |
|---|
| 66 |
because of the lack of platform. |
|---|
| 67 |
Ok ok, the Windows port is in progress. Christian Prahauser |
|---|
| 68 |
from cosy.sbg.ac.at is helping with that. |
|---|
| 69 |
Other folks done some more work in this area. |
|---|