iAdd more DDoS prevention. - bitreich-httpd - Bitreich HTTPD service Err bitreich.org 70
hgit clone git://bitreich.org/bitreich-httpd git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/bitreich-httpd URL:git://bitreich.org/bitreich-httpd git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/bitreich-httpd bitreich.org 70
1Log /scm/bitreich-httpd/log.gph bitreich.org 70
1Files /scm/bitreich-httpd/files.gph bitreich.org 70
1Refs /scm/bitreich-httpd/refs.gph bitreich.org 70
1Tags /scm/bitreich-httpd/tag bitreich.org 70
1README /scm/bitreich-httpd/file/README.md.gph bitreich.org 70
1LICENSE /scm/bitreich-httpd/file/LICENSE.gph bitreich.org 70
i--- Err bitreich.org 70
1commit bf9101e0e7efc8918d6122efef1339ac12b25b63 /scm/bitreich-httpd/commit/bf9101e0e7efc8918d6122efef1339ac12b25b63.gph bitreich.org 70
1parent e5dfc5fbfe93266da5edb1bb2e903734738296cf /scm/bitreich-httpd/commit/e5dfc5fbfe93266da5edb1bb2e903734738296cf.gph bitreich.org 70
hAuthor: Christoph Lohmann <20h@r-36.net> URL:mailto:20h@r-36.net bitreich.org 70
iDate: Tue, 22 Aug 2023 07:11:56 +0200 Err bitreich.org 70
i Err bitreich.org 70
iAdd more DDoS prevention. Err bitreich.org 70
i Err bitreich.org 70
iDiffstat: Err bitreich.org 70
i M bitreich-httpd.c | 7 ++++--- Err bitreich.org 70
i Err bitreich.org 70
i1 file changed, 4 insertions(+), 3 deletions(-) Err bitreich.org 70
i--- Err bitreich.org 70
1diff --git a/bitreich-httpd.c b/bitreich-httpd.c /scm/bitreich-httpd/file/bitreich-httpd.c.gph bitreich.org 70
i@@ -138,7 +138,7 @@ main(int argc, char *argv[]) Err bitreich.org 70
i char *wwwbase, *wwwindex, *request, *ctype, *path, *le_file, Err bitreich.org 70
i *le_base, clienth[NI_MAXHOST], clientp[NI_MAXSERV], *zuccbase, Err bitreich.org 70
i *requested, *header, *headerval, *hosthdr; Err bitreich.org 70
i- int rlen; Err bitreich.org 70
i+ int rlen, i; Err bitreich.org 70
i struct sockaddr_storage clt; Err bitreich.org 70
i socklen_t cltlen = sizeof(clt); Err bitreich.org 70
i time_t tim; Err bitreich.org 70
i@@ -170,9 +170,10 @@ main(int argc, char *argv[]) Err bitreich.org 70
i request[rlen-1] = '\0'; Err bitreich.org 70
i Err bitreich.org 70
i /* Header parsing. */ Err bitreich.org 70
i- for (;;) { Err bitreich.org 70
i+ /* At max read 16 headers. Do not allow DDoS. */ Err bitreich.org 70
i+ for (i = 0; i < 16; i++) { Err bitreich.org 70
i header = read_line(0, &rlen, 512); Err bitreich.org 70
i- if (header == NULL) Err bitreich.org 70
i+ if (header == NULL || rlen == 0) Err bitreich.org 70
i break; Err bitreich.org 70
i if (header[rlen-1] == '\r') { Err bitreich.org 70
i header[rlen-1] = '\0'; Err bitreich.org 70
.
Response:
text/plain