Commits


CHANGES for 0.116


sync dist file list


add missing include of stddef.h for ptrdiff_t in gotsys/parse.y


use standard integer type in validate_hmac_secret(); from op@


use a better idiom to find a NUL-terminator; from op@


add missing casts to ctype function arguments in gotsys parse.y spotted by op@


add support for notifications to gotsysd and gotsys.conf gotsys.conf now supports email and HTTP/JSON notifications ok op@


fix gotsysd behaviour when the anonymous user is removed from gotsys.conf The gotsys-useradd process would run into a bogus error regarding an invalid user name "anonymous" instead of locking the anonymous user account as expected. Add test coverage.


replace ftruncate+lseek with equivalents from opentemp.c, where available


rename test "large loose objects" to "large files" We might have more large file test cases eventually. And the existing test involves packing the loose objects. So the former name was not ideal.


fix off-by-one during deltification in maximum stretch size calculation Fix an off-by-one which causes invalid deltas to be written when common file sections exceed the maximum size which can be represented in a base-copy delta operation. This bug causes an invalid pack file to be written which neither gotadmin nor git will index successfully. Add a test which triggers the problem: got-index-pack: delta application result size mismatch: \ actual: 65536 expected: 16777216: bad delta ok op@


show expected and actual sizes when delta application fails ok op@


avoid clobbering earlier errors in got_delta_apply and got_delta_apply_in_mem ok op@


fix more missing resets of file position to zero after truncating files ok op@


reset file position when reusing per-repository temporary files When reusing a temporary file, do not forget to reset its file position to zero. Otherwise, opening multiple raw objects in a row can fail during delta application with an unexpected file size reported by stat(2). Problem reported by Aaron Lin Problem reproduced and fix verified with a repository provided by Aaron. I have unsuccessfully tried to write a regression test for this. ok op@


fix lseek(2) calls which had "offset" and "whence" arguments swapped


fix gotd reload when /etc/gotd-secrets.conf is used When sending the configuration to the newly reloaded gotd process we must send the path to the secrets file if it is being used. Otherwise, the new process will die with "unexpected amount of data received in imsg" errors. Test coverage will be added later as part of some new gotsysd tests which I have in progress.


fix 'gotctl reload -s secrets' failing once gotd has failed to reload once Reset reload secrets state on reload failure, such that the next reload attempt will not be rejected with an 'unexpected imsg' error.


forbid the '$' and '#' symbols in gotsys.conf reference names These symbols are also part of configuration file syntax and should therefore be avoided.


update gotwebd favicons to show the smiley fish only


document additional reference name restriction details in git-repository.5


document restrictions imposed on reference names in gotsys.conf


introduce gotsys_ref_name_is_valid() We need to enforce additional restrictions on reference names specified in gotsys.conf in order to prevent escaping to arbitrary gotd.conf syntax. Add test coverage.


remove hidden gotsys.conf draft text about a "publish" directive This directive will not be implemented in the final design. Instead we will be adding authentication to gotwebd with associated config syntax.


show examples for reference protection rules in gotsys.conf manual