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>
