curl-library
RE: Firewall exploit block leads to transfer hang
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