Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 9 Aug 2000 12:51:12 -0400
From:      Dan Moschuk <dan@FreeBSD.ORG>
To:        Greg Thompson <johnnyteardrop@hotmail.com>
Cc:        freebsd-hackers@FreeBSD.ORG, freebsd-net@FreeBSD.ORG
Subject:   Re: threadsafe name resolution
Message-ID:  <20000809125112.C293@spirit.jaded.net>
In-Reply-To: <F3053sllNY30kkZIhTr000033b6@hotmail.com>; from johnnyteardrop@hotmail.com on Wed, Aug 09, 2000 at 10:40:27AM -0400
References:  <F3053sllNY30kkZIhTr000033b6@hotmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help

| i've just received confirmation from the author of the KAME resolution code 
| that it isn't at all thread safe:
| 
| >Sure.  As noted in name6.c, thread related stuff is not implemented yet.
| >Since our resolver code based on bind4 doesn't aware thread safeness,
| >all I can do now would be only putting mutex, anyway.
| 
| sure enough, name6.c says:
| 
| /*
| * TODO for thread safe
| *	use mutex for _hostconf, _hostconf_init.
| *	rewrite resolvers to be thread safe
| */
| 
| now, i'd say that it's fairly important for some form of threadsafe name 
| resolution to exist.  until the KAME code is fixed, how about adding in the 
| ipv4 _r methods that have been discussed from time to time?  or, at the very 
| least, put something in the manpage for getipnodebyname and friends 
| indicating that the funcs are not threadsafe.
| 
| as you can probably tell, i wasted several hours worth of work bumping into 
| this problem.

The problem lies deeper than that.  Calls like gethostbyname() and friends
are not threadsafe either, as they use an internal struct hostent and return
a pointer to it (that another thread would happily clobber with its own
data).  Thread-happy functions we're supposed to be added by the Vixie people,
and since I haven't checked up on it in about a year, they could be in
there by now, but since we use BINDs name-resolver library, it's a contrib/
issue and our policy isn't to hack up the contrib/ tree.

Of course, the door is always open for you to write the code and submit
it to the bind team. 8)

-Dan
-- 
Man is a rational animal who always loses his temper when he is called
upon to act in accordance with the dictates of reason.
                -- Oscar Wilde


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000809125112.C293>