fix streamsocket write-length calculation

Authored by sitter on Aug 12 2019, 12:05 PM.

Description

fix streamsocket write-length calculation

Summary:
TrafficShapedSocket::write has a somewhat narrow contract with its caller.
max may be 0 or >0, 0 meaning no limit, >0 meaning limit.
this was incorrectly implemented before where we'd assume max means always
limit, resulting in unlimited calls always resulting in 0 data getting
sent as max would be 0.

the revised code explicitly handles 0 meaning no limit. this is in line
with the behavior of PacketSocket, the only other implementation of
a shaped socket.

BUG: 382375

Test Plan: webseeds start working by default and download at full bandwith

Reviewers: stikonas

Reviewed By: stikonas

Differential Revision: https://phabricator.kde.org/D23111

Details

Committed
sitterAug 13 2019, 9:56 AM
Reviewer
stikonas
Differential Revision
D23111: fix streamsocket write-length calculation
Parents
R472:03c1144efc5f: unbreak http request
Branches
Unknown
Tags
Unknown