Commit Briefs
move got_opentempfd out of got_repo_open. ok stsp@
thanks for all the help massaging this diff
properly swap cached struct pack array elements in got_repo_cache_pack()
Avoids clobbering open files for delta base/accumulation, leaking file descriptors, and triggering errors from close(2) during got_repo_close() as we try to close the same file descriptor more than once.
open temporary files needed for delta application in got_repo_open()
This prepares for callers of got_repo_open() that cannot afford to open files in /tmp, such as gotwebd. In a follow-up change, we could ask such callers to pass in the required amount of open temporary files. One consequence is that got_repo_open() now requires the "cpath" pledge promise. Add the "cpath" promise to affected callers and remove it once the repository has been opened. ok tracey
inline struct got_object_id in struct got_object_qid
Saves us from doing a malloc/free call for every item on the list. ok op@
don't `goto done' if calloc fails
otherwise we call got_repo_close with repo being NULL and segfault there. ok stsp
cache a list of known pack index files when the repository is opened
Avoids overhead due to readdir calls while searching a pack index. ok op@
make got_repo_match_object_id_prefix() reject overlong input strings
suggested by + ok naddy
portable: make UUID includes generic
Move the detection of UUID header files to be included portably. This will have no functional effect until MacOS detection is put in place.
factorize imsg_clear calls after imsg_flush failures
imsg_clear frees and closes resources allocated as part of enqueueing imsgs so it's a no-op after reads. discussed with and ok stsp@
portable: fix use of d->namlen
As done elsewhere, d->namlen is not a portable field from readdir, therefore simualte this via the strlen of the directory name instead.
reuse existing deltas when creating pack files
tested by thomas, naddy, and myself
add O_CLOEXEC (close-on-exec) to openat(2) calls
suggested by millert ok thomas_adam
add O_CLOEXEC (close-on-exec) flag to open(2) calls
suggested by millert ok thomas_adam
portable: tree/queue header fixes
sys/{tree,queue}.h are looked up via configure, and therefore are included via that mechanism.
portable: update to handle bloom, etc
Update portable to support changes for bloom, etc.