ashd.git
10 days agocall[fs]cgi: Handle serialized child connections asynchronously. master
Fredrik Tolf [Tue, 13 May 2025 01:16:55 +0000 (03:16 +0200)]
call[fs]cgi: Handle serialized child connections asynchronously.

10 days agolib: Allow mtio block to take no file descriptor, allowing threads to just sleep.
Fredrik Tolf [Tue, 13 May 2025 01:11:27 +0000 (03:11 +0200)]
lib: Allow mtio block to take no file descriptor, allowing threads to just sleep.

11 days agocall[fs]cgi: At least for now, simply block when connecting to handler.
Fredrik Tolf [Mon, 12 May 2025 15:59:39 +0000 (17:59 +0200)]
call[fs]cgi: At least for now, simply block when connecting to handler.

It's not optimal, but the naive mtio implementation has the thundering-herd
problem, and this also creates a natural choke-point, transmitting the request
buffering responsibility to the parent handler where it belongs.

The more ideal solution would probably be to let running requests continue
being handled while serializing receving incoming requests and connecting to
the request handler.

11 days agocall[fs]cgi: Fix handler connect blocking bug.
Fredrik Tolf [Mon, 12 May 2025 15:37:31 +0000 (17:37 +0200)]
call[fs]cgi: Fix handler connect blocking bug.

6 months agoMerge branch 'master' of git://git.dolda.net/ashd
Fredrik Tolf [Sat, 16 Nov 2024 00:39:26 +0000 (01:39 +0100)]
Merge branch 'master' of git://git.dolda.net/ashd

7 months agoMerge branch 'master' of git.dolda2000.com:/srv/git/r/ashd
Fredrik Tolf [Sun, 20 Oct 2024 13:58:05 +0000 (15:58 +0200)]
Merge branch 'master' of git.dolda2000.com:/srv/git/r/ashd

7 months agoUse sys/xattr.h instead of attr/xattr.h.
Fredrik Tolf [Sun, 20 Oct 2024 13:57:37 +0000 (15:57 +0200)]
Use sys/xattr.h instead of attr/xattr.h.

8 months agoratequeue: Improve rehash implementation.
Fredrik Tolf [Sat, 31 Aug 2024 14:56:36 +0000 (16:56 +0200)]
ratequeue: Improve rehash implementation.

8 months agoratequeue: Fix rehash bug again.
Fredrik Tolf [Sat, 31 Aug 2024 14:29:22 +0000 (16:29 +0200)]
ratequeue: Fix rehash bug again.

8 months agoratequeue: Fix rehash bug.
Fredrik Tolf [Sat, 31 Aug 2024 14:25:40 +0000 (16:25 +0200)]
ratequeue: Fix rehash bug.

11 months agopython3: Fix ByteString reference in perf module.
Fredrik Tolf [Tue, 11 Jun 2024 22:19:21 +0000 (00:19 +0200)]
python3: Fix ByteString reference in perf module.

17 months agoetc: Add environment option to run init.d/ashd silently.
Fredrik Tolf [Thu, 23 Nov 2023 18:53:06 +0000 (19:53 +0100)]
etc: Add environment option to run init.d/ashd silently.

21 months agopython3: Encode ashd-wsgi3 output headers with utf-8 instead of latin-1.
Fredrik Tolf [Thu, 10 Aug 2023 11:18:22 +0000 (13:18 +0200)]
python3: Encode ashd-wsgi3 output headers with utf-8 instead of latin-1.

21 months agoaccesslog: Fix %p bug.
Fredrik Tolf [Wed, 9 Aug 2023 17:23:52 +0000 (19:23 +0200)]
accesslog: Fix %p bug.

21 months agoaccesslog: Add standard response header for logging user info.
Fredrik Tolf [Wed, 9 Aug 2023 17:14:12 +0000 (19:14 +0200)]
accesslog: Add standard response header for logging user info.

