]>
Commit | Line | Data |
---|---|---|
684396e0 AM |
1 | Index: squid/src/client_side.c |
2 | diff -c squid/src/client_side.c:1.561.2.46 squid/src/client_side.c:1.561.2.47 | |
3 | *** squid/src/client_side.c:1.561.2.46 Mon Sep 1 14:39:33 2003 | |
4 | --- squid/src/client_side.c Sun Dec 14 05:30:35 2003 | |
5 | *************** | |
6 | *** 1401,1406 **** | |
7 | --- 1401,1410 ---- | |
8 | debug(33, 3) ("clientBuildReplyHeader: can't keep-alive, unknown body size\n"); | |
9 | request->flags.proxy_keepalive = 0; | |
10 | } | |
11 | + if (fdUsageHigh()) { | |
12 | + debug(33, 3) ("clientBuildReplyHeader: Not many unused FDs, can't keep-alive\n"); | |
13 | + request->flags.proxy_keepalive = 0; | |
14 | + } | |
15 | /* Signal keep-alive if needed */ | |
16 | httpHeaderPutStr(hdr, | |
17 | http->flags.accel ? HDR_CONNECTION : HDR_PROXY_CONNECTION, | |
18 | Index: squid/src/fd.c | |
19 | diff -c squid/src/fd.c:1.43 squid/src/fd.c:1.43.2.1 | |
20 | *** squid/src/fd.c:1.43 Sun Aug 26 16:24:56 2001 | |
21 | --- squid/src/fd.c Sun Dec 14 05:30:36 2003 | |
22 | *************** | |
23 | *** 178,183 **** | |
24 | --- 178,194 ---- | |
25 | return Squid_MaxFD - Number_FD - Opening_FD; | |
26 | } | |
27 | ||
28 | + int | |
29 | + fdUsageHigh(void) | |
30 | + { | |
31 | + int nrfree = fdNFree(); | |
32 | + if (nrfree < (RESERVED_FD << 1)) | |
33 | + return 1; | |
34 | + if (nrfree < (Number_FD >> 2)) | |
35 | + return 1; | |
36 | + return 0; | |
37 | + } | |
38 | + | |
39 | /* Called when we runs out of file descriptors */ | |
40 | void | |
41 | fdAdjustReserved(void) | |
42 | Index: squid/src/pconn.c | |
43 | diff -c squid/src/pconn.c:1.31 squid/src/pconn.c:1.31.2.1 | |
44 | *** squid/src/pconn.c:1.31 Fri Apr 13 18:03:23 2001 | |
45 | --- squid/src/pconn.c Sun Dec 14 05:30:36 2003 | |
46 | *************** | |
47 | *** 190,196 **** | |
48 | int *old; | |
49 | LOCAL_ARRAY(char, key, SQUIDHOSTNAMELEN + 10); | |
50 | LOCAL_ARRAY(char, desc, FD_DESC_SZ); | |
51 | ! if (fdNFree() < (RESERVED_FD << 1)) { | |
52 | debug(48, 3) ("pconnPush: Not many unused FDs\n"); | |
53 | comm_close(fd); | |
54 | return; | |
55 | --- 190,196 ---- | |
56 | int *old; | |
57 | LOCAL_ARRAY(char, key, SQUIDHOSTNAMELEN + 10); | |
58 | LOCAL_ARRAY(char, desc, FD_DESC_SZ); | |
59 | ! if (fdUsageHigh()) { | |
60 | debug(48, 3) ("pconnPush: Not many unused FDs\n"); | |
61 | comm_close(fd); | |
62 | return; | |
63 | Index: squid/src/protos.h | |
64 | diff -c squid/src/protos.h:1.420.2.20 squid/src/protos.h:1.420.2.21 | |
65 | *** squid/src/protos.h:1.420.2.20 Sun Aug 10 15:04:47 2003 | |
66 | --- squid/src/protos.h Sun Dec 14 05:30:37 2003 | |
67 | *************** | |
68 | *** 269,274 **** | |
69 | --- 269,275 ---- | |
70 | extern void fdFreeMemory(void); | |
71 | extern void fdDumpOpen(void); | |
72 | extern int fdNFree(void); | |
73 | + extern int fdUsageHigh(void); | |
74 | extern void fdAdjustReserved(void); | |
75 | ||
76 | extern fileMap *file_map_create(void); |