libtorrent with premiere torrent support
Go to file
Steven Siloti dc612b6423 keep updating aux::time_now() while there are announces
This fixes an infinite loop when an announce during shutown fails and
aux::time_now() has fallen behind clock_type::now() by more than the
delay calculated in announce_entry::failed(). If this happens,
announce_entry::can_announce() can forever return true when called from
torrent::announce_with_tracker() because that function uses
clock_type::now().

Also change torrent::announce_with_tracker() to use aux::time_now() just
for consistency with the reset of the announce related functions.
2017-10-26 23:42:35 +02:00
bindings Expose torrent_alert::torrent_name in python bindings (#2449) 2017-10-15 23:53:44 +02:00
docs don't hard-code the paths to find openssl on mac (but default to picking up brew). Add two new jam features, openssl-lib and openssl-include that can be used to specify which openssl to link against 2017-10-08 03:00:02 +02:00
ed25519 run undefined sanitier on travis/linux (#1134) 2016-10-08 12:29:46 -04:00
examples enforce spell checking on CI 2017-06-18 15:51:51 -04:00
include/libtorrent fix documentation typo 2017-10-14 13:54:43 +02:00
m4 Fix autoreconf AC_LANG_CONFTEST warnings 2016-11-26 23:38:56 -05:00
simulation fix IPv6 tracker support by performing the second announce in more cases 2017-08-19 18:56:51 +02:00
src keep updating aux::time_now() while there are announces 2017-10-26 23:42:35 +02:00
test fix infinite loop when parsing certain invalid magnet links 2017-10-11 09:11:58 +02:00
tools remove pointless test 2017-10-03 11:28:06 +02:00
.gitignore Add missing announce_entry properties to python bindings 2017-02-11 08:07:43 -05:00
.gitmodules add .gitmodules 2015-08-07 23:19:37 -04:00
.travis.yml back port aldenml's patch from master to fix brew issue 2017-09-23 09:08:20 -07:00
AUTHORS fix infinite loop when parsing torrents whose filenames have zeroes. #2247 2017-08-16 07:21:34 +02:00
CMakeLists.txt add missing files to CMakeLists.txt for test suite 2017-10-14 13:32:21 +02:00
COPYING merge copyright year update and changelog from RC_1_0 2016-01-17 18:57:46 -05:00
ChangeLog fix full allocation failure on APFS 2017-10-16 00:08:10 +02:00
Jamfile prevent dependency on openssl from leaking outside of libtorrent (libssl and libcrypto should not be a usage requirement). This cleans up most tests to build without having to also link against openssl 2017-10-09 17:15:35 +02:00
Jamroot.jam add Jamroot.jam 2012-06-14 05:43:10 +00:00
LICENSE merge copyright year update and changelog from RC_1_0 2016-01-17 18:57:46 -05:00
Makefile.am add bitcoin donation button 2017-07-17 22:59:40 -07:00
NEWS polishing, update copyright 2014-07-02 07:17:50 +00:00
README.rst make codecov link use list view 2015-12-19 23:06:00 -05:00
appveyor.yml don't hard-code the paths to find openssl on mac (but default to picking up brew). Add two new jam features, openssl-lib and openssl-include that can be used to specify which openssl to link against 2017-10-08 03:00:02 +02:00
autotool.sh forward port autotool.sh fix 2017-01-04 21:34:21 -05:00
bootstrap.sh merged bootstrap.sh script from RC_0_16 2013-05-29 02:11:15 +00:00
build_dist.sh update build_dist.sh 2017-10-05 02:47:40 +02:00
configure.ac Fixes --with-libiconv-prefix option 2017-10-26 11:15:51 +02:00
libtorrent-rasterbar-cmake.pc.in don't add to pkg-config. #462 2009-01-07 02:22:58 +00:00
libtorrent-rasterbar.pc.in merged fixes from RC_0_16 2013-09-07 21:27:07 +00:00
setup.py Add/fix shebang in python scripts, add execute permission (linux), remove whitespace/tabs at end of line 2015-07-12 14:24:01 +08:00

README.rst

libtorrent
----------

.. image:: https://travis-ci.org/arvidn/libtorrent.svg?branch=master
    :target: https://travis-ci.org/arvidn/libtorrent

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

.. image:: https://codecov.io/github/arvidn/libtorrent/coverage.svg?branch=master
    :target: https://codecov.io/github/arvidn/libtorrent?branch=master&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?ref=sample

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.

.. __: http://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`__.

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

pull request checklist
......................

When creating a pull request, please consider the following checklist:

* make sure both travis-CI and appveyor builds are green. Note that on gcc and
  clang warnings are treated as errors. Some tests may be flapping, if so,
  please issue a rebuild of the specific build configuration. (I'm working on
  making all tests deterministic)
* If adding a user-facing feature, please add brief entry to ``ChangeLog``
* Add a unit test to confirm the new behavior or feature. Don't forget negative
  tests (i.e. failure cases) and please pay as much care to tests as you would
  production code.
* rebase on top of master periodically
* if your patch is against the current stable release branch, please also
  forward-port the patch to master (at the time of this writing, automatic
  merge in git does not work, possibly because the branch was created in svn)
* if your patch adds a new .cpp file, please make sure it's added to the
  appropriate ``Jamfile``, ``Makefile.am`` and ``CMakeList.txt``. If it's adding
  a header file, make sure it's added to ``include/libtorrent/Makefile.am``.