trim21 6683f95153 Add Linux CA certificate probing in start_session()
On macOS, start_session() already probes /etc/ssl/cert.pem and
/etc/ssl/certs for CA certificates. On Linux, only
set_default_verify_paths() was called, which relies on OpenSSL's
compiled-in OPENSSLDIR. When OpenSSL is statically linked or
cross-compiled, OPENSSLDIR often points to a non-existent build-time
path, leaving the SSL context with no trusted CAs.

Add a Linux-specific block that probes the standard CA bundle files:

  /etc/ssl/certs/ca-certificates.crt  (Debian, Ubuntu, Alpine, openSUSE)
  /etc/pki/tls/certs/ca-bundle.crt    (RHEL, Fedora, CentOS)

Mirrors the existing macOS probing pattern — all errors are logged
and cleared, no-op when paths don't exist.
2026-06-19 14:17:00 +02:00
2026-06-08 22:17:44 +02:00
2025-01-24 20:06:54 +01:00
2022-09-26 00:54:13 +02:00
2026-06-08 22:17:44 +02:00
2026-06-12 00:33:56 +02:00
2026-04-17 10:26:31 +02:00
2023-02-27 11:14:07 +01:00
2021-01-04 14:03:36 +01:00
2026-06-08 22:17:44 +02:00
2020-11-08 21:02:02 +01:00
2026-06-08 22:17:44 +02:00
2022-01-29 17:56:16 +01:00
2026-06-08 22:17:44 +02:00
2026-06-08 22:17:44 +02:00
2026-05-03 02:17:55 +02:00
2021-10-28 10:44:21 +02:00

.. image:: docs/img/logo-color-text.png

.. image:: https://github.com/arvidn/libtorrent/actions/workflows/windows.yml/badge.svg
    :target: https://github.com/arvidn/libtorrent/actions/workflows/windows.yml

.. image:: https://github.com/arvidn/libtorrent/actions/workflows/macos.yml/badge.svg
    :target: https://github.com/arvidn/libtorrent/actions/workflows/macos.yml

.. image:: https://github.com/arvidn/libtorrent/actions/workflows/linux.yml/badge.svg
    :target: https://github.com/arvidn/libtorrent/actions/workflows/linux.yml

.. image:: https://github.com/arvidn/libtorrent/actions/workflows/python.yml/badge.svg
    :target: https://github.com/arvidn/libtorrent/actions/workflows/python.yml

.. image:: https://ci.appveyor.com/api/projects/status/w7teauvub5813mew/branch/RC_2_0?svg=true
    :target: https://ci.appveyor.com/project/arvidn/libtorrent/branch/RC_2_0

.. image:: https://oss-fuzz-build-logs.storage.googleapis.com/badges/libtorrent.svg
    :target: https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&q=proj%3Alibtorrent&can=1

.. image:: https://codecov.io/github/arvidn/libtorrent/coverage.svg?branch=RC_2_0
    :target: https://codecov.io/github/arvidn/libtorrent?branch=RC_2_0&view=all#sort=missing&dir=desc

.. image:: https://www.openhub.net/p/rasterbar-libtorrent/widgets/project_thin_badge.gif
    :target: https://www.openhub.net/p/rasterbar-libtorrent

.. image:: https://bestpractices.coreinfrastructure.org/projects/3020/badge
    :target: https://bestpractices.coreinfrastructure.org/en/projects/3020

libtorrent is an open source C++ library implementing the BitTorrent protocol,
along with most popular extensions, making it suitable for real world
deployment. It is configurable to be able to fit both servers and embedded
devices.

The main goals of libtorrent are to be efficient and easy to use.

See `libtorrent.org`__ for more detailed build and usage instructions.

.. __: https://libtorrent.org

To build with boost-build, make sure boost and boost-build is installed and run:

   b2

In the libtorrent root. To build the examples, run ``b2`` in the ``examples``
directory.

See `building.html`__ for more details on how to build and which configuration
options are available. For python bindings, see `the python docs`__.

libtorrent `ABI report`_.

.. _`ABI report`: https://abi-laboratory.pro/index.php?view=timeline&l=libtorrent

libtorrent package versions in linux distributions, on repology_.

.. _repology: https://repology.org/project/libtorrent-rasterbar/versions

.. __: docs/building.rst
.. __: docs/python_binding.rst

S
Description
an efficient feature complete C++ bittorrent implementation
Readme Multiple Licenses 220 MiB
Languages
C++ 92.2%
Python 5%
C 1.5%
CMake 0.7%
Makefile 0.4%
Other 0.2%