Commits


fix an fd leak in gotd's notify process This leak resulted in the gotd notify process spinning on CPU in an imsg_read() -> EAGAIN loop once it ran out of file descriptors.


fix previous: "ssh" accidentally named "git"


update protocol lists Document http and https protocols in got.conf(5). Copied from got(1) except reworded the part that referred to got.conf(5). Change "send directive" to "send block" in got(1), since got.conf(5) says there's "one configuration directive per line". Adjust table widths: longest protocol name is now "https".


got-notify-http: fix I/O with TLS (again) We try to handle early replies from the server, so we call tls_read() at each "tick" of the event loop. For the TLS case, however, bufio_read() will set bio->wantev, and if we rely only on it we can deadlock trying to read data from the server without having sent all the request. Found out the hard way while trying to send several notifications in one go. ok stsp


revert part of previous commit; the parent process is not ephemeral pointed out by op@


prevent gotd notification process from exiting due to EPIPE Ephermeral processes on the other end of a pipe might decide to exit which results in EPIPE when writing. This is not a fatal error but is somewhat expected during normal operation (at least until we improve the inter-process communication about notifications).


update got.conf(5) remote config example from git.g.o to got.g.o


got-notify-http: consistetly use fatal instead of err


got-notify-http: make unexpected EOF more useful


portable: enable SHA256 This allows the use of native SHA256 functions. From naddy@


portable: disable SHA384/SHA512 This isn't used in got, so may as well disable from compat. From naddy@


portable: CI: remove --enable-gotd flag This is now implied; the option no longer exists.


fix got-fetch-http when chunked encoding is not used We would end up raising a spurious error when the server had no more data to send and would abort the clone operation, while everything was fine in fact. Problem reported by vazub via IRC, thanks!


portable: README: mention libtls dependencies


portable: compile gotd unconditionally For some time now, gotd was only ever available if one used the --enable-gotd flag to configure. This was fine back when gotd was still under development -- but it's now very usable, and deserves to be enabled by default.


portable: sandbox got-notify-* helpers "looks good to me" thomas


portable: gitwrapper: remove unused LIBS libevent doesn't need to link against libevent, but it will need its CFLAGS.


portable: cvg: remove libevent


portable: sync gitwrapper deps This reduces the dependency set, and syncs with got. From naddy@.


portable: update .gitignore


portable: add regress/ to dist tarball Ship the tests with the release tarballs. There's still work to do in making these tests work across the supported -portable platforms


portable: update help syntax Fix syntax for --enable-{gotd,cvg}


portable: set next version


portable: release 0.98.2


portable: enable got-fetch-http