21 months agoaccesslog: Add %p and %P format options.
Fredrik Tolf [Wed, 9 Aug 2023 17:11:33 +0000 (19:11 +0200)]
accesslog: Add %p and %P format options.

21 months agohtpipe: Add some missing includes.
Fredrik Tolf [Fri, 28 Jul 2023 23:54:26 +0000 (01:54 +0200)]
htpipe: Add some missing includes.

21 months agoratequeue: Add some missing includes.
Fredrik Tolf [Fri, 28 Jul 2023 23:54:15 +0000 (01:54 +0200)]
ratequeue: Add some missing includes.

21 months agohtparser: Added some missing includes.
Fredrik Tolf [Fri, 28 Jul 2023 23:54:06 +0000 (01:54 +0200)]
htparser: Added some missing includes.

21 months agohtparser: Remember to properly make ssl-openssl.c conditional.
Fredrik Tolf [Fri, 28 Jul 2023 23:42:48 +0000 (01:42 +0200)]
htparser: Remember to properly make ssl-openssl.c conditional.

21 months agohtparser: Add an initial OpenSSL backend.
Fredrik Tolf [Fri, 28 Jul 2023 13:36:10 +0000 (15:36 +0200)]
htparser: Add an initial OpenSSL backend.

It is still lacking somewhat important features like SNI support, however.

21 months agobuild: Rename configure.in according to autoconf standards.
Fredrik Tolf [Fri, 28 Jul 2023 12:55:58 +0000 (14:55 +0200)]
build: Rename configure.in according to autoconf standards.

21 months agobuild: Update configure.in to slightly more modern standards.
Fredrik Tolf [Fri, 28 Jul 2023 12:55:43 +0000 (14:55 +0200)]
build: Update configure.in to slightly more modern standards.

21 months agodirplex: Document the `dot-allow' directive.
Fredrik Tolf [Thu, 27 Jul 2023 14:55:45 +0000 (16:55 +0200)]
dirplex: Document the `dot-allow' directive.

21 months agoetc: Allow `.well-known' in default dirplex configuration.
Fredrik Tolf [Thu, 27 Jul 2023 14:39:21 +0000 (16:39 +0200)]
etc: Allow `.well-known' in default dirplex configuration.

21 months agodirplex: Add directive to allow selected dot-files and -directories.
Fredrik Tolf [Thu, 27 Jul 2023 14:38:53 +0000 (16:38 +0200)]
dirplex: Add directive to allow selected dot-files and -directories.

21 months agohtparser: Expose TLS session-ID in request headers.
Fredrik Tolf [Mon, 24 Jul 2023 20:20:55 +0000 (22:20 +0200)]
htparser: Expose TLS session-ID in request headers.

21 months agoMerge branch 'master' of moltke.seatribe.se:/usr/local/src/ashd
Fredrik Tolf [Mon, 24 Jul 2023 20:19:15 +0000 (22:19 +0200)]
Merge branch 'master' of moltke.seatribe.se:/usr/local/src/ashd

21 months agohtparser: Stop using GCC inner functions for setcreds.
Fredrik Tolf [Mon, 24 Jul 2023 20:18:04 +0000 (22:18 +0200)]
htparser: Stop using GCC inner functions for setcreds.

22 months agopython: Ignore EINTR in serveloop.
Fredrik Tolf [Sat, 15 Jul 2023 14:03:38 +0000 (16:03 +0200)]
python: Ignore EINTR in serveloop.

2 years agopython3: Fixed ABC import for Python 3.8 compatibility.
Fredrik Tolf [Sat, 27 Aug 2022 13:52:03 +0000 (15:52 +0200)]
python3: Fixed ABC import for Python 3.8 compatibility.

2 years agopython3: Rename async module to asyncio for Python 3.7 compatibility.
Fredrik Tolf [Sat, 27 Aug 2022 13:50:28 +0000 (15:50 +0200)]
python3: Rename async module to asyncio for Python 3.7 compatibility.

