curl / Mailing Lists / curl-library / Single Mail


Re: Can we disable RETRIES at CURL

From: Daniel Stenberg <>
Date: Thu, 6 Apr 2017 17:24:07 +0200 (CEST)

On Wed, 5 Apr 2017, Praveen Pvs wrote:

> Our application has sent data to the server through CURL. But at TCP level,
> client has not received the ACK from the server but server received the data
> and processed it. Since client has not received the ACK and it resent the
> data again to the server.

You mean TCP resends data because it wasn't ACKed?

> After that client received the response(Duplicate Transaction) from the
> server since it has received it again.

At TCP level or where? TCP should handle duplicate data just fine and ignore

> At application level, its making the curl_easy_perform call and receiving
> the response that its Duplicate transaction(Our is Payment transaction). so
> the application would not know or aware that data was resent/retried to the
> server.

So this is at HTTP level? Then you need to explain with much more detail on
how this happens.

> When we reviewed the Wireshark traces we figured out that client has not
> received the ACK for the application data thats been sent that why its been
> retried.

Back at TCP level?

> Wanted to know if this retry has been done by CURL? If so is there way to
> disable this retry at CURL by setting some option.

Everything on TCP level is left for the kernel that curl runs on so if TCP
resends data, that's your kernel's doing. If it is above TCP, it is curl's
doing. And of course curl controls a certain amount of how TCP is done, but
the resending of missed data is a fundamental part that curl doesn't affect
(and probably can't even).

Received on 2017-04-06