--------------------- PatchSet 5986 Date: 2003/10/23 18:39:42 Author: uid131750 Branch: icap-2_5 Tag: (none) Log: in icapConnect(), configure timeout and close handler before calling connect because commConnectStart() might get an error immediately and close the descriptor before it returns. Members: src/icap_common.c:1.1.2.14->1.1.2.15 Index: squid/src/icap_common.c =================================================================== RCS file: /cvsroot/squid-sf//squid/src/Attic/icap_common.c,v retrieving revision 1.1.2.14 retrieving revision 1.1.2.15 diff -u -r1.1.2.14 -r1.1.2.15 --- squid/src/icap_common.c 17 Oct 2003 19:53:11 -0000 1.1.2.14 +++ squid/src/icap_common.c 23 Oct 2003 18:39:42 -0000 1.1.2.15 @@ -1,5 +1,5 @@ /* - * $Id: icap_common.c,v 1.1.2.14 2003/10/17 19:53:11 dwsquid Exp $ + * $Id: icap_common.c,v 1.1.2.15 2003/10/23 18:39:42 uid131750 Exp $ * * DEBUG: section 81 Internet Content Adaptation Protocol (ICAP) Client * AUTHOR: Geetha Manjunath, Hewlett Packard Company @@ -167,14 +167,19 @@ return 0; } icap->flags.connect_pending = 1; + /* + * Configure timeout and close handler before calling + * connect because commConnectStart() might get an error + * immediately and close the descriptor before it returns. + */ + commSetTimeout(icap->icap_fd, Config.Timeout.connect, + icapConnectTimeout, icap); + comm_add_close_handler(icap->icap_fd, icapStateFree, icap); commConnectStart(icap->icap_fd, icap->current_service->hostname, icap->current_service->port, theCallback, icap); - commSetTimeout(icap->icap_fd, Config.Timeout.connect, - icapConnectTimeout, icap); - comm_add_close_handler(icap->icap_fd, icapStateFree, icap); return 1; }