Commits


don't scan pack index offsets for large values if pack file is < 2GB This saves an iteration over the entire h->offsets array when opening a pack index which should not contain large offsets in the first place. ok millert@


handle pack index files which lack a corresponding pack file ok millert


make got_packidx_get_packfile_path() usable for callers who only have a path


switch from SIMPLEQ to equivalent STAILQ macros The singly-linked tail queue macros were added to OpenBSD 6.9 and are more widely available on other systems. ok stsp


expose got_pack_parse_ref_delta() for library-internal use This will be needed by a future 'gotadmin listpack' command.


expose got_packidx_get_object_offset() for library-internal use This will be needed by a future 'gotadmin listpack' command.


mark got_pack_stop_privsep_child() static; it is only used inside pack.c


fix a leaky ibuf. ok stsp


add got_packidx_get_packfile_path() for library-internal use


when reading a pack index byte-swap fields at compile-time where possible suggested by mpi@ ages ago


make close(2) failure checks consistent; check 'close() == -1' everywhere ok millert, naddy


add fd field to got_repository, modify got_packidx_open to use fds These changes are intended to make got more compatible with FreeBSD's Capsicum. ok stsp


fix matching the object ID of the first object in a pack index An object ID which appears first in a pack index was wrongly ignored by got_packidx_match_id_str_prefix(). The result was a spurious "object not found" error when this object ID was passed on the command line. Reported by jrick on freenode who was lucky enough to this edge case!


use the POSIX standard endian functions and explicitly include <endian.h> ok stsp


do not rely on <zlib.h> to pull in <unistd.h> ok stsp