ashd.async is still around for now as a compatibility measure, simply
re-importing everything from asyncio.

3 years agoratequeue: Be consistent with signedness in rehash vs. hashget/hashdel.
Fredrik Tolf [Mon, 7 Feb 2022 01:36:53 +0000 (02:36 +0100)]
ratequeue: Be consistent with signedness in rehash vs. hashget/hashdel.

3 years agoratequeue: Handle bucket emptying more correctly.
Fredrik Tolf [Sun, 6 Feb 2022 17:14:30 +0000 (18:14 +0100)]
ratequeue: Handle bucket emptying more correctly.

3 years agoratequeue: Log request blocking.
Fredrik Tolf [Sun, 6 Feb 2022 17:06:48 +0000 (18:06 +0100)]
ratequeue: Log request blocking.

3 years agoAdded the `ratequeue' program.
Fredrik Tolf [Sat, 5 Feb 2022 16:51:41 +0000 (17:51 +0100)]
Added the `ratequeue' program.

3 years agohtparser: Request client certificate only of trust- and/or crl-lists have been given.
Fredrik Tolf [Thu, 2 Dec 2021 23:22:17 +0000 (00:22 +0100)]
htparser: Request client certificate only of trust- and/or crl-lists have been given.

3 years agohtparser: Fixed readcrtchain bug.
Fredrik Tolf [Wed, 10 Nov 2021 18:34:13 +0000 (19:34 +0100)]
htparser: Fixed readcrtchain bug.

3 years agohtparser: Use certificate chains in named credentials, and allow them to reuse the...
Fredrik Tolf [Wed, 10 Nov 2021 18:30:19 +0000 (19:30 +0100)]
htparser: Use certificate chains in named credentials, and allow them to reuse the default key.

3 years agodoc: Fixed some typos.
Fredrik Tolf [Mon, 19 Jul 2021 14:48:46 +0000 (16:48 +0200)]
doc: Fixed some typos.

3 years agodoc: Fixed typo.
Fredrik Tolf [Sat, 17 Jul 2021 23:35:26 +0000 (01:35 +0200)]
doc: Fixed typo.

3 years agopatplex: Add reparse action.
Fredrik Tolf [Sat, 17 Jul 2021 23:31:38 +0000 (01:31 +0200)]
patplex: Add reparse action.

3 years agopatplex: Replace the `default' handling with arbitrary priorities.
Fredrik Tolf [Sat, 17 Jul 2021 15:50:25 +0000 (17:50 +0200)]
patplex: Replace the `default' handling with arbitrary priorities.

4 years agodoc: Clarify httrcall limit functionality further.
Fredrik Tolf [Sun, 16 May 2021 14:44:56 +0000 (16:44 +0200)]
doc: Clarify httrcall limit functionality further.

4 years agodoc: Fixed typo.
Fredrik Tolf [Sun, 16 May 2021 14:43:39 +0000 (16:43 +0200)]
doc: Fixed typo.

4 years agoUpdated changelog.
Fredrik Tolf [Sun, 16 May 2021 14:13:10 +0000 (16:13 +0200)]
Updated changelog.

4 years agoexamples: Fix up vhosts example to run with new patplex conventions.
Fredrik Tolf [Sun, 16 May 2021 13:30:54 +0000 (15:30 +0200)]
examples: Fix up vhosts example to run with new patplex conventions.

4 years agodoc: Documented htpipe.
Fredrik Tolf [Sat, 15 May 2021 01:55:22 +0000 (03:55 +0200)]
doc: Documented htpipe.

4 years agohtparser: Fixed pidfile initialization bug.
Fredrik Tolf [Sat, 15 May 2021 01:33:27 +0000 (03:33 +0200)]
htparser: Fixed pidfile initialization bug.

4 years agohtpipe: Fixed socket leakage.
Fredrik Tolf [Sat, 15 May 2021 01:29:16 +0000 (03:29 +0200)]
htpipe: Fixed socket leakage.

