> Here some crashes in Eudora and possibly Agent are caused by
> multi-threaded calls to gethostbyname(). This function (and some other
> socket calls) use static data to return their values which leads to
> the disaster.
> 
> Other non-reentrant functions that return a pointer to static data
> gethostbyaddr, getproto* en getserv*.

OK, makes sense.

> I solve this by critical sections around the calls and the use of the
> return data. In case of the gethost* calls I use in case of __linux__
> the non-portable functions gethostbyname_r and gethostbyaddr_r.

First of all even if these function only existed on Linux, 
which is not the case since Solaris have them too, it would
be preferable to add a test in configure instead.

Please do that instead.

Reply via email to