2 diff -c squid/src/ssl.c:1.118.2.4 squid/src/ssl.c:1.118.2.5
3 *** squid/src/ssl.c:1.118.2.4 Wed Aug 6 07:49:02 2003
4 --- squid/src/ssl.c Mon Mar 29 02:59:44 2004
7 if (!ignoreErrno(errno))
10 ! comm_close(sslState->server.fd);
12 if (cbdataValid(sslState))
13 sslSetSelect(sslState);
15 if (!ignoreErrno(errno))
17 } else if (len == 0) {
20 if (cbdataValid(sslState))
21 sslSetSelect(sslState);
26 SslStateData *sslState = data;
27 assert(sslState != NULL);
28 + /* temporary lock to save our own feets (comm_close -> sslClientClosed -> Free) */
29 + cbdataLock(sslState);
30 if (sslState->client.fd > -1)
31 comm_close(sslState->client.fd);
32 if (sslState->server.fd > -1)
33 comm_close(sslState->server.fd);
34 + cbdataUnlock(sslState);
45 + sslConnectTimeout(int fd, void *data)
47 + SslStateData *sslState = data;
48 + request_t *request = sslState->request;
49 + ErrorState *err = NULL;
50 + if (sslState->servers->peer)
51 + hierarchyNote(&sslState->request->hier, sslState->servers->code,
52 + sslState->servers->peer->host);
53 + else if (Config.onoff.log_ip_on_direct)
54 + hierarchyNote(&sslState->request->hier, sslState->servers->code,
55 + fd_table[sslState->server.fd].ipaddr);
57 + hierarchyNote(&sslState->request->hier, sslState->servers->code,
60 + err = errorCon(ERR_CONNECT_FAIL, HTTP_SERVICE_UNAVAILABLE);
61 + *sslState->status_ptr = HTTP_SERVICE_UNAVAILABLE;
62 + err->xerrno = ETIMEDOUT;
63 + err->host = xstrdup(sslState->host);
64 + err->port = sslState->port;
65 + err->request = requestLink(request);
66 + err->callback = sslErrorComplete;
67 + err->callback_data = sslState;
68 + errorSend(sslState->client.fd, err);
71 CBDATA_TYPE(SslStateData);
73 sslStart(clientHttpRequest * http, size_t * size_ptr, int *status_ptr)
77 commSetTimeout(sslState->server.fd,
78 Config.Timeout.connect,
85 commSetTimeout(sslState->server.fd,
86 Config.Timeout.connect,