4 years agohtpipe: Fixed simple initialization bug.
Fredrik Tolf [Sat, 15 May 2021 01:21:02 +0000 (03:21 +0200)]
htpipe: Fixed simple initialization bug.

4 years agoAdded the `htpipe' program.
Fredrik Tolf [Sat, 15 May 2021 01:18:11 +0000 (03:18 +0200)]
Added the `htpipe' program.

4 years agodoc: Documented the new `htparser' behaviors.
Fredrik Tolf [Sat, 15 May 2021 01:17:02 +0000 (03:17 +0200)]
doc: Documented the new `htparser' behaviors.

4 years agoetc: Allow init.d/ashd to handle remaining connections more gracefully.
Fredrik Tolf [Fri, 14 May 2021 14:29:11 +0000 (16:29 +0200)]
etc: Allow init.d/ashd to handle remaining connections more gracefully.

4 years agohtparser: Allow PID-file, chuser and chroot arguments to be treated as NULL if empty.
Fredrik Tolf [Fri, 14 May 2021 14:06:07 +0000 (16:06 +0200)]
htparser: Allow PID-file, chuser and chroot arguments to be treated as NULL if empty.

4 years agohtparser: Added a simple PID-file state monitoring protocol.
Fredrik Tolf [Fri, 14 May 2021 14:05:07 +0000 (16:05 +0200)]
htparser: Added a simple PID-file state monitoring protocol.

4 years agodoc: Document userplex' use of setsid().
Fredrik Tolf [Fri, 22 Jan 2021 01:45:33 +0000 (02:45 +0100)]
doc: Document userplex' use of setsid().

6 years agoMerge branch 'master' of git.dolda2000.com:/srv/git/r/ashd
Fredrik Tolf [Sat, 2 Feb 2019 14:44:52 +0000 (15:44 +0100)]
Merge branch 'master' of git.dolda2000.com:/srv/git/r/ashd

6 years agopython*: Use poll instead of select in ckflush.
Fredrik Tolf [Sat, 2 Feb 2019 10:44:41 +0000 (11:44 +0100)]
python*: Use poll instead of select in ckflush.

7 years agopsendfile: Fixed missing include.
Fredrik Tolf [Mon, 2 Apr 2018 01:18:47 +0000 (03:18 +0200)]
psendfile: Fixed missing include.

8 years agoMerge branch 'master' of rpi2:src/ashd
Fredrik Tolf [Sat, 11 Mar 2017 05:08:46 +0000 (06:08 +0100)]
Merge branch 'master' of rpi2:src/ashd

8 years agolib: Fixed potential kqueue timespec storage bug.
Fredrik Tolf [Sat, 11 Mar 2017 05:08:03 +0000 (05:08 +0000)]
lib: Fixed potential kqueue timespec storage bug.

8 years agolib: Replicated mtio-epoll's timeheap implementation to mtio-kqueue.
Fredrik Tolf [Sat, 11 Mar 2017 04:59:38 +0000 (04:59 +0000)]
lib: Replicated mtio-epoll's timeheap implementation to mtio-kqueue.

8 years agocallcgi: Fixed possible deadlock problem on aborted requests.
Fredrik Tolf [Tue, 7 Mar 2017 02:24:17 +0000 (03:24 +0100)]
callcgi: Fixed possible deadlock problem on aborted requests.

8 years agoMerge branch 'master' of git.dolda2000.com:/srv/git/r/ashd
Fredrik Tolf [Thu, 2 Mar 2017 04:49:00 +0000 (05:49 +0100)]
Merge branch 'master' of git.dolda2000.com:/srv/git/r/ashd

8 years agodoc: Fixed typo.
Fredrik Tolf [Thu, 2 Mar 2017 03:48:14 +0000 (04:48 +0100)]
doc: Fixed typo.

