<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/methods/connect.cc, branch 3.3.0</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=3.3.0</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=3.3.0'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2026-05-01T16:27:11Z</updated>
<entry>
<title>apt-pkg: methods: fixed many minor memleaks</title>
<updated>2026-05-01T16:27:11Z</updated>
<author>
<name>Herman Semenoff</name>
<email>GermanAizek@yandex.ru</email>
</author>
<published>2026-04-08T10:09:52Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=e79f9bb22375fd72330b534e17dcd3ceace432e8'/>
<id>urn:sha1:e79f9bb22375fd72330b534e17dcd3ceace432e8</id>
<content type='text'>
Static analysis has shown that there are many minor memleaks.
</content>
</entry>
<entry>
<title>tls: Do not trigger assertion after closing connection</title>
<updated>2025-06-24T16:52:46Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2025-06-15T14:49:22Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=2c889aca1b3f792797753d73a94bc0c6f269f526'/>
<id>urn:sha1:2c889aca1b3f792797753d73a94bc0c6f269f526</id>
<content type='text'>
In HasPending(), we assert that there is an open connection
object (ssl), but it seems we can end up calling HasPending()
after calling Close().

Therefore, remove the assertion and include ssl != nullptr as
the first requirement.

Closes: #1107827
</content>
</entry>
<entry>
<title>Fix regression that prevented sending intermediate client certificates</title>
<updated>2025-01-23T22:24:37Z</updated>
<author>
<name>Sam Hartman</name>
<email>hartmans@debian.org</email>
</author>
<published>2025-01-23T22:12:44Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=8e4619c73b320e2e539a17a9eb459acf0514533a'/>
<id>urn:sha1:8e4619c73b320e2e539a17a9eb459acf0514533a</id>
<content type='text'>
The change from the GNUTLS backend to the OpenSSL backend only loads
the first certificate from a client certificate file. As a result it
is no longer possible to send intermediate client certificates to the
server to assist in certificate verification.  Instead call
ssl_ctx_use_certificate_chain_file so intermediate certificates can be
sent.

Signed-off-by: Sam Hartman &lt;hartmans@debian.org&gt;
</content>
</entry>
<entry>
<title>methods/connect: Avoid unused argument warning</title>
<updated>2025-01-14T10:26:31Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-01-14T10:26:31Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=cb2c0dbc70b1432173d8a02d8c46a4b9f107fe52'/>
<id>urn:sha1:cb2c0dbc70b1432173d8a02d8c46a4b9f107fe52</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge branch 'fix/cleanup' into 'main'</title>
<updated>2025-01-14T08:26:23Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2025-01-14T08:26:23Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=ce452d40f499fa56f6ddc15e8871b1262d4e1418'/>
<id>urn:sha1:ce452d40f499fa56f6ddc15e8871b1262d4e1418</id>
<content type='text'>
Drop unused and obsolete macros as well as documentation

See merge request apt-team/apt!428</content>
</entry>
<entry>
<title>ssl: Explictly return -1 (error) or 0 (server closed connection)</title>
<updated>2025-01-08T18:22:36Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-01-08T18:17:42Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=20c9b6894790ef5f9b763e429dbd8f51c2e091e2'/>
<id>urn:sha1:20c9b6894790ef5f9b763e429dbd8f51c2e091e2</id>
<content type='text'>
SSL_read() and SSL_write may return 0 for errors, whereas our
callers only expect -1 for errors and 0 for closed connections,
so map this accordingly.
</content>
</entry>
<entry>
<title>ssl: Set an error when we receive SSL_ERROR_SYSCALL</title>
<updated>2025-01-08T18:22:34Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2025-01-08T18:13:37Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=a8be42ef4de786b4dacdc175419df92ab0193ed9'/>
<id>urn:sha1:a8be42ef4de786b4dacdc175419df92ab0193ed9</id>
<content type='text'>
The OpenSSL docs say:
&gt; For socket I/O on Unix systems, consult errno for details

but also:
&gt; This value can also be returned for other errors,
&gt; check the error queue for details.

This means it's possible errno isn't set, in which case
we may appear to have reached an EOF when we did not.
</content>
</entry>
<entry>
<title>Drop usage of macro APT_OVERRIDE for simple override</title>
<updated>2025-01-05T22:16:08Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2024-12-26T19:41:53Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=f73593a4034d9eec0ec4466b8e173d4a4daece1f'/>
<id>urn:sha1:f73593a4034d9eec0ec4466b8e173d4a4daece1f</id>
<content type='text'>
We were rather inconsistent in using it and as our public headers
contain deduction guides (a c++17 feature) it seems silly to try to hide
a c++11 feature in a macro, so lets stop this charade and drop the
macro and while we are changing all these lines lets apply [[nodiscard]]
(another c++17 feature) and other suggestions from clang-tidy and
formatting for a little more consistency.
</content>
</entry>
<entry>
<title>Remove GnuTLS and gcrypt support</title>
<updated>2024-12-22T22:45:15Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2024-12-21T14:26:34Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=7b1fb90b93ced7c0772d726e512da01fad456852'/>
<id>urn:sha1:7b1fb90b93ced7c0772d726e512da01fad456852</id>
<content type='text'>
OpenSSL is mandatory now, it is no longer possible to build
without https support either.
</content>
</entry>
<entry>
<title>hashes, methods: Add OpenSSL backends</title>
<updated>2024-12-22T21:55:39Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2024-12-18T18:37:40Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=90270f0959d490d56db891809d83c91b3d4b9bf0'/>
<id>urn:sha1:90270f0959d490d56db891809d83c91b3d4b9bf0</id>
<content type='text'>
Introduce an OpenSSL::Crypto backend for the hashes library
and an OpenSSL::SSL backend for the TLS support in our https
method.

Many thanks to curl for showing the way with how to handle
a CRL file. There are some memory leaks here with the
TlsFd itself as well as the proxy support; and we should
reorganize the code to generate the ssl object as late
as possible.

A peculiar aspect of OpenSSL is that SSL_has_pending() returns
1 even if SSL_read() will fail to read anything and return the
equivalent of EAGAIN. We work around this here by also peeking
ahead 1 byte. I was running a very high RTT connection from
Germany to Australia for testing, and with the peeking it's
using negligible amounts of CPU; before that, it was busy
looping at 100%. Bad OpenSSL!
</content>
</entry>
</feed>
