Commits


use socketpair(2) instead of pipe(2) for bi-directional communication On Linux, pipes returned from pipe(2) only work in one direction. This broke 'got clone' over ssh in the -portable version because got-fetch-pack assumes it can use its fetchfd for both reading and writing. I wrote a complicated diff to use two pipe(2) calls instead of one, but millert suggested a simpler solution: Use socketpair(2) instead of pipe(2). ok millert jrick tracey


dial_git(): fix memory leak and simplify Simplify dial_git() by formatting the initial Git protocol packet with dprintf, suggested by millert, and stop leaking an asprintf buffer. ok stsp


fix error checking in dial_ssh()


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


switch reflist to TAILQ; insert elements more efficiently for sorted input ok naddy


avoid signed vs unsigned comparisons in fetch.c ssizeof() macro idea courtesy of millert@ ok millert@


use size_t for loop indices to avoid signedness warnings; from emaste@freebsd


use fchmod(2) instead of chmod(2). it is less racy, and we just opened the descriptor. ok naddy@ stsp@


fix permissions mode bits for fetched pack files; patch by Alisdair MacLeod


handle failed connection attempts to git:// servers; patch by jrick


strip trailing slashes from repository path in got_fetch_parse_uri()


remove redundant leading slashes from repository path when parsing URIs


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


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