libtorch: an asynchronous dns resolver library



hi all-

for a month or so I have been working on an asynchronous DNS resolver
library for GNOME (and any other application using the glib main loop),
which I call libtorch.  Currently code can be retrieved from svn here:

https://svn.syntaxjockey.com/repos/libtorch/trunk/

For resolving a domain name to network address, usage is pretty simple:

    TorchHostQuery *query =
	torch_host_query_new_from_hostname ("google.com.");
    g_signal_connect (query, "result", G_CALLBACK (on_result), NULL);
    g_signal_connect (query, "error", G_CALLBACK (on_error), NULL);

    TorchResolver *resolver = torch_resolver_get_default ();
    torch_resolver_execute_query (resolver, query);

For the full example, see
https://svn.syntaxjockey.com/repos/libtorch/trunk/tests/test3.c

Current plans are:

1) implement all of the well used record types in the IN class (easy)
2) client-side query recursion (will take some time to code properly)
3) implement more sub-classes of TorchQuery for other common queries,
such as MX and WKS lookups
4) caching of queries

Now after I've said all of this, my questions to you all are:

1) is this a good library to have, or is the 'problem' i'm solving small
enough that people would rather either keep using the blocking libc
calls or employ hacks like threads?

2) are there any suggestions for APIs and features that would be nice to
have in order to better fit in to code that already exists in GNOME
applications?

3) would anyone be willing to mentor this if i turned it into a google
SoC project =)  I'm thinking that a good project would be to add
asynchronous dns resolving in a few key places, like gnome-vfs, ekiga,
evolution, ...

Comments?

-- 
                                      .~.
Michael Frank                         /v\
msfrank syntaxjockey com             // \\
                                    /(   )\
GPG Fingerprint:                     ^`-'^
2A44 DF32 91A5 ADA9 0E86 4F65 4051 870D 8B51 6EE0






[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]