Commits


gotd and got {fetch,send,clone}: reject sha256 repos We have to implement the gitprotocol v2 in order to support sha256 repos for these operations, so for now let's error out early when they're attempted. ok/improvements stsp@


fix an issue where 'git fetch' would error or hang against gotd If Git has more than 16 have-lines to send it will send a flush-pkt followed by more have-lines. Due to a misunderstanding on my part, gotd didn't like this because it assumed that the flush-pkt terminates the list. Add a test coverage in a new file which we can use to test Git interop issues. Fixes a problem seen by Thomas Adam upon git fetch from got.g.o.


gotd_request_timeout() should use log_warnx() since errno is not used here


attempt to fix lingering gotd processes from reading clients When reading clients close the connection early do not ignore this condition in session_read. The code removed here intended to handle the case of a writing client uploading a pack file, and thus does not belong into session_read.c. I overlooked this when splitting session.c into two files. This might fix an issue observed on got.g.o where the anonymous user was no longer connected and left lingering session_read and repo_read processes hanging around until the request timeout was reached.


ensure gotd request timeout gets armed even if no request is received


raise log level of message that is logged when a gotd request times out


display process title in syslog when a gotd child process exits


split gotd/session.c into session_read.c and session_write.c This makes it easier to tweak the read/write code paths separately.