From bbfb03f98a3bdb32d5e062e74b86d573f5f0a126 Mon Sep 17 00:00:00 2001 From: l Date: Thu, 19 Mar 2020 14:36:56 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dsrs=5Fwrite=5Flarge=5Fiovs?= =?UTF-8?q?=E4=B8=ADnwrite=E6=9C=AA=E7=B4=AF=E5=8A=A0=E7=9A=84=E9=94=99?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- trunk/src/protocol/srs_protocol_utility.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/trunk/src/protocol/srs_protocol_utility.cpp b/trunk/src/protocol/srs_protocol_utility.cpp index 28141f6256..56294defbf 100644 --- a/trunk/src/protocol/srs_protocol_utility.cpp +++ b/trunk/src/protocol/srs_protocol_utility.cpp @@ -342,15 +342,19 @@ srs_error_t srs_write_large_iovs(ISrsProtocolReadWriter* skt, iovec* iovs, int s } return err; } - + // send in multiple times. int cur_iov = 0; + ssize_t nwrite = 0; while (cur_iov < size) { int cur_count = srs_min(limits, size - cur_iov); - if ((err = skt->writev(iovs + cur_iov, cur_count, pnwrite)) != srs_success) { + if ((err = skt->writev(iovs + cur_iov, cur_count, &nwrite)) != srs_success) { return srs_error_wrap(err, "writev"); } cur_iov += cur_count; + if (pnwrite) { + *pnwrite += nwrite; + } } return err;