mirror of
https://github.com/git/git
synced 2024-10-30 04:01:21 +00:00
This removes the last parameter of recv_sideband, by which the callers told which channel bands #2 and #3 should be written to. Sayeth Shawn Pearce: The definition of the streams in the current sideband protocol are rather well defined for the one protocol that uses it, fetch-pack/receive-pack: stream #1: pack data stream #2: stderr messages, progress, meant for tty stream #3: abort message, remote is dead, goodbye! Since both callers of the function passed 2 for the parameter, we hereby remove it and send bands #2 and #3 to stderr explicitly using fprintf. This has the nice side-effect that these two streams pass through our ANSI emulation layer on Windows. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Acked-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
c4994ce953
commit
34df8abaf3
4 changed files with 11 additions and 14 deletions
|
@ -52,7 +52,7 @@ static int run_remote_archiver(int argc, const char **argv,
|
|||
die("git archive: expected a flush");
|
||||
|
||||
/* Now, start reading from fd[0] and spit it out to stdout */
|
||||
rv = recv_sideband("archive", fd[0], 1, 2);
|
||||
rv = recv_sideband("archive", fd[0], 1);
|
||||
close(fd[0]);
|
||||
close(fd[1]);
|
||||
rv |= finish_connect(conn);
|
||||
|
|
|
@ -482,7 +482,7 @@ static int sideband_demux(int fd, void *data)
|
|||
{
|
||||
int *xd = data;
|
||||
|
||||
return recv_sideband("fetch-pack", xd[0], fd, 2);
|
||||
return recv_sideband("fetch-pack", xd[0], fd);
|
||||
}
|
||||
|
||||
static int get_pack(int xd[2], char **pack_lockfile)
|
||||
|
|
19
sideband.c
19
sideband.c
|
@ -19,7 +19,7 @@
|
|||
|
||||
#define FIX_SIZE 10 /* large enough for any of the above */
|
||||
|
||||
int recv_sideband(const char *me, int in_stream, int out, int err)
|
||||
int recv_sideband(const char *me, int in_stream, int out)
|
||||
{
|
||||
unsigned pf = strlen(PREFIX);
|
||||
unsigned sf;
|
||||
|
@ -41,8 +41,7 @@ int recv_sideband(const char *me, int in_stream, int out, int err)
|
|||
if (len == 0)
|
||||
break;
|
||||
if (len < 1) {
|
||||
len = sprintf(buf, "%s: protocol error: no band designator\n", me);
|
||||
safe_write(err, buf, len);
|
||||
fprintf(stderr, "%s: protocol error: no band designator\n", me);
|
||||
return SIDEBAND_PROTOCOL_ERROR;
|
||||
}
|
||||
band = buf[pf] & 0xff;
|
||||
|
@ -50,8 +49,8 @@ int recv_sideband(const char *me, int in_stream, int out, int err)
|
|||
switch (band) {
|
||||
case 3:
|
||||
buf[pf] = ' ';
|
||||
buf[pf+1+len] = '\n';
|
||||
safe_write(err, buf, pf+1+len+1);
|
||||
buf[pf+1+len] = '\0';
|
||||
fprintf(stderr, "%s\n", buf);
|
||||
return SIDEBAND_REMOTE_ERROR;
|
||||
case 2:
|
||||
buf[pf] = ' ';
|
||||
|
@ -95,12 +94,12 @@ int recv_sideband(const char *me, int in_stream, int out, int err)
|
|||
memcpy(save, b + brk, sf);
|
||||
b[brk + sf - 1] = b[brk - 1];
|
||||
memcpy(b + brk - 1, suffix, sf);
|
||||
safe_write(err, b, brk + sf);
|
||||
fprintf(stderr, "%.*s", brk + sf, b);
|
||||
memcpy(b + brk, save, sf);
|
||||
len -= brk;
|
||||
} else {
|
||||
int l = brk ? brk : len;
|
||||
safe_write(err, b, l);
|
||||
fprintf(stderr, "%.*s", l, b);
|
||||
len -= l;
|
||||
}
|
||||
|
||||
|
@ -112,10 +111,8 @@ int recv_sideband(const char *me, int in_stream, int out, int err)
|
|||
safe_write(out, buf + pf+1, len);
|
||||
continue;
|
||||
default:
|
||||
len = sprintf(buf,
|
||||
"%s: protocol error: bad band #%d\n",
|
||||
me, band);
|
||||
safe_write(err, buf, len);
|
||||
fprintf(stderr, "%s: protocol error: bad band #%d\n",
|
||||
me, band);
|
||||
return SIDEBAND_PROTOCOL_ERROR;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#define DEFAULT_PACKET_MAX 1000
|
||||
#define LARGE_PACKET_MAX 65520
|
||||
|
||||
int recv_sideband(const char *me, int in_stream, int out, int err);
|
||||
int recv_sideband(const char *me, int in_stream, int out);
|
||||
ssize_t send_sideband(int fd, int band, const char *data, ssize_t sz, int packet_max);
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue