<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/methods/basehttp.cc, branch 3.3.1</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=3.3.1</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=3.3.1'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2026-05-17T18:53:31Z</updated>
<entry>
<title>Warn if auth.conf is unreadable (LP: #2150631)</title>
<updated>2026-05-17T18:53:31Z</updated>
<author>
<name>Varun Varma</name>
<email>varun.varma@canonical.com</email>
</author>
<published>2026-05-14T15:20:28Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=45f1fd73d0b62ce6422365a935abc317718ea142'/>
<id>urn:sha1:45f1fd73d0b62ce6422365a935abc317718ea142</id>
<content type='text'>
LP: #2150631 is a bug where trying to access an authentication-locked repo without root sends a 401 error, which is misleading since the authentication information could be in auth.conf.d, but just inaccessible without root. This adds a warning in that scenario, as well as an integration test.
</content>
</entry>
<entry>
<title>apt: funcs called with a string literal consisting of a single character</title>
<updated>2026-04-08T08:37:24Z</updated>
<author>
<name>Herman Semenoff</name>
<email>GermanAizek@yandex.ru</email>
</author>
<published>2026-04-08T08:37:24Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=af5b9453a1908021cf75c348522c1a12eeb0dee4'/>
<id>urn:sha1:af5b9453a1908021cf75c348522c1a12eeb0dee4</id>
<content type='text'>
Benchmark:
- https://stackoverflow.com/questions/62058906/why-my-performance-benchmark-gives-me-wrong-results

References:
- https://clang.llvm.org/extra/clang-tidy/checks/performance/prefer-single-char-overloads.html
</content>
</entry>
<entry>
<title>http: use Retry-After HTTP header to optimize retries</title>
<updated>2024-11-18T12:44:49Z</updated>
<author>
<name>Felix Moessbauer</name>
<email>felix.moessbauer@siemens.com</email>
</author>
<published>2024-11-08T14:04:17Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=7b9dea5a7c43fd91bcd23d1585d39a726d098285'/>
<id>urn:sha1:7b9dea5a7c43fd91bcd23d1585d39a726d098285</id>
<content type='text'>
Some mirrors like snapshot.debian.org apply strict http rate limits.
While apt already has an exponential backoff mechanism implemented, this
is not sufficient due to the following reasons:

1. all retries happen roughly at the same time
2. the retry-after information from the server is not used

We fix this by improving the algorithm: First, if present, the timestamp
or duration of the Retry-After header is added to the exponential
backoff, optimizing for success-on-second-try. Second, a random delay is
added (delay += [0, delay]) to distribute the retries to not immediately
run into the limit again. To avoid super-long delays, this is capped by
the configured maximum delay. This logic only becomes active if the
option Acquire::Retries::HandleRetryAfter is enabled.

Signed-off-by: Felix Moessbauer &lt;felix.moessbauer@siemens.com&gt;
</content>
</entry>
<entry>
<title>Modernize standard library includes</title>
<updated>2024-02-20T12:49:04Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2024-02-20T12:43:08Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=40a75722c43ae24cb9a99d6730a3b25b65819c49'/>
<id>urn:sha1:40a75722c43ae24cb9a99d6730a3b25b65819c49</id>
<content type='text'>
This was automated with sed and git-clang-format, and then I had to
fix up the top of policy.cc by hand as git-clang-format accidentally
indented it by two spaces.
</content>
</entry>
<entry>
<title>basehttp: Rename HaveContent's Tristate</title>
<updated>2021-11-23T19:19:23Z</updated>
<author>
<name>Cameron Katri</name>
<email>me@cameronkatri.com</email>
</author>
<published>2021-11-23T19:19:23Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=6f35750118a06e9d11e6aa7ab29f4ef01b75898b'/>
<id>urn:sha1:6f35750118a06e9d11e6aa7ab29f4ef01b75898b</id>
<content type='text'>
Darwin systems define TRUE and FALSE as preprocessor macros for use with
bool. This conflicts with the enum values causing the compilation to
fail.
</content>
</entry>
<entry>
<title>Merge branch 'pu/content-length-0' into 'main'</title>
<updated>2021-10-18T13:42:56Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2021-10-18T13:42:56Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=ad7bae309a827592aa228af9470c1aa7abdd189e'/>
<id>urn:sha1:ad7bae309a827592aa228af9470c1aa7abdd189e</id>
<content type='text'>
basehttp: Turn HaveContent into a TriState

See merge request apt-team/apt!179</content>
</entry>
<entry>
<title>Disable HTTP Range usage if varnish &lt; 6.4 is involved</title>
<updated>2021-09-16T20:40:00Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2021-09-16T17:48:33Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=d013f8957c0d464e0059cc107ca79d887cf9f8aa'/>
<id>urn:sha1:d013f8957c0d464e0059cc107ca79d887cf9f8aa</id>
<content type='text'>
Debian buster (oldstable) ships 6.1 while bullseye (stable) ships 6.5
and so the later is 'fixed'. Upstream declares 6.0 still as supported.
It might be still a while we encounter "bad" versions in the wild, so
if we can detect and work around the issue at runtime automatically we
can save some users from running into "persistent" partial files.

References: https://varnish-cache.org/docs/6.4/whats-new/changes-6.4.html#changes-in-behavior
</content>
</entry>
<entry>
<title>Add AllowRange option to disable HTTP Range usage</title>
<updated>2021-09-16T20:38:46Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2021-09-16T17:33:24Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=61c1d7d3658fdcd4b32f8b071cef7941120f8abc'/>
<id>urn:sha1:61c1d7d3658fdcd4b32f8b071cef7941120f8abc</id>
<content type='text'>
apt makes heavy usage of HTTP1.1 features including Range and If-Range.
Sadly it is not obvious if the involved server(s) (and proxies) actually
support them all. The Acquire::http::AllowRange option defaults to true
as before, but now a user can disable Range usage if it is known that
the involved server is not dealing with such requests correctly.
</content>
</entry>
<entry>
<title>Set haveContent to FALSE on `Content-Length: 0`</title>
<updated>2021-07-01T13:47:48Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2021-07-01T13:38:10Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=fe4201380bd377aebd25bd96a06a7eda6c74a533'/>
<id>urn:sha1:fe4201380bd377aebd25bd96a06a7eda6c74a533</id>
<content type='text'>
Set haveContent to HaveContent::FALSE when Content-Length is 0,
and change remaining code to only set it to TRUE if it has not
been set so far.

Closes: #990281
</content>
</entry>
<entry>
<title>basehttp: Turn HaveContent into a TriState</title>
<updated>2021-07-01T13:35:21Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2021-07-01T13:35:21Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=f9e2e914996ce8f0af33d5bfed52e814e0f4a861'/>
<id>urn:sha1:f9e2e914996ce8f0af33d5bfed52e814e0f4a861</id>
<content type='text'>
We need to be able to set HaveContent to false if the Content-Length
is 0, and not have that overriden just because a later header is
Content-Type.
</content>
</entry>
</feed>
