Commit Briefs

Thomas Adam

gotwebd is a Web daemon



Thomas Adam

enforce a per-uid connection limit in the gotd listen process

For now the limit is set at compile-time. It will become configurable via gotd.conf soon. ok op@


Thomas Adam

gotwebd: drop redundant NULL check

qs is guaranteed to be not NULL reached that point.


Thomas Adam

gotwebd: remove useless comment

should be placed further down, after BLOB and RSS are handled, but the call to `gotweb_render_header' is successfully clear on its own.


Thomas Adam

fmt



Thomas Adam

convert gotd repo_read.c and repo_write.c to single-client

Because these processes are now started on demand per client connection there is no need to keep track of multiple clients anymore. Also, these processes can now exit when a disconnect event is received. ok op, jamsek


Thomas Adam

portable: gotwebd: use template

This updates -portable's gotwebd instance to make use of the new templating engine.


Thomas Adam

gotd: nix trailing whitespace and indentation fix

ok op@, stsp@


Thomas Adam

remove filesystem access via bind(2) from gotd auth process

op@ pointed out a problem in my initial patch where I forgot to call unveil(2) with a path before unveil(NULL, NULL). ok op, jamsek


Thomas Adam

move "unix" pledge promise from gotd parent to auth process

The listen process now communicates the client UID/GID to the parent, and the auth process verifies this on behalf of the parent. This allows us to remove the "unix" pledge promise from the parent, removing parent access to syscalls such as listen() and accept() in the AF_UNIX domain. ok tracey@ op@


Thomas Adam

fix gotd authentication timeout

The authentication timeout was accidentally overriden by the request timeout. Fix this and set both timeouts in the same place for clarity. ok op@


Thomas Adam

run gotd authentication in a separate child process

ok op@


Thomas Adam

fork gotd repo_read/repo_write children on demand

ok op, jamsek


Thomas Adam

gotd: tweak error message if getpwnam fails

errno may not be set to something interesting so switch to fatalx, and simplify the error message (knowing the failed function, which is also wrong, doesn't buy much here.) ok jamsek


Thomas Adam

tweaks to request_bad.sh; no functional change

in no specific order: - define the "aaa..." string as variable to avoid long lines (same for the 255 "A") - drop the comment about the "OpenBSD cmp(1) offset extension": it's quite popular actually. - consistently use "cmp foo.expected foo" instead of "cmp foo foo.expected". It makes easier to copy-paste it if we want to diff(1) the files. - diff files when cmp(1) fails if feasible (i.e. when we're not cmp(1) at offsets) - use printf when the string to print contains "\n" - add some missing blank lines between functions


Thomas Adam

tog: always echo input prompt to bottom left of screen

Irrespective of the active view, always echo to the bottom left of the parent view. ok op@


Thomas Adam

tog: fix typo that breaks log search when in hsplit

Ironically, the typo "blocks" log search when in hsplit because we block input on the wrong view! Pass the proper "v" view to nodelay() calls. ok op@


Thomas Adam

add more gotd regression tests for bad requests; patch by Mikhail

And rename req_wrong_commit.sh to request_bad.sh to reflect the broader scope of this test script.



Thomas Adam

gotwebd: add an RSS feed for the tags

ok tracey@


Thomas Adam

gotwebd: use DOCUMENT_URI rather than SCRIPT_NAME

the latter is empty when serving from a directory-like path prefix with an httpd.conf(5) as per gotwebd(8). ok tracey@