gnash-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-dev] Patch: fix gnash being unable to download anything with newe


From: Hans de Goede
Subject: [Gnash-dev] Patch: fix gnash being unable to download anything with newer libcurl versions
Date: Fri, 27 Aug 2010 10:56:02 +0200
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.8) Gecko/20100806 Fedora/3.1.2-1.fc13 Thunderbird/3.1.2

Hi,

While trying gnash under Fedora 14 alpha I noticed that it didn't work
with youtube, even after clearing cookies.

So I did some debugging and found at that there is a bad interaction
between gnash and the latest libcurl, the attached
gnash-0.8.8-new-libcurl.patch fixes this.

The problem is that newer libcurl versions (atleast 7.21.x) return -1
for maxfd from curl_multi_fdset while they are doing dns resolving. This
gets combined with a short (7ms) return value from curl_multi_timeout
indicating that the thread / caller should just sleep a bit and then retry.

However we break out of the cache fill loop when maxfd < 1. We always use
a short timeout, so things work fine once we remove the maxfd < 0 check.

###

While looking into this I also tried using curl_multi_timeout to get
the select timeout as the curl documentation says is mandatory, rather
then hardcoding 10ms. See: gnash-0.8.8-curl-multi_timeout.patch, but
this does not work. After dns resolution curl_multi_timeout returns
a timeout of 30 seconds and despite maxfd being 10 now and thus the
fd_sets presumably being filled, the select now hangs until the entire
30 seconds are used up. I've tried changing the hardcoded timeout
to various values and it seems that for some reason the curl_multi_fdset
returned fd_sets seem to be no good, the select call always times out.

Regards,

Hans

Attachment: gnash-0.8.8-new-libcurl.patch
Description: Text document

Attachment: gnash-0.8.8-curl-multi_timeout.patch
Description: Text document


reply via email to

[Prev in Thread] Current Thread [Next in Thread]