libexec/got-fetch-pack/got-fetch-pack.c


Log

Author Commit Date CI Message
Stefan Sperling e99d9267 2021-10-07T15:29:27 plug memory leaks in got-fetch-pack and got-send-pack ok naddy
Stefan Sperling dd088d95 2021-10-06T19:49:06 let 'got fetch' send all references to the server to avoid redundant downloads Problem reported by naddy. ok naddy
Stefan Sperling 030daac8 2021-09-25T10:26:13 fix some integers that had a slightly wrong type; patch by Omar Polo
Stefan Sperling 77d7d3bb 2021-09-05T20:39:50 de-duplicate a constant used by both 'got fetch' and 'got send' Both GOT_FETCH_PKTMAX and GOT_SEND_PKTMAX had the same value. Declare this value as GOT_PKT_MAX in got_lib_pkt.h instead.
Stefan Sperling bd3d9e54 2021-09-05T14:21:02 move more code used by got-send-pack and got-fetch-pack to a common file Move functions and data structures which implement Git protocol features required for fetching and sending pack files to new files lib/gitproto.c and lib/got_lib_gitproto.h. This code was duplicated in got-fetch-pack and got-send-pack. No functional change.
Stefan Sperling f024663d 2021-09-05T13:50:39 move pkt code used by got-fetch-pack and got-send-pack to a common file The Git protocol uses a simple packet framing format. The got-fetch-pack and got-send-pack programs contained identical copies of functions to support this format. Move related functions to new file lib/pkt.c and link both programs against this common implementation. No functional change.
Stefan Sperling 8991a328 2021-08-26T07:08:48 add a missing bounds-check in got-fetch-pack when parsing server response The tokenize_refline() function could end up reading past the end of the buffer if the refline is not terminated with whitespace or \0.
Stefan Sperling a90356f7 2021-08-26T07:01:34 prevent NULL deref in got-fetch-pack if server does not announce capabilities The my_capabilities pointer may remain NULL. Check for NULL before use.
Stefan Sperling 14d2b281 2021-08-25T21:40:38 fix the error message shown when the server sends a bad ref line Exposed by trying to run got clone -l against shithub.us over git:// found by abieber@
Stefan Sperling 9ca26ac3 2021-08-06T13:31:40 style fix: avoid comparison of pointer variable against 0 in got-fetch-pack
Stefan Sperling 98f64f14 2021-01-05T17:17:58 work around spurious ACK responses from git servers in got-fetch-pack The Git server can apparently send duplicate ACK responses even though we do not enable the multi_ack capability. According to the Git protocol docs the server should only send ACKs after receiving 'done' from the client if multi_ack has been enabled. However, a duplicate ACK response can be triggered by running 'got fetch -a' in our fetch_update_tag test. This resulted in the following error: got-fetch-pack: unknown side-band received from server got: bad packet received
Stefan Sperling 6059809a 2020-12-17T15:54:47 use size_t for loop indices to avoid signedness warnings; by emaste@freebsd Same change as 16aeacf7088d, for subdirectories other than lib/
Christian Weisgerber 62d463ca 2020-10-20T22:43:59 indentation fixes
Christian Weisgerber 23c57b28 2020-09-11T19:44:18 Stop including <sys/syslimits.h> directly. POSIX says the limits defined there are available from <limits.h>, which almost all affected source files already included anyway. ok millert stsp
Stefan Sperling 3168e5da 2020-09-10T00:10:55 zap trailing tabs
Christian Weisgerber 81a12da5 2020-09-09T19:35:32 do not rely on <zlib.h> to pull in <unistd.h> ok stsp
Christian Weisgerber 631179de 2020-07-31T14:10:44 Fix missing block grouping. ok tracey stsp
Stefan Sperling 1d72a2a0 2020-03-24T14:08:03 represent packfile hash as byte array in the privsep layer, not as object ID
Stefan Sperling dc671e91 2020-03-24T12:07:58 compute pack file's checksum during download and check it in got-fetch-pack Compared to the previous version committed in 520a0c97 this code should compute the checksum correctly for any amount of pack file data bytes read from the socket at a time.
Stefan Sperling 729743d1 2020-03-23T21:34:06 revert 520a0c97f8081e4531fc9c88cda705a92afbddaf for now due to possible bug
Stefan Sperling 520a0c97 2020-03-23T21:08:17 compute pack file's checksum during download and check it in got-fetch-pack
Stefan Sperling e70bf110 2020-03-22T17:20:18 move functions from privsep.c to the helpers which use them where possible
Stefan Sperling 0e4002ca 2020-03-21T21:49:13 add support for fetching arbitrary references to 'got clone' and 'got fetch'
Stefan Sperling 2690194b 2020-03-21T18:17:12 remove GOT_FETCH_DEBUG and toggle fetch debug output with -v option instead
Stefan Sperling 0bec957e 2020-03-21T17:28:23 close fetchfd when we're done in got-fetch-pack
Stefan Sperling 4515a796 2020-03-21T11:24:14 make 'clone -l' and 'fetch -l' list all references, regardless of namespace
Stefan Sperling 41b0de12 2020-03-21T10:18:15 add support for listing remote branches and tags to 'got clone' and 'got fetch'
Stefan Sperling 4ba14133 2020-03-20T20:23:18 add support for fetching specific branches to 'got clone' and 'got fetch'
Stefan Sperling 659e7fbd 2020-03-20T15:55:08 fetch only HEAD branch and tags by default; add -a option to fetch everything
Stefan Sperling 858b0dfb 2020-03-20T11:01:44 re-add chatty mode to got-fetch-pack; it will be useful to diagnose bugs
Stefan Sperling c20695fb 2020-03-20T10:11:43 fix off-by-one in writepkt() length parameter passed by fetch_pack()
Stefan Sperling 406106ee 2020-03-20T10:09:18 don't skip protocol capabilities advertisement if the first ref isn't wanted
Stefan Sperling f1c6967f 2020-03-19T22:43:44 fix chopped display of git-server's progress output
Stefan Sperling 3c912d14 2020-03-19T17:11:00 remove chattygit mode from got-fetch-pack
Stefan Sperling 7848a0e1 2020-03-19T16:57:27 implement 'got fetch'
Stefan Sperling 5672d305 2020-03-18T16:13:46 waste less time on sending progress messages over the privsep pipe
Stefan Sperling f826addf 2020-03-18T16:13:45 use a dedicated imsg for sending the pack fetch output file descriptor
Stefan Sperling 72054488 2020-03-18T16:13:44 ooops, re-enable offset deltas in got-fetch-pack
Stefan Sperling f63dc90d 2020-03-18T16:13:44 remove unnecessary & in read_packed_object()
Stefan Sperling f4d0a1a4 2020-03-18T16:13:42 remove header check from got-fetch-pack; not needed
Stefan Sperling 849f7557 2020-03-18T16:11:32 check pack file hash in the main process
Stefan Sperling d2cdc636 2020-03-18T16:11:32 send pack file download progress information over imsg
Stefan Sperling a6ee240a 2020-03-18T16:11:32 improve error message on short packfile
Stefan Sperling ea7396b9 2020-03-18T16:11:32 rename imsg FETCH_PROGRESS to FETCH_REF
Stefan Sperling 9fa51812 2020-03-18T16:11:32 check pack file header in fetch_pack()
Stefan Sperling 531c3985 2020-03-18T16:11:32 add support for git protocol sidebands and display server progress
Stefan Sperling 52915720 2020-03-18T16:11:31 remove a pointless 'goto done'
Stefan Sperling d3dccf3a 2020-03-18T16:11:31 remove unused hash string arrays
Stefan Sperling 04c53c18 2020-03-18T16:11:31 make got-fetch-pack check for NAK from server before the packfile arrives
Stefan Sperling 3b9fb585 2020-03-18T16:11:31 hide an fprintf inside if (chattygit)
Stefan Sperling 54d1a70f 2020-03-18T16:11:31 verify that length string read from packet contains hex digits only
Stefan Sperling 4dc8ee09 2020-03-18T16:11:31 improve strtol checking in got-fetch-pack
Stefan Sperling 38c670f1 2020-03-18T16:11:31 convert flushpkt to struct got_error
Stefan Sperling 344e4747 2020-03-18T16:11:31 convert writepkt to struct got_error
Stefan Sperling 00cd0e0a 2020-03-18T16:11:30 use more readable names for items parsed from refline, and plug related leaks
Stefan Sperling e2f84af4 2020-03-18T16:11:30 remove got_has_object() for now; this would require imsg to main process
Stefan Sperling 4ba321e7 2020-03-18T16:11:30 mark some functions static in got-fetch-pack
Stefan Sperling 1ff21071 2020-03-18T16:11:30 remove got_ prefix from static functions in got-fetch-pack
Stefan Sperling f78e0473 2020-03-18T16:11:30 add missing \n in debug output
Stefan Sperling 33501562 2020-03-18T16:11:30 prepare for providing refs we already have in fetch request imsg currently we always send and expect an empty list
Stefan Sperling fe53745c 2020-03-18T16:11:30 convert readn and readpkt to struct got_error
Stefan Sperling 2fed35f3 2020-03-18T16:11:30 knf
Stefan Sperling 0872c0b0 2020-03-18T16:11:30 more reasonable minimum length check in check_pack_hash()
Stefan Sperling eac2c4cd 2020-03-18T16:11:30 make check_pack_hash() return a struct got_error
Stefan Sperling 01538ce4 2020-03-18T16:11:30 add_symref modifies 'capa' so it cannot be const
Stefan Sperling ffb5f621 2020-03-18T16:11:30 pledge got-fetch-pack ("stdio recvfd")
Stefan Sperling 14778466 2020-03-18T16:11:29 realloc(p, nmemb * size) -> reallocarray(p, nmemb, size)
Stefan Sperling 0f06079f 2020-03-18T16:11:29 add a TODO comment
Stefan Sperling a468349c 2020-03-18T16:11:29 re-enable fetching of offset deltas in got-fetch-pack
Stefan Sperling acd24462 2020-03-18T16:11:29 add a TODO comment
Stefan Sperling 06c788f9 2020-03-18T16:11:29 remove got_make_pack_dir() which is unused
Stefan Sperling cf875574 2020-03-18T16:11:29 knf
Stefan Sperling 4b20c923 2020-03-18T16:11:29 remove strip() stub function that does nothing
Stefan Sperling 4a89c790 2020-03-18T16:11:28 remove unneeded include
Stefan Sperling abe0f35f 2020-03-18T16:10:33 parse symrefs from server capabilities and transmit them over imsg
Stefan Sperling 13ce8c93 2020-03-18T16:10:33 add missing space between first wanted hash and our capability string
Stefan Sperling a6f88e33 2020-03-18T16:10:33 make got-fetch-pack sanity check error messages sent by server
Stefan Sperling 8a29a085 2020-03-18T16:10:33 make got-fetch-pack match its capabilities with those of the server
Stefan Sperling 0d0a341c 2020-03-18T16:10:33 parse server capabilities in got-fetch-pack
Stefan Sperling 9b45e112 2020-03-18T16:10:32 remove redundant colon from error message
Stefan Sperling 8f2d01a6 2020-03-18T16:10:32 send fetch progress over imsg
Stefan Sperling 018e0a9a 2020-03-18T16:10:32 rename got_fetch_pack to just fetch_pack; this function is static
Stefan Sperling 9ff10419 2020-03-18T16:10:32 convert got_fetch_pack to got_error + KNF
Stefan Sperling ccbf9d19 2020-03-18T16:10:32 remove some unused path variables from got-fetch-pack
Stefan Sperling a251e40e 2020-03-18T16:10:31 GOT_IMSG_ACK isn't needed; just fill the pipe, reading responses will block
Stefan Sperling 93658fb9 2020-03-18T16:10:30 Add initial support for network protocol. Ported from git9 by Ori Bernstein.