> Maximum time to wait while connecting, in seconds (write as a decimal > integer, e.g., 10). Zero, negative, or not specified means wait > indefinitely. The minimum allowed timeout is 2 seconds, therefore a value > of 1 is interpreted as 2. This timeout applies separately to each host name > or IP address. For example, if you specify two hosts and connect_timeout is > 5, each host will time out if no connection is made within 5 seconds, so > the total time spent waiting for a connection might be up to 10 seconds. > " > The comments says that timeout = 0, means *Timeout is immediate (no > blocking)*
> Does the word "indefinitely" mean infinite? > If yes, connect_timeout = -1, mean infinite?
The sentence about "minimum allowed timeout is 2 seconds" has to go away, but the rest of that seems fine.
But now that you mention it, we could drop the vestigial
>> if (timeout < 0) >> timeout = 0;
as well, because the rest of the function only applies the timeout when "timeout > 0". Otherwise end_time (nee finish_time) stays at -1.