Browse Source

pkt-line: add packet_flush_gently()

packet_flush() would die in case of a write error even though for some
callers an error would be acceptable. Add packet_flush_gently() which
writes a pkt-line flush packet like packet_flush() but does not die in
case of an error. The function is used in a subsequent patch.

Signed-off-by: Lars Schneider <larsxschneider@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Lars Schneider 8 years ago committed by Junio C Hamano
parent
commit
038ce90f2f
  1. 8
      pkt-line.c
  2. 1
      pkt-line.h

8
pkt-line.c

@ -91,6 +91,14 @@ void packet_flush(int fd) @@ -91,6 +91,14 @@ void packet_flush(int fd)
write_or_die(fd, "0000", 4);
}

int packet_flush_gently(int fd)
{
packet_trace("0000", 4, 1);
if (write_in_full(fd, "0000", 4) == 4)
return 0;
return error("flush packet write failed");
}

void packet_buf_flush(struct strbuf *buf)
{
packet_trace("0000", 4, 1);

1
pkt-line.h

@ -23,6 +23,7 @@ void packet_flush(int fd); @@ -23,6 +23,7 @@ void packet_flush(int fd);
void packet_write_fmt(int fd, const char *fmt, ...) __attribute__((format (printf, 2, 3)));
void packet_buf_flush(struct strbuf *buf);
void packet_buf_write(struct strbuf *buf, const char *fmt, ...) __attribute__((format (printf, 2, 3)));
int packet_flush_gently(int fd);
int packet_write_fmt_gently(int fd, const char *fmt, ...) __attribute__((format (printf, 2, 3)));

/*

Loading…
Cancel
Save