remote-helpers: make recvline return an error

Instead of exiting directly, make it the duty of the caller to do so.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Felipe Contreras 2014-04-12 15:33:29 -05:00 коммит произвёл Junio C Hamano
Родитель 4a1b59c85f
Коммит 5931b33e20
1 изменённых файлов: 14 добавлений и 7 удалений

Просмотреть файл

@ -58,7 +58,7 @@ static int recvline_fh(FILE *helper, struct strbuf *buffer, const char *name)
if (strbuf_getline(buffer, helper, '\n') == EOF) { if (strbuf_getline(buffer, helper, '\n') == EOF) {
if (debug) if (debug)
fprintf(stderr, "Debug: Remote helper quit.\n"); fprintf(stderr, "Debug: Remote helper quit.\n");
exit(128); return 1;
} }
if (debug) if (debug)
@ -157,7 +157,8 @@ static struct child_process *get_helper(struct transport *transport)
while (1) { while (1) {
const char *capname; const char *capname;
int mandatory = 0; int mandatory = 0;
recvline(data, &buf); if (recvline(data, &buf))
exit(128);
if (!*buf.buf) if (!*buf.buf)
break; break;
@ -302,7 +303,8 @@ static int set_helper_option(struct transport *transport,
strbuf_addch(&buf, '\n'); strbuf_addch(&buf, '\n');
sendline(data, &buf); sendline(data, &buf);
recvline(data, &buf); if (recvline(data, &buf))
exit(128);
if (!strcmp(buf.buf, "ok")) if (!strcmp(buf.buf, "ok"))
ret = 0; ret = 0;
@ -374,7 +376,8 @@ static int fetch_with_fetch(struct transport *transport,
sendline(data, &buf); sendline(data, &buf);
while (1) { while (1) {
recvline(data, &buf); if (recvline(data, &buf))
exit(128);
if (starts_with(buf.buf, "lock ")) { if (starts_with(buf.buf, "lock ")) {
const char *name = buf.buf + 5; const char *name = buf.buf + 5;
@ -558,7 +561,9 @@ static int process_connect_service(struct transport *transport,
goto exit; goto exit;
sendline(data, &cmdbuf); sendline(data, &cmdbuf);
recvline_fh(input, &cmdbuf, name); if (recvline_fh(input, &cmdbuf, name))
exit(128);
if (!strcmp(cmdbuf.buf, "")) { if (!strcmp(cmdbuf.buf, "")) {
data->no_disconnect_req = 1; data->no_disconnect_req = 1;
if (debug) if (debug)
@ -743,7 +748,8 @@ static void push_update_refs_status(struct helper_data *data,
for (;;) { for (;;) {
char *private; char *private;
recvline(data, &buf); if (recvline(data, &buf))
exit(128);
if (!buf.len) if (!buf.len)
break; break;
@ -969,7 +975,8 @@ static struct ref *get_refs_list(struct transport *transport, int for_push)
while (1) { while (1) {
char *eov, *eon; char *eov, *eon;
recvline(data, &buf); if (recvline(data, &buf))
exit(128);
if (!*buf.buf) if (!*buf.buf)
break; break;