portable: release 0.94 (tags/0.94)
When running 'make dist', ensure we automatically pass through the relevant configure options so that the relevant files are included.
The repo_write process still announces HEAD twice, once with its symref target and once with the resolved symref object hash. I cannot recall if this is deliberate but let's accept it for now to avoid test failures being flagged due to this issue, which is mostly cosmetic.
This should prevent a use-after-free crash I observed in gotwebd. ok op@
Where new files have appeared, etc., in -portable, "got_compat.h" needs to be added.
Sync latest changes of imsg from OpenBSD, as some of its newer fd handling is required.
While here, remove completely the libevent handling of SIGPIPE in favour of the already existing signal(3) call to ignore it; there's no point in logging a SIGPIPE.
Diff from Kyle Ackerman, thank you! I've added a imsg_free() call before the break too.
I always find confusing if IMSG_SIZE_CHECK() takes pointers or not, and we had at least a few instances of wrong usages, so inline (with exact size checks) and remove the macro. ok stsp@
It only had 4 slots so was never quite useful, and sharing of sock->pack_fds across cached repositories seems problematic. with help from + ok op@
main_compose_sockets() has the 'feature' of implicitly dup(2)'ing the passed file descriptior. But it's not what we need for the temp fds, since those needs to be unique per-children. debugged with stsp@
allows to run gotwebd from the got checkout again.
suggested by stsp@
concern raised by stsp@
proc.c really shines when there's a network of different types of processes, potentially with a various number of instances each, that needs to exchange messages. Gotwebd instead has a much simpler design, and using proc.c causes more overhead (/headaches) than it solves. So, this attempts to provide the same functionalities but with a much simpler implementation that fits gotwebd better. ok stsp@
This prevents the issues that we just hit with forgetting to remove PREVID: instead of relying on the enum value to yield the size of a table, use nitems(). Also, quit as soon as the matching key was found, no need to iterate further. ok stsp@