From 039aefccac5a4f39c549df0ded4459e4f77a0fe9 Mon Sep 17 00:00:00 2001 From: Paul Kulchenko Date: Mon, 6 Feb 2023 22:13:44 -0800 Subject: [PATCH] Remove slowloris handling from Redbean It's been superseded by token bucket processing, does not take time into considerations (only the number of fragments), and affects file uploads that may require a large number of reads. --- tool/net/redbean.c | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/tool/net/redbean.c b/tool/net/redbean.c index d176759f0..9f65998cb 100644 --- a/tool/net/redbean.c +++ b/tool/net/redbean.c @@ -5651,12 +5651,6 @@ static char *HandleHugePayload(void) { return ServeFailure(413, "Payload Too Large"); } -static char *HandlePayloadSlowloris(void) { - LockInc(&shared->c.slowloris); - LogClose("payload slowloris"); - return ServeFailure(408, "Request Timeout"); -} - static char *HandleTransferRefused(void) { LockInc(&shared->c.transfersrefused); return ServeFailure(501, "Not Implemented"); @@ -5715,15 +5709,8 @@ static void HandleForkFailure(void) { static void HandleFrag(size_t got) { LockInc(&shared->c.frags); - if (++cpm.frags == 32) { - SendTimeout(); - LogClose("slowloris"); - LockInc(&shared->c.slowloris); - return; - } else { - DEBUGF("(stat) %s fragged msg added %,ld bytes to %,ld byte buffer", - DescribeClient(), amtread, got); - } + DEBUGF("(stat) %s fragged msg added %,ld bytes to %,ld byte buffer", + DescribeClient(), amtread, got); } static void HandleReload(void) { @@ -5823,7 +5810,6 @@ static char *ReadMore(void) { size_t got; ssize_t rc; LockInc(&shared->c.frags); - if (++cpm.frags == 64) return HandlePayloadSlowloris(); if ((rc = reader(client, inbuf.p + amtread, inbuf.n - amtread)) != -1) { if (!(got = rc)) return HandlePayloadDisconnect(); amtread += got;