Commit Briefs
document the actual repository name restrictions enforced in gotsys.conf(5) (main)
The previous text came from gotd.conf(5) and suggested that repository names could contain path separators. However, the current gotsys implementation forbids them, and parts of gotsysd assume that a repository name corresponds to a directory entry. So we cannot allow path separators, at least for now.
some typos
courtesy of codespell; ok stsp@
provide imsg-based variants of gotsys check/apply for gotd to use
This allows for better inter-process communication, making error reporting easier. It also avoids closing standard output and standard error channels in a freshly forked child process, which seems to be a bad idea.
implement reload support in gotd, triggered via gotctl reload
Reload must be triggered via 'gotctl reload' rather than SIGHUP because once gotd has dropped root privileges the gotd-secrets.conf file becomes permanently inaccessible. When SIGHUP is received gotd now logs a message which points the user at 'gotctl reload'.
set close-on-exec flag on client connections in gotd parent process
Ensures that existing clients will be properly disconnected once the gotd reload feature is introduced.
remove closefrom() in gotd when gotsys is run
closefrom doesn't have the desired effect as it may affect unrelated open files in the parent process. The right way to deal with this seems to be setting the close-on-exec flag on file descriptors instead.
send request timeout to session_read so it no longer needs to read gotd.conf
Also stop reading gotd.conf in repo_read, which is a trivial no-op.