Hi Martin,

> >  - report on his dns resolver work
> I'm interested in this, could you please share some more details here on the
> mailing list?
Sure, if there is much to share :-)

You can watch my progress here:
https://code.launchpad.net/~jsvoboda/helenos/dnsr
http://trac.helenos.org/ticket/189

At the time of the meeting all I had was a stub with a header file dns_std.h 
with definitions from the RFC standard and another header dns_msg.h. In a 
similar fashion to other network services, dns_msg.h defines a more high-level 
representation of DNS requests, with the strategy to encode and decode them 
just before transmission / after reception.

The resolver will be implemented as a service 'dnsres' which might also perform 
caching in the future. An application wishing to use it will naturally call a 
wrapper from the C library to communicate with the service. I haven't drafted 
an API yet, but it will be probably something original and I will add a 
BSD-style wrapper (gethostbyname()) when/where needed, later. For transport I 
will only support UDP first, then add TCP later (will use the sockets API for 
now).

Internally the server will be structured into a 'transport' layer which will 
take care of selecting the proper DNS server, UDP/TCP (un)wrapping, retrying 
and timing out. It will probably also encode/decode the message between the 
serialized form and the high-level (dns_message_t) representation and matching 
requests and responses. Requests and responses are matched using the ID field 
in the DNS message header.

On top of the transport layer there will be the implementation of the actual 
user requests  (e.g. get the address corresponding to a host name) that will 
compose the necessary DNS request (in the high-level form) and pass it to the 
transport layer.

Since the meeting I've had some chance to continue my work on this, I have 
implemented enough encoding to be able to compose a simple query, now I need to 
add a skeletal transport layer (without most of the mentioned features) to be 
able to actually send it. This is still uncommitted on my HD, will push when 
enough progress is made.

Let me know if you have questions.

Regards
-Jiri

_______________________________________________
HelenOS-devel mailing list
[email protected]
http://lists.modry.cz/cgi-bin/listinfo/helenos-devel

Reply via email to