File tree Expand file tree Collapse file tree 1 file changed +7
-2
lines changed Expand file tree Collapse file tree 1 file changed +7
-2
lines changed Original file line number Diff line number Diff line change @@ -1513,7 +1513,9 @@ void TcpConnectionImpl::sendFileInLoop(const BufferNodePtr &filePtr)
1513
1513
{
1514
1514
auto n = read (filePtr->sendFd_ ,
1515
1515
&(*fileBufferPtr_)[0 ],
1516
- fileBufferPtr_->size ());
1516
+ std::min (fileBufferPtr_->size (),
1517
+ static_cast <decltype (fileBufferPtr_->size ())>(
1518
+ filePtr->fileBytesToSend_ )));
1517
1519
#else
1518
1520
_fseeki64 (filePtr->sendFp_ , filePtr->offset_ , SEEK_SET);
1519
1521
if (!fileBufferPtr_)
@@ -1522,9 +1524,12 @@ void TcpConnectionImpl::sendFileInLoop(const BufferNodePtr &filePtr)
1522
1524
}
1523
1525
while (filePtr->fileBytesToSend_ > 0 )
1524
1526
{
1527
+ auto bytes = static_cast <decltype (fileBufferPtr_->size ())>(
1528
+ filePtr->fileBytesToSend_ );
1525
1529
auto n = fread (&(*fileBufferPtr_)[0 ],
1526
1530
1 ,
1527
- fileBufferPtr_->size (),
1531
+ (fileBufferPtr_->size () < bytes ? fileBufferPtr_->size ()
1532
+ : bytes),
1528
1533
filePtr->sendFp_ );
1529
1534
#endif
1530
1535
if (n > 0 )
You can’t perform that action at this time.
0 commit comments