From 684396e08f2f6635c162ec278f69a2159a37a5c5 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Arkadiusz=20Mi=C5=9Bkiewicz?= Date: Fri, 19 Dec 2003 14:26:34 +0000 Subject: [PATCH] - new Changed files: squid-2.5.STABLE4-cache_peer_maxconn.patch -> 1.1 squid-2.5.STABLE4-dns_namelength.patch -> 1.1 squid-2.5.STABLE4-ftp_put.patch -> 1.1 squid-2.5.STABLE4-icon_urls.patch -> 1.1 squid-2.5.STABLE4-pconn-lifo.patch -> 1.1 squid-2.5.STABLE4-pconn-load.patch -> 1.1 squid-2.5.STABLE4-pconn_post.patch -> 1.1 squid-2.5.STABLE4-pid_filename_none.patch -> 1.1 squid-2.5.STABLE4-redirector_access.patch -> 1.1 --- squid-2.5.STABLE4-cache_peer_maxconn.patch | 140 +++++++++++++++++++++ squid-2.5.STABLE4-dns_namelength.patch | 21 ++++ squid-2.5.STABLE4-ftp_put.patch | 15 +++ squid-2.5.STABLE4-icon_urls.patch | 87 +++++++++++++ squid-2.5.STABLE4-pconn-lifo.patch | 46 +++++++ squid-2.5.STABLE4-pconn-load.patch | 76 +++++++++++ squid-2.5.STABLE4-pconn_post.patch | 38 ++++++ squid-2.5.STABLE4-pid_filename_none.patch | 17 +++ squid-2.5.STABLE4-redirector_access.patch | 97 ++++++++++++++ 9 files changed, 537 insertions(+) create mode 100644 squid-2.5.STABLE4-cache_peer_maxconn.patch create mode 100644 squid-2.5.STABLE4-dns_namelength.patch create mode 100644 squid-2.5.STABLE4-ftp_put.patch create mode 100644 squid-2.5.STABLE4-icon_urls.patch create mode 100644 squid-2.5.STABLE4-pconn-lifo.patch create mode 100644 squid-2.5.STABLE4-pconn-load.patch create mode 100644 squid-2.5.STABLE4-pconn_post.patch create mode 100644 squid-2.5.STABLE4-pid_filename_none.patch create mode 100644 squid-2.5.STABLE4-redirector_access.patch diff --git a/squid-2.5.STABLE4-cache_peer_maxconn.patch b/squid-2.5.STABLE4-cache_peer_maxconn.patch new file mode 100644 index 0000000..14d6954 --- /dev/null +++ b/squid-2.5.STABLE4-cache_peer_maxconn.patch @@ -0,0 +1,140 @@ +Index: squid/src/forward.c +diff -c squid/src/forward.c:1.82.2.8 squid/src/forward.c:1.82.2.9 +*** squid/src/forward.c:1.82.2.8 Sat Dec 13 09:48:39 2003 +--- squid/src/forward.c Wed Dec 17 14:01:03 2003 +*************** +*** 42,47 **** +--- 42,48 ---- + static void fwdStateFree(FwdState * fwdState); + static PF fwdConnectTimeout; + static PF fwdServerClosed; ++ static PF fwdPeerClosed; + static CNCB fwdConnectDone; + static int fwdCheckRetry(FwdState * fwdState); + static int fwdReforward(FwdState *); +*************** +*** 178,185 **** +--- 179,190 ---- + fwdServerClosed(int fd, void *data) + { + FwdState *fwdState = data; ++ peer *p; + debug(17, 2) ("fwdServerClosed: FD %d %s\n", fd, storeUrl(fwdState->entry)); + assert(fwdState->server_fd == fd); ++ p = fwdStateServerPeer(fwdState); ++ if (p) ++ p->stats.conn_open--; + fwdState->server_fd = -1; + if (fwdCheckRetry(fwdState)) { + int originserver = (fwdState->servers->peer == NULL); +*************** +*** 239,246 **** + err->dnsserver_msg = xstrdup(dns_error_message); + err->request = requestLink(request); + fwdFail(fwdState, err); +- if (fs->peer) +- fs->peer->stats.conn_open--; + comm_close(server_fd); + } else if (status != COMM_OK) { + assert(fs); +--- 244,249 ---- +*************** +*** 255,264 **** + } + err->request = requestLink(request); + fwdFail(fwdState, err); +! if (fs->peer) { + peerConnectFailed(fs->peer); +- fs->peer->stats.conn_open--; +- } + comm_close(server_fd); + } else { + debug(17, 3) ("fwdConnectDone: FD %d: '%s'\n", server_fd, storeUrl(fwdState->entry)); +--- 258,265 ---- + } + err->request = requestLink(request); + fwdFail(fwdState, err); +! if (fs->peer) + peerConnectFailed(fs->peer); + comm_close(server_fd); + } else { + debug(17, 3) ("fwdConnectDone: FD %d: '%s'\n", server_fd, storeUrl(fwdState->entry)); +*************** +*** 283,289 **** + FwdState *fwdState = data; + StoreEntry *entry = fwdState->entry; + ErrorState *err; +- peer *p = fwdStateServerPeer(fwdState); + debug(17, 2) ("fwdConnectTimeout: FD %d: '%s'\n", fd, storeUrl(entry)); + assert(fd == fwdState->server_fd); + if (entry->mem_obj->inmem_hi == 0) { +--- 284,289 ---- +*************** +*** 298,305 **** + if (fwdState->servers->peer) + peerConnectFailed(fwdState->servers->peer); + } +- if (p) +- p->stats.conn_open--; + comm_close(fd); + } + +--- 298,303 ---- +*************** +*** 398,403 **** +--- 396,403 ---- + fwdState->n_tries++; + if (!fs->peer) + fwdState->origin_tries++; ++ else ++ comm_remove_close_handler(fd, fwdPeerClosed, fs->peer); + comm_add_close_handler(fd, fwdServerClosed, fwdState); + fwdConnectDone(fd, COMM_OK, fwdState); + return; +*************** +*** 544,554 **** + * transient (network) error; its a bug. + */ + fwdState->flags.dont_retry = 1; +- /* +- * this assertion exists because if we are connected to +- * a peer, then we need to decrement p->stats.conn_open. +- */ +- assert(NULL == p); + comm_close(fwdState->server_fd); + break; + } +--- 544,549 ---- +*************** +*** 730,745 **** +--- 725,754 ---- + } + + /* ++ * Accounts for closed persistent connections ++ */ ++ static void ++ fwdPeerClosed(int fd, void *data) ++ { ++ peer *p = data; ++ p->stats.conn_open--; ++ } ++ ++ /* + * Frees fwdState without closing FD or generating an abort + */ + void + fwdUnregister(int fd, FwdState * fwdState) + { ++ peer *p; + debug(17, 3) ("fwdUnregister: %s\n", storeUrl(fwdState->entry)); + assert(fd == fwdState->server_fd); + assert(fd > -1); + comm_remove_close_handler(fd, fwdServerClosed, fwdState); + fwdState->server_fd = -1; ++ p = fwdStateServerPeer(fwdState); ++ if (p) ++ comm_add_close_handler(fd, fwdPeerClosed, p); + } + + /* diff --git a/squid-2.5.STABLE4-dns_namelength.patch b/squid-2.5.STABLE4-dns_namelength.patch new file mode 100644 index 0000000..9d3501c --- /dev/null +++ b/squid-2.5.STABLE4-dns_namelength.patch @@ -0,0 +1,21 @@ +Index: squid/include/rfc1035.h +diff -c squid/include/rfc1035.h:1.6 squid/include/rfc1035.h:1.6.2.1 +*** squid/include/rfc1035.h:1.6 Mon Oct 8 10:18:31 2001 +--- squid/include/rfc1035.h Wed Dec 17 18:04:22 2003 +*************** +*** 46,52 **** + #endif + + /* rfc1035 - DNS */ +! #define RFC1035_MAXHOSTNAMESZ 128 + typedef struct _rfc1035_rr rfc1035_rr; + struct _rfc1035_rr { + char name[RFC1035_MAXHOSTNAMESZ]; +--- 46,52 ---- + #endif + + /* rfc1035 - DNS */ +! #define RFC1035_MAXHOSTNAMESZ 250 + typedef struct _rfc1035_rr rfc1035_rr; + struct _rfc1035_rr { + char name[RFC1035_MAXHOSTNAMESZ]; diff --git a/squid-2.5.STABLE4-ftp_put.patch b/squid-2.5.STABLE4-ftp_put.patch new file mode 100644 index 0000000..eca6c76 --- /dev/null +++ b/squid-2.5.STABLE4-ftp_put.patch @@ -0,0 +1,15 @@ +Index: squid/src/ftp.c +diff -c squid/src/ftp.c:1.316.2.10 squid/src/ftp.c:1.316.2.11 +*** squid/src/ftp.c:1.316.2.10 Wed Jul 16 07:42:51 2003 +--- squid/src/ftp.c Sun Dec 14 05:12:07 2003 +*************** +*** 2264,2269 **** +--- 2264,2271 ---- + ftpDataWriteCallback(int fd, char *buf, size_t size, int err, void *data) + { + FtpStateData *ftpState = (FtpStateData *) data; ++ if (err == COMM_ERR_CLOSING) ++ return; + if (!err) { + /* Shedule the rest of the request */ + clientReadBody(ftpState->request, ftpState->data.buf, ftpState->data.size, ftpRequestBody, ftpState); diff --git a/squid-2.5.STABLE4-icon_urls.patch b/squid-2.5.STABLE4-icon_urls.patch new file mode 100644 index 0000000..c6c163b --- /dev/null +++ b/squid-2.5.STABLE4-icon_urls.patch @@ -0,0 +1,87 @@ +Index: squid/src/cf.data.pre +diff -c squid/src/cf.data.pre:1.245.2.55 squid/src/cf.data.pre:1.245.2.56 +*** squid/src/cf.data.pre:1.245.2.55 Sat Dec 6 10:19:36 2003 +--- squid/src/cf.data.pre Sun Dec 14 06:33:44 2003 +*************** +*** 3112,3117 **** +--- 3112,3128 ---- + @DEFAULT_ICON_DIR@ + DOC_END + ++ NAME: short_icon_urls ++ TYPE: onoff ++ LOC: Config.icons.use_short_names ++ DEFAULT: off ++ DOC_START ++ If this is enabled then Squid will use short URLs for icons. ++ ++ If off then the URLs for icons will always be absolute URLs ++ including the proxy name and port. ++ DOC_END ++ + NAME: error_directory + TYPE: string + LOC: Config.errorDirectory +Index: squid/src/client_side.c +diff -c squid/src/client_side.c:1.561.2.47 squid/src/client_side.c:1.561.2.48 +*** squid/src/client_side.c:1.561.2.47 Sun Dec 14 05:30:35 2003 +--- squid/src/client_side.c Sun Dec 14 06:33:46 2003 +*************** +*** 3044,3049 **** +--- 3044,3051 ---- + http->flags.internal = 1; + } + } ++ if (http->flags.internal) ++ request->protocol = PROTO_HTTP; + } + /* + * cache the Content-length value in request_t. +Index: squid/src/mime.c +diff -c squid/src/mime.c:1.102.2.2 squid/src/mime.c:1.102.2.3 +*** squid/src/mime.c:1.102.2.2 Sat Nov 9 21:43:31 2002 +--- squid/src/mime.c Sun Dec 14 06:33:47 2003 +*************** +*** 219,228 **** + const char * + mimeGetIconURL(const char *fn) + { + char *icon = mimeGetIcon(fn); + if (icon == NULL) + return null_string; +! return internalLocalUri("/squid-internal-static/icons/", icon); + } + + char * +--- 219,235 ---- + const char * + mimeGetIconURL(const char *fn) + { ++ static MemBuf mb = MemBufNULL; + char *icon = mimeGetIcon(fn); + if (icon == NULL) + return null_string; +! if (Config.icons.use_short_names) { +! memBufReset(&mb); +! memBufPrintf(&mb, "/squid-internal-static/icons/%s", icon); +! return mb.buf; +! } else { +! return internalLocalUri("/squid-internal-static/icons/", icon); +! } + } + + char * +Index: squid/src/structs.h +diff -c squid/src/structs.h:1.408.2.17 squid/src/structs.h:1.408.2.18 +*** squid/src/structs.h:1.408.2.17 Sat Dec 6 10:19:38 2003 +--- squid/src/structs.h Sun Dec 14 06:33:47 2003 +*************** +*** 636,641 **** +--- 636,642 ---- + } cacheSwap; + struct { + char *directory; ++ int use_short_names; + } icons; + char *errorDirectory; + struct { diff --git a/squid-2.5.STABLE4-pconn-lifo.patch b/squid-2.5.STABLE4-pconn-lifo.patch new file mode 100644 index 0000000..37fa11b --- /dev/null +++ b/squid-2.5.STABLE4-pconn-lifo.patch @@ -0,0 +1,46 @@ +Index: squid/src/pconn.c +diff -c squid/src/pconn.c:1.31.2.1 squid/src/pconn.c:1.31.2.2 +*** squid/src/pconn.c:1.31.2.1 Sun Dec 14 05:30:36 2003 +--- squid/src/pconn.c Mon Dec 15 16:38:43 2003 +*************** +*** 95,105 **** + pconnRemoveFD(struct _pconn *p, int fd) + { + int i; +! for (i = 0; i < p->nfds; i++) { + if (p->fds[i] == fd) + break; + } +! assert(i < p->nfds); + debug(48, 3) ("pconnRemoveFD: found FD %d at index %d\n", fd, i); + for (; i < p->nfds - 1; i++) + p->fds[i] = p->fds[i + 1]; +--- 95,105 ---- + pconnRemoveFD(struct _pconn *p, int fd) + { + int i; +! for (i = p->nfds - 1; i >= 0; i--) { + if (p->fds[i] == fd) + break; + } +! assert(i >= 0); + debug(48, 3) ("pconnRemoveFD: found FD %d at index %d\n", fd, i); + for (; i < p->nfds - 1; i++) + p->fds[i] = p->fds[i + 1]; +*************** +*** 235,241 **** + if (hptr != NULL) { + p = (struct _pconn *) hptr; + assert(p->nfds > 0); +! fd = p->fds[0]; + pconnRemoveFD(p, fd); + commSetSelect(fd, COMM_SELECT_READ, NULL, NULL, 0); + commSetTimeout(fd, -1, NULL, NULL); +--- 235,241 ---- + if (hptr != NULL) { + p = (struct _pconn *) hptr; + assert(p->nfds > 0); +! fd = p->fds[p->nfds - 1]; + pconnRemoveFD(p, fd); + commSetSelect(fd, COMM_SELECT_READ, NULL, NULL, 0); + commSetTimeout(fd, -1, NULL, NULL); diff --git a/squid-2.5.STABLE4-pconn-load.patch b/squid-2.5.STABLE4-pconn-load.patch new file mode 100644 index 0000000..bc10429 --- /dev/null +++ b/squid-2.5.STABLE4-pconn-load.patch @@ -0,0 +1,76 @@ +Index: squid/src/client_side.c +diff -c squid/src/client_side.c:1.561.2.46 squid/src/client_side.c:1.561.2.47 +*** squid/src/client_side.c:1.561.2.46 Mon Sep 1 14:39:33 2003 +--- squid/src/client_side.c Sun Dec 14 05:30:35 2003 +*************** +*** 1401,1406 **** +--- 1401,1410 ---- + debug(33, 3) ("clientBuildReplyHeader: can't keep-alive, unknown body size\n"); + request->flags.proxy_keepalive = 0; + } ++ if (fdUsageHigh()) { ++ debug(33, 3) ("clientBuildReplyHeader: Not many unused FDs, can't keep-alive\n"); ++ request->flags.proxy_keepalive = 0; ++ } + /* Signal keep-alive if needed */ + httpHeaderPutStr(hdr, + http->flags.accel ? HDR_CONNECTION : HDR_PROXY_CONNECTION, +Index: squid/src/fd.c +diff -c squid/src/fd.c:1.43 squid/src/fd.c:1.43.2.1 +*** squid/src/fd.c:1.43 Sun Aug 26 16:24:56 2001 +--- squid/src/fd.c Sun Dec 14 05:30:36 2003 +*************** +*** 178,183 **** +--- 178,194 ---- + return Squid_MaxFD - Number_FD - Opening_FD; + } + ++ int ++ fdUsageHigh(void) ++ { ++ int nrfree = fdNFree(); ++ if (nrfree < (RESERVED_FD << 1)) ++ return 1; ++ if (nrfree < (Number_FD >> 2)) ++ return 1; ++ return 0; ++ } ++ + /* Called when we runs out of file descriptors */ + void + fdAdjustReserved(void) +Index: squid/src/pconn.c +diff -c squid/src/pconn.c:1.31 squid/src/pconn.c:1.31.2.1 +*** squid/src/pconn.c:1.31 Fri Apr 13 18:03:23 2001 +--- squid/src/pconn.c Sun Dec 14 05:30:36 2003 +*************** +*** 190,196 **** + int *old; + LOCAL_ARRAY(char, key, SQUIDHOSTNAMELEN + 10); + LOCAL_ARRAY(char, desc, FD_DESC_SZ); +! if (fdNFree() < (RESERVED_FD << 1)) { + debug(48, 3) ("pconnPush: Not many unused FDs\n"); + comm_close(fd); + return; +--- 190,196 ---- + int *old; + LOCAL_ARRAY(char, key, SQUIDHOSTNAMELEN + 10); + LOCAL_ARRAY(char, desc, FD_DESC_SZ); +! if (fdUsageHigh()) { + debug(48, 3) ("pconnPush: Not many unused FDs\n"); + comm_close(fd); + return; +Index: squid/src/protos.h +diff -c squid/src/protos.h:1.420.2.20 squid/src/protos.h:1.420.2.21 +*** squid/src/protos.h:1.420.2.20 Sun Aug 10 15:04:47 2003 +--- squid/src/protos.h Sun Dec 14 05:30:37 2003 +*************** +*** 269,274 **** +--- 269,275 ---- + extern void fdFreeMemory(void); + extern void fdDumpOpen(void); + extern int fdNFree(void); ++ extern int fdUsageHigh(void); + extern void fdAdjustReserved(void); + + extern fileMap *file_map_create(void); diff --git a/squid-2.5.STABLE4-pconn_post.patch b/squid-2.5.STABLE4-pconn_post.patch new file mode 100644 index 0000000..b536bb6 --- /dev/null +++ b/squid-2.5.STABLE4-pconn_post.patch @@ -0,0 +1,38 @@ +Index: squid/src/forward.c +diff -c squid/src/forward.c:1.82.2.7 squid/src/forward.c:1.82.2.8 +*** squid/src/forward.c:1.82.2.7 Tue Dec 9 14:51:32 2003 +--- squid/src/forward.c Sat Dec 13 09:48:39 2003 +*************** +*** 391,398 **** + ftimeout = 5; + if (ftimeout < ctimeout) + ctimeout = ftimeout; +! if (fwdCheckRetriable(fwdState)) { +! if ((fd = pconnPop(host, port)) >= 0) { + debug(17, 3) ("fwdConnectStart: reusing pconn FD %d\n", fd); + fwdState->server_fd = fd; + fwdState->n_tries++; +--- 391,398 ---- + ftimeout = 5; + if (ftimeout < ctimeout) + ctimeout = ftimeout; +! if ((fd = pconnPop(host, port)) >= 0) { +! if (fwdCheckRetriable(fwdState)) { + debug(17, 3) ("fwdConnectStart: reusing pconn FD %d\n", fd); + fwdState->server_fd = fd; + fwdState->n_tries++; +*************** +*** 401,406 **** +--- 401,412 ---- + comm_add_close_handler(fd, fwdServerClosed, fwdState); + fwdConnectDone(fd, COMM_OK, fwdState); + return; ++ } else { ++ /* Discard the persistent connection to not cause ++ * a imbalance in number of conenctions open if there ++ * is a lot of POST requests ++ */ ++ comm_close(fd); + } + } + #if URL_CHECKSUM_DEBUG diff --git a/squid-2.5.STABLE4-pid_filename_none.patch b/squid-2.5.STABLE4-pid_filename_none.patch new file mode 100644 index 0000000..e8445c4 --- /dev/null +++ b/squid-2.5.STABLE4-pid_filename_none.patch @@ -0,0 +1,17 @@ +Index: squid/src/main.c +diff -c squid/src/main.c:1.345.2.12 squid/src/main.c:1.345.2.13 +*** squid/src/main.c:1.345.2.12 Fri Sep 19 00:36:59 2003 +--- squid/src/main.c Wed Dec 17 14:10:30 2003 +*************** +*** 832,837 **** +--- 832,841 ---- + { + pid_t pid; + debug_log = stderr; ++ if (strcmp(Config.pidFilename, "none") == 0) { ++ debug(0, 1) ("No pid_filename specified. Trusting you know what you are doing.\n"); ++ return 0; ++ } + pid = readPidFile(); + if (pid < 2) + return 0; diff --git a/squid-2.5.STABLE4-redirector_access.patch b/squid-2.5.STABLE4-redirector_access.patch new file mode 100644 index 0000000..136f2be --- /dev/null +++ b/squid-2.5.STABLE4-redirector_access.patch @@ -0,0 +1,97 @@ +Index: squid/src/client_side.c +diff -c squid/src/client_side.c:1.561.2.48 squid/src/client_side.c:1.561.2.49 +*** squid/src/client_side.c:1.561.2.48 Sun Dec 14 06:33:46 2003 +--- squid/src/client_side.c Sun Dec 14 06:40:46 2003 +*************** +*** 100,105 **** +--- 100,106 ---- + static void clientBuildReplyHeader(clientHttpRequest * http, HttpReply * rep); + static clientHttpRequest *parseHttpRequestAbort(ConnStateData * conn, const char *uri); + static clientHttpRequest *parseHttpRequest(ConnStateData *, method_t *, int *, char **, size_t *); ++ static void clientRedirectStart(clientHttpRequest * http); + static RH clientRedirectDone; + static void clientCheckNoCache(clientHttpRequest *); + static void clientCheckNoCacheDone(int answer, void *data); +*************** +*** 244,250 **** + http->uri = xstrdup(urlCanonical(http->request)); + assert(http->redirect_state == REDIRECT_NONE); + http->redirect_state = REDIRECT_PENDING; +! redirectStart(http, clientRedirectDone, http); + } else { + int require_auth = (answer == ACCESS_REQ_PROXY_AUTH || aclIsProxyAuth(AclMatchedName)); + debug(33, 5) ("Access Denied: %s\n", http->uri); +--- 245,251 ---- + http->uri = xstrdup(urlCanonical(http->request)); + assert(http->redirect_state == REDIRECT_NONE); + http->redirect_state = REDIRECT_PENDING; +! clientRedirectStart(http); + } else { + int require_auth = (answer == ACCESS_REQ_PROXY_AUTH || aclIsProxyAuth(AclMatchedName)); + debug(33, 5) ("Access Denied: %s\n", http->uri); +*************** +*** 289,294 **** +--- 290,322 ---- + authenticateAuthUserRequestLock(err->auth_user_request); + err->callback_data = NULL; + errorAppendEntry(http->entry, err); ++ } ++ } ++ ++ static void ++ clientRedirectAccessCheckDone(int answer, void *data) ++ { ++ clientHttpRequest *http = data; ++ http->acl_checklist = NULL; ++ if (answer == ACCESS_ALLOWED) ++ redirectStart(http, clientRedirectDone, http); ++ else ++ clientRedirectDone(http, NULL); ++ } ++ ++ static void ++ clientRedirectStart(clientHttpRequest * http) ++ { ++ debug(33, 5) ("clientRedirectStart: '%s'\n", http->uri); ++ if (Config.Program.redirect == NULL) { ++ clientRedirectDone(http, NULL); ++ return; ++ } ++ if (Config.accessList.redirector) { ++ http->acl_checklist = clientAclChecklistCreate(Config.accessList.redirector, http); ++ aclNBCheck(http->acl_checklist, clientRedirectAccessCheckDone, http); ++ } else { ++ redirectStart(http, clientRedirectDone, http); + } + } + +Index: squid/src/redirect.c +diff -c squid/src/redirect.c:1.88.2.2 squid/src/redirect.c:1.88.2.3 +*** squid/src/redirect.c:1.88.2.2 Tue Sep 23 19:03:36 2003 +--- squid/src/redirect.c Sun Dec 14 06:40:47 2003 +*************** +*** 100,122 **** + assert(http); + assert(handler); + debug(61, 5) ("redirectStart: '%s'\n", http->uri); +- if (Config.Program.redirect == NULL) { +- handler(data, NULL); +- return; +- } +- if (Config.accessList.redirector) { +- aclCheck_t ch; +- memset(&ch, '\0', sizeof(ch)); +- ch.src_addr = http->conn->peer.sin_addr; +- ch.my_addr = http->conn->me.sin_addr; +- ch.my_port = ntohs(http->conn->me.sin_port); +- ch.request = http->request; +- if (!aclCheckFast(Config.accessList.redirector, &ch)) { +- /* denied -- bypass redirector */ +- handler(data, NULL); +- return; +- } +- } + if (Config.onoff.redirector_bypass && redirectors->stats.queue_size) { + /* Skip redirector if there is one request queued */ + n_bypassed++; +--- 100,105 ---- -- 2.44.0