httppeer: calculate total expected bytes correctly

Authored by av6.

Description

httppeer: calculate total expected bytes correctly

User-facing error messages that handled httplib.IncompleteRead errors in
Mercurial used to look like this:

abort: HTTP request error (incomplete response; expected 3 bytes got 1)

But the errors that are being handled underneath the UI look like this:

IncompleteRead(1 bytes read, 3 more expected)

I.e. the error actually counts total number of expected bytes minus bytes
already received.

Before, users could see weird messages like "expected 10 bytes got 10", while
in reality httplib expected 10 _more_ bytes (20 in total).

Details

Committed
av6Sep 8 2018, 11:57 AM
Parents
rHG77a2f6d805f2: lazyancestors: reuse __iter__ implementation in __contains__
Branches
Unknown
Tags
Unknown