cURL / Mailing Lists / curl-library / Single Mail

curl-library

RE: Firewall exploit block leads to transfer hang

From: Russ Freeman <russf_at_digiguide.com>
Date: Mon, 22 Nov 2004 10:59:09 -0000

> > My application has several threads servicing a queue of
> files to download.
> > Each thread does curl_easy_init(), curl_easy_perform(...) and
> > curl_easy_cleanup(...) for each file it processes. The more
> threads I have
> > the more likely the problem is to occur apparently.
> >
> > Curl loops around in Transfer() (Transfer.c)....and never
> exits. The result
> > is that my app never completes it's downloads
>
> When this happens, how much data has been downloaded of how
> much? If you
> "ethereal" the network, can you see anything odd with the
> network connection?

I don't know about ethereal...I've never used it...but I can't reproduce the
fault with any certainty.

I do know some data has been passed because I can see the HTTP response
header.

> Isn't this just the client that no longer receives data and
> thus sits there
> waiting for the rest of the data to get transfered?
>
> What if you try to set the regular CURLOPT_TIMEOUT option? Or perhaps
> CURLOPT_LOW_SPEED_LIMIT / CURLOPT_LOW_SPEED_TIME?

CURLOPT_TIMEOUT helps a LOT and I'm kicking myself for not already using it.
My applications reads from several servers and if one falls over it uses a
different one. When this "firewall" problem happens with the timeout I can
just try it again against a different server.

That solves my immediate problem.

But what of the bogus error? My customers are consumers running their
firewalls set at "max" and this bogus error in their logs/alerts would be
worrying. I'm sure I'm not alone in this situation.

Russ.
Received on 2004-11-22