From f3a3214e83be2905c57eff5d9035d169cae4644e Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Wed, 29 Jun 2005 20:50:15 -0700 Subject: Make send/receive-pack be closer to doing something interesting --- send-pack.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'send-pack.c') diff --git a/send-pack.c b/send-pack.c index af57d4028..99cb84b2c 100644 --- a/send-pack.c +++ b/send-pack.c @@ -1,4 +1,5 @@ #include "cache.h" +#include "pkt-line.h" static const char send_pack_usage[] = "git-send-pack [--exec=other] destination [heads]*"; @@ -8,13 +9,16 @@ static int send_pack(int in, int out) { for (;;) { static char buffer[1000]; - int ret = read(in, buffer, sizeof(buffer)); - if (ret > 0) { - write(1, buffer, ret); + int len; + + len = packet_read_line(in, buffer, sizeof(buffer)); + if (len > 0) { + write(2, buffer, len); continue; } break; } + packet_flush(out); close(out); return 0; } @@ -77,7 +81,7 @@ static int setup_connection(int fd[2], char *url, char **heads) if (host) execlp("ssh", "ssh", host, command, NULL); else - execlp(host, command, NULL); + execlp("sh", "sh", "-c", command, NULL); die("exec failed"); } fd[0] = pipefd[0][0]; -- cgit v1.2.1