8 years agodoc: Fixed typo.
Fredrik Tolf [Thu, 2 Mar 2017 03:40:27 +0000 (04:40 +0100)]
doc: Fixed typo.

8 years agopython3: Cache async channel FDs so that updates always happen correctly.
Fredrik Tolf [Wed, 1 Feb 2017 04:16:10 +0000 (05:16 +0100)]
python3: Cache async channel FDs so that updates always happen correctly.

8 years agopython3: To be safe, abort entirely if initial epoller registration fails.
Fredrik Tolf [Wed, 1 Feb 2017 04:02:22 +0000 (05:02 +0100)]
python3: To be safe, abort entirely if initial epoller registration fails.

8 years agopython3: Fixed some threadpool handler bugs.
Fredrik Tolf [Mon, 9 Jan 2017 05:58:37 +0000 (06:58 +0100)]
python3: Fixed some threadpool handler bugs.

8 years agolib: Fixed timeheap bug with ioloop reentrancy.
Fredrik Tolf [Sat, 31 Dec 2016 20:55:25 +0000 (21:55 +0100)]
lib: Fixed timeheap bug with ioloop reentrancy.

8 years agoMerge branch 'timeheap'
Fredrik Tolf [Sat, 31 Dec 2016 19:26:22 +0000 (20:26 +0100)]
Merge branch 'timeheap'

This should fix the mblock-related iteration bug in mtio-epoll.

8 years agolib: Removed the surely redundant struct timeentry from the mtio-epoll.
Fredrik Tolf [Sat, 31 Dec 2016 18:56:24 +0000 (19:56 +0100)]
lib: Removed the surely redundant struct timeentry from the mtio-epoll.

8 years agoMerge branch 'master' into timeheap
Fredrik Tolf [Sat, 31 Dec 2016 17:53:33 +0000 (18:53 +0100)]
Merge branch 'master' into timeheap

Conflicts:
lib/mtio-epoll.c

8 years agolib: Fixed blocker iteration bug in mtio-select introduced by mblock.
Fredrik Tolf [Sat, 31 Dec 2016 17:36:47 +0000 (18:36 +0100)]
lib: Fixed blocker iteration bug in mtio-select introduced by mblock.

8 years agolib: Use abort() instead of exit() when smalloc fails.
Fredrik Tolf [Wed, 23 Nov 2016 16:58:04 +0000 (17:58 +0100)]
lib: Use abort() instead of exit() when smalloc fails.

8 years agolib: Fixed bioprintf bug.
Fredrik Tolf [Sun, 30 Oct 2016 20:08:26 +0000 (21:08 +0100)]
lib: Fixed bioprintf bug.

8 years agopython: Improved current-watcher implementation.
Fredrik Tolf [Wed, 22 Jun 2016 02:30:06 +0000 (04:30 +0200)]
python: Improved current-watcher implementation.

8 years agopython: Fixed async module bug.
Fredrik Tolf [Sun, 19 Jun 2016 01:03:16 +0000 (03:03 +0200)]
python: Fixed async module bug.

8 years agopython: Added a channel superclass for ashd.async.
Fredrik Tolf [Sun, 19 Jun 2016 00:33:48 +0000 (02:33 +0200)]
python: Added a channel superclass for ashd.async.

8 years agohtparser: Fixed up duplex timeouts.
Fredrik Tolf [Sun, 19 Jun 2016 00:33:28 +0000 (02:33 +0200)]
htparser: Fixed up duplex timeouts.

8 years agopython: Somewhat integrate async watchers with wsgidir currency.
Fredrik Tolf [Sat, 18 Jun 2016 01:07:41 +0000 (03:07 +0200)]
python: Somewhat integrate async watchers with wsgidir currency.

8 years agopython: Rewrote ashd.async for greater generality.
Fredrik Tolf [Fri, 17 Jun 2016 23:03:04 +0000 (01:03 +0200)]
python: Rewrote ashd.async for greater generality.

