349 lines
16 KiB
Plaintext
349 lines
16 KiB
Plaintext
|
|
* add_tracker() function added to torrent_handle
|
|
* if there is no working tracker, current_tracker is the
|
|
tracker that is currently being tried
|
|
* torrents that are checking can now be paused, which will
|
|
pause the checking
|
|
* introduced another torrent state, checking_resume_data, which
|
|
the torrent is in when it's first added, and is comparing
|
|
the files on disk with the resume data
|
|
* DHT bandwidth usage optimizations
|
|
* rate limited DHT send socket
|
|
* tracker connections are now also subject to IP filtering
|
|
* improved optimistic unchoke logic
|
|
* added monitoring of the DHT lookups
|
|
* added bandwidth reports for estimated TCP/IP overhead and DHT
|
|
* includes DHT traffic in the rate limiter
|
|
|
|
release 0.14.1
|
|
|
|
* fixed DHT bug
|
|
* fixed potential shutdown crash in disk_io_thread
|
|
* fixed usage of deprecated boost.filsystem functions
|
|
* fixed http_connection unit test
|
|
* fixed bug in DHT when a DHT state was loaded
|
|
* made rate limiter change in 0.14 optional (to take estimated
|
|
TCP/IP overhead into account)
|
|
* made the python plugin buildable through the makefile
|
|
* fixed UPnP bug when url base ended with a slash and
|
|
path started with a slash
|
|
* fixed various potentially leaking exceptions
|
|
* fixed problem with removing torrents that are checking
|
|
* fixed documentation bug regarding save_resume_data()
|
|
* added missing documentation on torrent creation
|
|
* fixed bugs in python client examples
|
|
* fixed missing dependency in package-config file
|
|
* fixed shared geoip linking in Jamfile
|
|
* fixed python bindings build on windows and made it possible
|
|
to generate a windows installer
|
|
|
|
release 0.14
|
|
|
|
* deprecated add_torrent() in favor of a new add_torrent()
|
|
that takes a struct with parameters instead. Torrents
|
|
are paused and auto managed by default.
|
|
* removed 'connecting_to_tracker' torrent state. This changes
|
|
the enum values for the other states.
|
|
* Improved seeding and choking behavior.
|
|
* Fixed rare buffer overrun bug when calling get_download_queue
|
|
* Fixed rare bug where torrent could be put back into downloading
|
|
state even though it was finished, after checking files.
|
|
* Fixed rename_file to work before the file on disk has been
|
|
created.
|
|
* Fixed bug in tracker connections in case of errors caused
|
|
in the connection constructor.
|
|
* Updated alert system to be filtered by category instead of
|
|
severity level. Alerts can generate a message through
|
|
alert::message().
|
|
* Session constructor will now start dht, upnp, natpmp, lsd by
|
|
default. Flags can be passed in to the constructor to not
|
|
do this, if these features are to be enabled and disabled
|
|
at a later point.
|
|
* Removed 'connecting_to_tracker' torrent state
|
|
* Fix bug where FAST pieces were cancelled on choke
|
|
* Fixed problems with restoring piece states when hash failed.
|
|
* Minimum peer reconnect time fix. Peers with no failures would
|
|
reconnect immediately.
|
|
* Improved web seed error handling
|
|
* DHT announce fixes and off-by-one loop fix
|
|
* Fixed UPnP xml parse bug where it would ignore the port number
|
|
for the control url.
|
|
* Fixed bug in torrent writer where the private flag was added
|
|
outside of the info dictionary
|
|
* Made the torrent file parser less strict of what goes in the
|
|
announce-list entry
|
|
* Fixed type overflow bug where some statistics was incorrectly
|
|
reported for file larger than 2 GB
|
|
* boost-1.35 support
|
|
* Fixed bug in statistics from web server peers where it sometimes
|
|
could report too many bytes downloaded.
|
|
* Fixed bug where statistics from the last second was lost when
|
|
disconnecting a peer.
|
|
* receive buffer optimizations (memcpy savings and memory savings)
|
|
* Support for specifying the TOS byte for peer traffic.
|
|
* Basic support for queueing of torrents.
|
|
* Better bias to give connections to downloading torrents
|
|
with fewer peers.
|
|
* Optimized resource usage (removed the checking thread)
|
|
* Support to bind outgoing connections to specific ports
|
|
* Disk cache support.
|
|
* New, more memory efficient, piece picker with sequential download
|
|
support (instead of the more complicated sequential download threshold).
|
|
* Auto Upload slots. Automtically opens up more slots if
|
|
upload limit is not met.
|
|
* Improved NAT-PMP support by querying the default gateway
|
|
* Improved UPnP support by ignoring routers not on the clients subnet.
|
|
|
|
release 0.13
|
|
|
|
* Added scrape support
|
|
* Added add_extension() to torrent_handle. Can instantiate
|
|
extensions for torrents while downloading
|
|
* Added support for remove_torrent to delete the files as well
|
|
* Fixed issue with failing async_accept on windows
|
|
* DHT improvements, proper error messages are now returned when
|
|
nodes sends bad packets
|
|
* Optimized the country table used to resolve country of peers
|
|
* Copying optimization for sending data. Data is no longer copied from
|
|
the disk I/O buffer to the send buffer.
|
|
* Buffer optimization to use a raw buffer instead of std::vector<char>
|
|
* Improved file storage to use sparse files
|
|
* Updated python bindings
|
|
* Added more clients to the identifiable clients list.
|
|
* Torrents can now be started in paused state (to better support queuing)
|
|
* Improved IPv6 support (support for IPv6 extension to trackers and
|
|
listens on both IPv6 and IPv4 interfaces).
|
|
* Improved asserts used. Generates a stacktrace on linux
|
|
* Piece picker optimizations and improvements
|
|
* Improved unchoker, connection limit and rate limiter
|
|
* Support for FAST extension
|
|
* Fixed invalid calculation in DHT node distance
|
|
* Fixed bug in URL parser that failed to parse IPv6 addresses
|
|
* added peer download rate approximation
|
|
* added port filter for outgoing connection (to prevent
|
|
triggering firewalls)
|
|
* made most parameters configurable via session_settings
|
|
* added encryption support
|
|
* added parole mode for peers whose data fails the hash check.
|
|
* optimized heap usage in piece-picker and web seed downloader.
|
|
* fixed bug in DHT where older write tokens weren't accepted.
|
|
* added support for sparse files.
|
|
* introduced speed categories for peers and pieces, to separate
|
|
slow and fast peers.
|
|
* added a half-open tcp connection limit that takes all connections
|
|
in to account, not just peer connections.
|
|
* added alerts for filtered IPs.
|
|
* added support for SOCKS4 and 5 proxies and HTTP CONNECT proxies.
|
|
* fixed proper distributed copies calculation.
|
|
* added option to use openssl for sha-1 calculations.
|
|
* optimized the piece picker in the case where a peer is a seed.
|
|
* added support for local peer discovery
|
|
* removed the dependency on the compiled boost.date_time library
|
|
* deprecated torrent_info::print()
|
|
* added UPnP support
|
|
* fixed problem where peer interested flags were not updated correctly
|
|
when pieces were filtered
|
|
* improvements to ut_pex messages, including support for seed flag
|
|
* prioritizes upload bandwidth to peers that might send back data
|
|
* the following functions have been deprecated:
|
|
void torrent_handle::filter_piece(int index, bool filter) const;
|
|
void torrent_handle::filter_pieces(std::vector<bool> const& pieces) const;
|
|
bool torrent_handle::is_piece_filtered(int index) const;
|
|
std::vector<bool> torrent_handle::filtered_pieces() const;
|
|
void torrent_handle::filter_files(std::vector<bool> const& files) const;
|
|
|
|
instead, use the piece_priority functions.
|
|
|
|
* added support for NAT-PMP
|
|
* added support for piece priorities. Piece filtering is now set as
|
|
a priority
|
|
* Fixed crash when last piece was smaller than one block and reading
|
|
fastresume data for that piece
|
|
* Makefiles should do a better job detecting boost
|
|
* Fixed crash when all tracker urls are removed
|
|
* Log files can now be created at user supplied path
|
|
* Log files failing to create is no longer fatal
|
|
* Fixed dead-lock in torrent_handle
|
|
* Made it build with boost 1.34 on windows
|
|
* Fixed bug in URL parser that failed to parse IPv6 addresses
|
|
* Fixed bug in DHT, related to IPv6 nodes
|
|
* DHT accepts transaction IDs that have garbage appended to them
|
|
* DHT logs messages that it fails to decode
|
|
|
|
release 0.12
|
|
|
|
* fixes to make the DHT more compatible
|
|
* http seed improvements including error reporting and url encoding issues.
|
|
* fixed bug where directories would be left behind when moving storage
|
|
in some cases.
|
|
* fixed crashing bug when restarting or stopping the DHT.
|
|
* added python binding, using boost.python
|
|
* improved character conversion on windows when strings are not utf-8.
|
|
* metadata extension now respects the private flag in the torrent.
|
|
* made the DHT to only be used as a fallback to trackers by default.
|
|
* added support for HTTP redirection support for web seeds.
|
|
* fixed race condition when accessing a torrent that was checking its
|
|
fast resume data.
|
|
* fixed a bug in the DHT which could be triggered if the network was
|
|
dropped or extremely rare cases.
|
|
* if the download rate is limited, web seeds will now only use left-over
|
|
bandwidth after all bt peers have used up as much bandwidth as they can.
|
|
* added the possibility to have libtorrent resolve the countries of
|
|
the peers in torrents.
|
|
* improved the bandwidth limiter (it now implements a leaky bucket/node bucket).
|
|
* improved the HTTP seed downloader to report accurate progress.
|
|
* added more client peer-id signatures to be recognized.
|
|
* added support for HTTP servers that skip the CR before the NL at line breaks.
|
|
* fixed bug in the HTTP code that only accepted headers case sensitive.
|
|
* fixed bug where one of the session constructors didn't initialize boost.filesystem.
|
|
* fixed bug when the initial checking of a torrent fails with an exception.
|
|
* fixed bug in DHT code which would send incorrect announce messages.
|
|
* fixed bug where the http header parser was case sensitive to the header
|
|
names.
|
|
* Implemented an optmization which frees the piece_picker once a torrent
|
|
turns into a seed.
|
|
* Added support for uT peer exchange extension, implemented by Massaroddel.
|
|
* Modified the quota management to offer better bandwidth balancing
|
|
between peers.
|
|
* logging now supports multiple sessions (different sessions now log
|
|
to different directories).
|
|
* fixed random number generator seed problem, generating the same
|
|
peer-id for sessions constructed the same second.
|
|
* added an option to accept multiple connections from the same IP.
|
|
* improved tracker logging.
|
|
* moved the file_pool into session. The number of open files is now
|
|
limited per session.
|
|
* fixed uninitialized private flag in torrent_info
|
|
* fixed long standing issue with file.cpp on windows. Replaced the low level
|
|
io functions used on windows.
|
|
* made it possible to associate a name with torrents without metadata.
|
|
* improved http-downloading performance by requesting entire pieces via
|
|
http.
|
|
* added plugin interface for extensions. And changed the interface for
|
|
enabling extensions.
|
|
|
|
release 0.11
|
|
|
|
* added support for incorrectly encoded paths in torrent files
|
|
(assumes Latin-1 encoding and converts to UTF-8).
|
|
* added support for destructing session objects asynchronously.
|
|
* fixed bug with file_progress() with files = 0 bytes
|
|
* fixed a race condition bug in udp_tracker_connection that could
|
|
cause a crash.
|
|
* fixed bug occuring when increasing the sequenced download threshold
|
|
with max availability lower than previous threshold.
|
|
* fixed an integer overflow bug occuring when built with gcc 4.1.x
|
|
* fixed crasing bug when closing while checking a torrent
|
|
* fixed bug causing a crash with a torrent with piece length 0
|
|
* added an extension to the DHT network protocol to support the
|
|
exchange of nodes with IPv6 addresses.
|
|
* modified the ip_filter api slightly to support IPv6
|
|
* modified the api slightly to make sequenced download threshold
|
|
a per torrent-setting.
|
|
* changed the address type to support IPv6
|
|
* fixed bug in piece picker which would not behave as
|
|
expected with regard to sequenced download threshold.
|
|
* fixed bug with file_progress() with files > 2 GB.
|
|
* added --enable-examples option to configure script.
|
|
* fixed problem with the resource distribution algorithm
|
|
(controlling e.g upload/download rates).
|
|
* fixed incorrect asserts in storage related to torrents with
|
|
zero-sized files.
|
|
* added support for trackerless torrents (with kademlia DHT).
|
|
* support for torrents with the private flag set.
|
|
* support for torrents containing bootstrap nodes for the
|
|
DHT network.
|
|
* fixed problem with the configure script on FreeBSD.
|
|
* limits the pipelining used on url-seeds.
|
|
* fixed problem where the shutdown always would delay for
|
|
session_settings::stop_tracker_timeout seconds.
|
|
* session::listen_on() won't reopen the socket in case the port and
|
|
interface is the same as the one currently in use.
|
|
* added http proxy support for web seeds.
|
|
* fixed problem where upload and download stats could become incorrect
|
|
in case of high cpu load.
|
|
* added more clients to the identifiable list.
|
|
* fixed fingerprint parser to cope with latest Mainline versions.
|
|
|
|
release 0.10
|
|
|
|
* fixed a bug where the requested number of peers in a tracker request could
|
|
be too big.
|
|
* fixed a bug where empty files were not created in full allocation mode.
|
|
* fixed a bug in storage that would, in rare cases, fail to do a
|
|
complete check.
|
|
* exposed more settings for tweaking parameters in the piece-picker,
|
|
downloader and uploader (http_settings replaced by session_settings).
|
|
* tweaked default settings to improve high bandwidth transfers.
|
|
* improved the piece picker performance and made it possible to download
|
|
popular pieces in sequence to improve disk performance.
|
|
* added the possibility to control upload and download limits per peer.
|
|
* fixed problem with re-requesting skipped pieces when peer was sending pieces
|
|
out of fifo-order.
|
|
* added support for http seeding (the GetRight protocol)
|
|
* renamed identifiers called 'id' in the public interface to support linking
|
|
with Objective.C++
|
|
* changed the extensions protocol to use the new one, which is also
|
|
implemented by uTorrent.
|
|
* factorized the peer_connection and added web_peer_connection which is
|
|
able to download from http-sources.
|
|
* converted the network code to use asio (resulted in slight api changes
|
|
dealing with network addresses).
|
|
* made libtorrent build in vc7 (patches from Allen Zhao)
|
|
* fixed bug caused when binding outgoing connections to a non-local interface.
|
|
* add_torrent() will now throw if called while the session object is
|
|
being closed.
|
|
* added the ability to limit the number of simultaneous half-open
|
|
TCP connections. Flags in peer_info has been added.
|
|
|
|
release 0.9.1
|
|
|
|
* made the session disable file name checks within the boost.filsystem library
|
|
* fixed race condition in the sockets
|
|
* strings that are invalid utf-8 strings are now decoded with the
|
|
local codepage on windows
|
|
* added the ability to build libtorrent both as a shared library
|
|
* client_test can now monitor a directory for torrent files and automatically
|
|
start and stop downloads while running
|
|
* fixed problem with file_size() when building on windows with unicode support
|
|
* added a new torrent state, allocating
|
|
* added a new alert, metadata_failed_alert
|
|
* changed the interface to session::add_torrent for some speed optimizations.
|
|
* greatly improved the command line control of the example client_test.
|
|
* fixed bug where upload rate limit was not being applied.
|
|
* files that are being checked will no longer stall files that don't need
|
|
checking.
|
|
* changed the way libtorrent identifies support for its excentions
|
|
to look for 'ext' at the end of the peer-id.
|
|
* improved performance by adding a circle buffer for the send buffer.
|
|
* fixed bugs in the http tracker connection when using an http proxy.
|
|
* fixed problem with storage's file pool when creating torrents and then
|
|
starting to seed them.
|
|
* hard limit on remote request queue and timeout on requests (a timeout
|
|
triggers rerequests). This makes libtorrent work much better with
|
|
"broken" clients like BitComet which may ignore requests.
|
|
|
|
Initial release 0.9
|
|
|
|
* multitracker support
|
|
* serves multiple torrents on a single port and a single thread
|
|
* supports http proxies and proxy authentication
|
|
* gzipped tracker-responses
|
|
* block level piece picker
|
|
* queues torrents for file check, instead of checking all of them in parallel
|
|
* uses separate threads for checking files and for main downloader
|
|
* upload and download rate limits
|
|
* piece-wise, unordered, incremental file allocation
|
|
* fast resume support
|
|
* supports files > 2 gigabytes
|
|
* supports the no_peer_id=1 extension
|
|
* support for udp-tracker protocol
|
|
* number of connections limit
|
|
* delays sending have messages
|
|
* can resume pieces downloaded in any order
|
|
* adjusts the length of the request queue depending on download rate
|
|
* supports compact=1
|
|
* selective downloading
|
|
* ip filter
|
|
|