haiku/headers/os/net
Adrien Destugues f15516ff92 Package Kit: re-use downloads from unfinished transactions
There are three parts to this change:
- In FetchFileJob, if the request fails with a timeout or IO error
  (probably because of unstable connection) attempt to resume the
  download with a range request. No limit on number of retries
  currently, maybe we should add one.
- In PackageManager, before downloading a file, look around in other
  transaction directories in case it's already there. Partial and
  complete downloads are differentiated by an attribute which the
  fetch file job maintains. For complete downloads, no fetch job is
  scheduled, for partial downloads, the fetch job will request the
  remainder of the file.
- In BHttpRequest, the implementation of SetRangeStart() and
  SetRangeEnd() have been added, along with some refactoring to
  handle listener notifications consistently. This also fixed a
  bug where the final notification for download progress was not
  emitted for compressed data.

Fixes #12414.

Change-Id: I3e285741ed0e5651594a7c2e1c7170644a9d297d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3404
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
2021-01-09 15:20:09 +00:00
..
AbstractSocket.h libbnetapi: Extend socket classes. 2016-04-28 22:30:40 -04:00
Certificate.h BHttpRequest: add SSL certificate exception management. 2015-11-09 10:46:58 +01:00
DatagramSocket.h libbnetapi: Extend socket classes. 2016-04-28 22:30:40 -04:00
DataRequest.h libbnetapi: Disallow instantiation of BUrlRequest subclasses directly 2020-10-12 06:36:00 +00:00
FileRequest.h libbnetapi: Disallow instantiation of BUrlRequest subclasses directly 2020-10-12 06:36:00 +00:00
GopherRequest.h libbnetapi: Disallow instantiation of BUrlRequest subclasses directly 2020-10-12 06:36:00 +00:00
HttpAuthentication.h HttpAuthentication: Add explicit copy & assignment constructors. 2016-05-13 16:49:52 -04:00
HttpForm.h BHttpForm: Clang also uses pair<> now. 2017-12-18 17:58:04 -05:00
HttpHeaders.h libbnetapi: fix access to HTTP headers 2017-01-30 20:27:52 +01:00
HttpRequest.h Package Kit: re-use downloads from unfinished transactions 2021-01-09 15:20:09 +00:00
HttpResult.h libbnetapi: fix access to HTTP headers 2017-01-30 20:27:52 +01:00
net_settings.h Rewrote header. Don't know if this is even used/supported. 2009-08-27 12:45:31 +00:00
NetAddress.h Overhauled BNetEndpoint implementation (and BNetAddress, too): 2008-07-13 19:58:35 +00:00
NetBuffer.h - Changed BNetBuffer to a simpler (and R5 compatible) implementation. 2009-01-17 21:28:10 +00:00
NetDebug.h Checked-in the update Scott Mansfield made to these BNet* classes declarations to male 2002-12-17 01:24:44 +00:00
NetEndpoint.h BNetEndpoint: Fix socket leak and reduce Accept() overhead. 2013-11-24 22:36:29 +01:00
NetworkAddress.h Add support for TLS SNI 2016-06-20 19:42:24 -04:00
NetworkAddressResolver.h NetworkAddressResolver: cache needs to be locked 2017-11-21 22:15:32 +01:00
NetworkCookie.h More relaxing of cookie-setting rules 2014-06-09 11:17:49 +02:00
NetworkCookieJar.h Made the wrong constructor private. 2014-06-11 19:27:03 +02:00
NetworkDevice.h Network Kit: add BNetworkDevice::Control 2016-03-15 21:59:03 +01:00
NetworkInterface.h libbnetapi: Add BNetworkRoute to replace use of route_entry. 2015-04-12 18:50:00 +02:00
NetworkNotifications.h Fix the build, which was broken in r39147. 2010-10-26 10:24:17 +00:00
NetworkRequest.h UrlRequest: add empty SetTimeout for ease of use. 2014-09-26 15:51:36 +02:00
NetworkRoster.h libbnetapi: Add BNetworkRoute to replace use of route_entry. 2015-04-12 18:50:00 +02:00
NetworkRoute.h libbnetapi: Add BNetworkRoute to replace use of route_entry. 2015-04-12 18:50:00 +02:00
ProxySecureSocket.h Implement CONNECT pass-through for HTTPS proxy 2015-11-11 01:16:38 +01:00
SecureSocket.h Add support for TLS SNI 2016-06-20 19:42:24 -04:00
Socket.h libbnetapi: Extend socket classes. 2016-04-28 22:30:40 -04:00
UrlContext.h Adapt all consumers of HashSet and HashMap to the slightly-different APIs. 2019-02-15 00:34:36 +00:00
UrlProtocolAsynchronousListener.h Make BUrlProtocolAsynchronousListener inherit BUrlProtocolListener 2013-10-15 10:16:33 +02:00
UrlProtocolDispatchingListener.h libbnetapi: fix access to HTTP headers 2017-01-30 20:27:52 +01:00
UrlProtocolListener.h docs: Add documentation for BUrlProtocolListener 2020-06-20 18:13:33 +00:00
UrlProtocolRoster.h Refactor UrlRequest/UrlProtocol in the Service Kit 2013-10-08 11:42:05 +02:00
UrlRequest.h UrlRequest: add empty SetTimeout for ease of use. 2014-09-26 15:51:36 +02:00
UrlResult.h libbnetapi: fix access to HTTP headers 2017-01-30 20:27:52 +01:00
UrlSynchronousRequest.h libbnetapi: fix access to HTTP headers 2017-01-30 20:27:52 +01:00