From: Jeff Hostetler <jeffhost@xxxxxxxxxxxxx> Create version of `write_packetized_from_buf()` that takes a scratch buffer argument rather than assuming a static buffer. This will be used later as we make packet-line writing more thread-safe. Signed-off-by: Jeff Hostetler <jeffhost@xxxxxxxxxxxxx> --- pkt-line.c | 9 ++++++++- pkt-line.h | 2 ++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/pkt-line.c b/pkt-line.c index 14af049cd9c..5d86354cbeb 100644 --- a/pkt-line.c +++ b/pkt-line.c @@ -278,6 +278,13 @@ int write_packetized_from_fd(int fd_in, int fd_out) int write_packetized_from_buf(const char *src_in, size_t len, int fd_out) { static struct packet_scratch_space scratch; + + return write_packetized_from_buf2(src_in, len, fd_out, &scratch); +} + +int write_packetized_from_buf2(const char *src_in, size_t len, int fd_out, + struct packet_scratch_space *scratch) +{ int err = 0; size_t bytes_written = 0; size_t bytes_to_write; @@ -289,7 +296,7 @@ int write_packetized_from_buf(const char *src_in, size_t len, int fd_out) bytes_to_write = len - bytes_written; if (bytes_to_write == 0) break; - err = packet_write_gently(fd_out, src_in + bytes_written, bytes_to_write, &scratch); + err = packet_write_gently(fd_out, src_in + bytes_written, bytes_to_write, scratch); bytes_written += bytes_to_write; } if (!err) diff --git a/pkt-line.h b/pkt-line.h index 4ccd6f88926..f1d5625e91f 100644 --- a/pkt-line.h +++ b/pkt-line.h @@ -41,6 +41,8 @@ int packet_flush_gently(int fd); int packet_write_fmt_gently(int fd, const char *fmt, ...) __attribute__((format (printf, 2, 3))); int write_packetized_from_fd(int fd_in, int fd_out); int write_packetized_from_buf(const char *src_in, size_t len, int fd_out); +int write_packetized_from_buf2(const char *src_in, size_t len, int fd_out, + struct packet_scratch_space *scratch); /* * Read a packetized line into the buffer, which must be at least size bytes -- gitgitgadget