From: hno <> Date: Thu, 18 Apr 2002 22:09:37 +0000 (+0000) Subject: The cbdata update broke extension of comm timeouts X-Git-Tag: SQUID_3_0_PRE1~1053 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a3fa14bfc7be5001e98b16ce2f4c97e212605035;p=thirdparty%2Fsquid.git The cbdata update broke extension of comm timeouts --- diff --git a/src/comm.cc b/src/comm.cc index a9f09a4dfe..7f71414035 100644 --- a/src/comm.cc +++ b/src/comm.cc @@ -1,6 +1,6 @@ /* - * $Id: comm.cc,v 1.329 2002/04/13 23:07:49 hno Exp $ + * $Id: comm.cc,v 1.330 2002/04/18 16:09:37 hno Exp $ * * DEBUG: section 5 Socket Functions * AUTHOR: Harvest Derived @@ -438,18 +438,23 @@ commSetTimeout(int fd, int timeout, PF * handler, void *data) assert(fd < Squid_MaxFD); F = &fd_table[fd]; assert(F->flags.open); - cbdataReferenceDone(F->timeout_data); - F->timeout_handler = NULL; if (timeout < 0) { + cbdataReferenceDone(F->timeout_data); F->timeout_handler = NULL; - return F->timeout = 0; + F->timeout = 0; + return F->timeout; } assert(handler || F->timeout_handler); if (handler || data) { + /* new timeout handler installed. If NULL then the timeout + * is only extended + */ + cbdataReferenceDone(F->timeout_data); F->timeout_handler = handler; F->timeout_data = cbdataReference(data); } - return F->timeout = squid_curtime + (time_t) timeout; + F->timeout = squid_curtime + (time_t) timeout; + return F->timeout; } int