Hi Francis, On Sun, Mar 12, 2006 at 02:32:36PM +0000, Francis Daly wrote:
On Sat, Mar 11, 2006 at 04:45:39PM -0300, Jorge Arellano Cid wrote:
On Sat, Mar 11, 2006 at 05:12:21PM +0000, Francis Daly wrote:
Hi Jorge,
I have a report than on a stock OpenBSD 3.6 box, using dillo 0.8.5, the following recipe seems to reliably(*) cause dillo to cease responding.
Some of the BSDs don't provide a reentrant gethostbyname() function. This makes "Dillo" freeze when resolving names concurrently.
D'oh, yes, of course, it's there in README.
Preliminary reports suggest that commenting dns.c line 41 helps the problem, and quite possibly fixes it altogether.
I went to the site and saw several different hostnames. This may be the answer.
One way to solve this is to delegate the DNS resolving to a dpi and to have a special one linked to an async DNS library for BSDs.
In the spirit of the suggestion at http://lists.auriga.wearlab.de/pipermail/dillo-dev/2003-April/000422.html here's a patch which implements a configure --disable-threaded-dns option.
In order to keep threaded as the default, I switched the logic of G_DNS_THREADED to be G_NO_GNS_THREADED; I'm not sure what the reason for the name is (it's been in CVS since April 2000 when the file was added) but possibly NO_G_DNS_THREADED or something would fit the pattern better.
The alternative is to make no-threaded the default and require --enable-threaded-dns to turn it on -- that would have a working system for everyone, but threaded users would have a less effective system than they could have.
If you prefer that I'll code it.
OK. I checked the patch, and recoded it to use D_DNS_THREADED, D_DNS*, and the same "./configure --disable-threaded-dns". Commited and in CVS now. Please test it. I'll make a 0.8.6rc1 after receiving your feedback with a view to a next release (its been a long time, and the CVS is stable enough). Note: I'm keeping 0.8.6pre in sync with the FLTK2-based tree. -- Cheers Jorge.-