Commit Briefs

Stefan Sperling

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


Christian Weisgerber

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


Stefan Sperling

fix error checking in dial_ssh()


Stefan Sperling

make close(2) failure checks consistent; check 'close() == -1' everywhere

ok millert, naddy



Stefan Sperling

avoid signed vs unsigned comparisons in fetch.c

ssizeof() macro idea courtesy of millert@ ok millert@








Christian Weisgerber

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


Christian Weisgerber

use the POSIX standard endian functions and explicitly include <endian.h>

ok stsp


Christian Weisgerber

do not rely on <zlib.h> to pull in <unistd.h>

ok stsp


Sebastien marie

don't override port configuration with explicit argument if the url doesn't contains it

it permits to .ssh/config to be honored same diff from stsp@


Stefan Sperling

stop verifying pack file checksum in the main process during clone/fetch

Both got-fetch-pack and got-index-pack now verify the pack file checksum. This means we can avoid reading the entire pack file in the main process just to verify its checksum and avoid a noticable stall between fetching and indexing on slow machines.