8 years agopython3: Added utility module for dealing with asynchronous clients.
Fredrik Tolf [Sat, 11 Jun 2016 00:59:40 +0000 (02:59 +0200)]
python3: Added utility module for dealing with asynchronous clients.

9 years agoUpdated changelog.
Fredrik Tolf [Wed, 18 May 2016 23:44:16 +0000 (01:44 +0200)]
Updated changelog.

9 years agoMerge branch 'master' into duplex
Fredrik Tolf [Wed, 18 May 2016 12:56:50 +0000 (14:56 +0200)]
Merge branch 'master' into duplex

9 years agoMerge branch 'master' of git.dolda2000.com:/srv/git/r/ashd
Fredrik Tolf [Wed, 18 May 2016 04:48:32 +0000 (06:48 +0200)]
Merge branch 'master' of git.dolda2000.com:/srv/git/r/ashd

9 years agoMerge branch 'master' into duplex
Fredrik Tolf [Wed, 18 May 2016 03:58:50 +0000 (05:58 +0200)]
Merge branch 'master' into duplex

9 years agoMerge branch 'master' of ansgar.seatribe.se:/usr/local/src/ashd
Fredrik Tolf [Wed, 18 May 2016 03:57:56 +0000 (05:57 +0200)]
Merge branch 'master' of ansgar.seatribe.se:/usr/local/src/ashd

9 years agopython: Added ashd-wsgi3 support for passing file descriptors as part of the response.
Fredrik Tolf [Wed, 18 May 2016 03:57:00 +0000 (05:57 +0200)]
python: Added ashd-wsgi3 support for passing file descriptors as part of the response.

9 years agoMerge branch 'duplex' of nerv.dolda.net:src/ashd into duplex
Fredrik Tolf [Wed, 18 May 2016 03:41:32 +0000 (05:41 +0200)]
Merge branch 'duplex' of nerv.dolda.net:src/ashd into duplex

9 years agolib: Added mblock support for kqueue.
Fredrik Tolf [Wed, 18 May 2016 03:40:39 +0000 (05:40 +0200)]
lib: Added mblock support for kqueue.

9 years agolib: Fixed mblock bug for epoll.
Fredrik Tolf [Wed, 18 May 2016 03:22:18 +0000 (05:22 +0200)]
lib: Fixed mblock bug for epoll.

9 years agohtparser: Fixed bad size_t.
Fredrik Tolf [Wed, 18 May 2016 03:04:44 +0000 (05:04 +0200)]
htparser: Fixed bad size_t.

9 years agoaccesslog: Pass file descriptors through response.
Fredrik Tolf [Wed, 18 May 2016 01:04:11 +0000 (03:04 +0200)]
accesslog: Pass file descriptors through response.

9 years agohtparser: Added support for full-duplex requests.
Fredrik Tolf [Wed, 18 May 2016 01:03:43 +0000 (03:03 +0200)]
htparser: Added support for full-duplex requests.

9 years agolib: Added support for blocking on multiple file descriptors.
Fredrik Tolf [Wed, 18 May 2016 01:02:23 +0000 (03:02 +0200)]
lib: Added support for blocking on multiple file descriptors.

Lacking support for kqueue for now.

9 years agolib: Added mtio ability to pass file descriptors over streams.
Fredrik Tolf [Mon, 16 May 2016 02:45:29 +0000 (04:45 +0200)]
lib: Added mtio ability to pass file descriptors over streams.

9 years agolib: Added bufio I/O-less copy function.
Fredrik Tolf [Mon, 16 May 2016 02:31:03 +0000 (04:31 +0200)]
lib: Added bufio I/O-less copy function.

9 years agoaccesslog: Fail as soon as possible on broken channels.
Fredrik Tolf [Sat, 14 May 2016 01:13:58 +0000 (03:13 +0200)]
accesslog: Fail as soon as possible on broken channels.