formatting fixes in client test, and made the test build when resolve countries is...
[libtorrent-kjk.git] / ChangeLog
blobc384337755e317ca761c5045e1ac690033dc9706
1         * added parole mode for peers whose data fails the hash check.
2         * optimized heap usage in piece-picker and web seed downloader.
3         * fixed bug in DHT where older write tokens weren't accepted.
4         * added support for sparse files.
5         * introduced speed categories for peers and pieces, to separate
6           slow and fast peers.
7         * added a half-open tcp connection limit that takes all connections
8           in to account, not just peer connections.
9         * added alerts for filtered IPs.
10         * added support for SOCKS5 proxies and HTTP CONNECT proxies.
11         * fixed proper distributed copies calculation.
12         * added option to use openssl for sha-1 calculations.
13         * optimized the piece picker in the case where a peer is a seed.
14         * added support for local peer discovery
15         * removed the dependency on the compiled boost.date_time library
16         * deprecated torrent_info::print()
17         * added UPnP support
18         * fixed problem where peer interested flags were not updated correctly
19           when pieces were filtered
20         * improvements to ut_pex messages, including support for seed flag
21         * prioritizes upload bandwidth to peers that might send back data
22         * the following functions have been deprecated:
23                 void torrent_handle::filter_piece(int index, bool filter) const;
24                 void torrent_handle::filter_pieces(std::vector<bool> const& pieces) const;
25                 bool torrent_handle::is_piece_filtered(int index) const;
26                 std::vector<bool> torrent_handle::filtered_pieces() const;
27                 void torrent_handle::filter_files(std::vector<bool> const& files) const;
28           
29           instead, use the piece_priority functions.
30           
31         * added support for NAT-PMP
32         * added support for piece priorities. Piece filtering is now set as
33           a priority
35 release 0.12
37         * fixes to make the DHT more compatible
38         * http seed improvements including error reporting and url encoding issues.
39         * fixed bug where directories would be left behind when moving storage
40           in some cases.
41         * fixed crashing bug when restarting or stopping the DHT.
42         * added python binding, using boost.python
43         * improved character conversion on windows when strings are not utf-8.
44         * metadata extension now respects the private flag in the torrent.
45         * made the DHT to only be used as a fallback to trackers by default.
46         * added support for HTTP redirection support for web seeds.
47         * fixed race condition when accessing a torrent that was checking its
48           fast resume data.
49         * fixed a bug in the DHT which could be triggered if the network was
50           dropped or extremely rare cases.
51         * if the download rate is limited, web seeds will now only use left-over
52           bandwidth after all bt peers have used up as much bandwidth as they can.
53         * added the possibility to have libtorrent resolve the countries of
54           the peers in torrents.
55         * improved the bandwidth limiter (it now implements a leaky bucket/node bucket).
56         * improved the HTTP seed downloader to report accurate progress.
57         * added more client peer-id signatures to be recognized.
58         * added support for HTTP servers that skip the CR before the NL at line breaks.
59         * fixed bug in the HTTP code that only accepted headers case sensitive.
60         * fixed bug where one of the session constructors didn't initialize boost.filesystem. 
61         * fixed bug when the initial checking of a torrent fails with an exception.
62         * fixed bug in DHT code which would send incorrect announce messages.
63         * fixed bug where the http header parser was case sensitive to the header
64           names.
65         * Implemented an optmization which frees the piece_picker once a torrent
66           turns into a seed.
67         * Added support for uT peer exchange extension, implemented by Massaroddel.
68         * Modified the quota management to offer better bandwidth balancing
69           between peers.
70         * logging now supports multiple sessions (different sessions now log
71           to different directories).
72         * fixed random number generator seed problem, generating the same
73           peer-id for sessions constructed the same second.
74         * added an option to accept multiple connections from the same IP.
75         * improved tracker logging.
76         * moved the file_pool into session. The number of open files is now
77           limited per session.
78         * fixed uninitialized private flag in torrent_info
79         * fixed long standing issue with file.cpp on windows. Replaced the low level
80           io functions used on windows.
81         * made it possible to associate a name with torrents without metadata.
82         * improved http-downloading performance by requesting entire pieces via
83           http.
84         * added plugin interface for extensions. And changed the interface for
85           enabling extensions.
87 release 0.11
89         * added support for incorrectly encoded paths in torrent files
90           (assumes Latin-1 encoding and converts to UTF-8).
91         * added support for destructing session objects asynchronously.
92         * fixed bug with file_progress() with files = 0 bytes
93         * fixed a race condition bug in udp_tracker_connection that could
94           cause a crash.
95         * fixed bug occuring when increasing the sequenced download threshold
96           with max availability lower than previous threshold.
97         * fixed an integer overflow bug occuring when built with gcc 4.1.x
98         * fixed crasing bug when closing while checking a torrent
99         * fixed bug causing a crash with a torrent with piece length 0
100         * added an extension to the DHT network protocol to support the
101           exchange of nodes with IPv6 addresses.
102         * modified the ip_filter api slightly to support IPv6
103         * modified the api slightly to make sequenced download threshold
104           a per torrent-setting.
105         * changed the address type to support IPv6
106         * fixed bug in piece picker which would not behave as
107           expected with regard to sequenced download threshold.
108         * fixed bug with file_progress() with files > 2 GB.
109         * added --enable-examples option to configure script.
110         * fixed problem with the resource distribution algorithm
111           (controlling e.g upload/download rates).
112         * fixed incorrect asserts in storage related to torrents with
113           zero-sized files.
114         * added support for trackerless torrents (with kademlia DHT).
115         * support for torrents with the private flag set.
116         * support for torrents containing bootstrap nodes for the
117           DHT network.
118         * fixed problem with the configure script on FreeBSD.
119         * limits the pipelining used on url-seeds.
120         * fixed problem where the shutdown always would delay for
121           session_settings::stop_tracker_timeout seconds.
122         * session::listen_on() won't reopen the socket in case the port and
123           interface is the same as the one currently in use.
124         * added http proxy support for web seeds.
125         * fixed problem where upload and download stats could become incorrect
126           in case of high cpu load.
127         * added more clients to the identifiable list.
128         * fixed fingerprint parser to cope with latest Mainline versions.
130 release 0.10
132         * fixed a bug where the requested number of peers in a tracker request could
133           be too big.
134         * fixed a bug where empty files were not created in full allocation mode.
135         * fixed a bug in storage that would, in rare cases, fail to do a
136           complete check.
137         * exposed more settings for tweaking parameters in the piece-picker,
138           downloader and uploader (http_settings replaced by session_settings).
139         * tweaked default settings to improve high bandwidth transfers.
140         * improved the piece picker performance and made it possible to download
141           popular pieces in sequence to improve disk performance.
142         * added the possibility to control upload and download limits per peer.
143         * fixed problem with re-requesting skipped pieces when peer was sending pieces
144           out of fifo-order.
145         * added support for http seeding (the GetRight protocol)
146         * renamed identifiers called 'id' in the public interface to support linking
147           with Objective.C++
148         * changed the extensions protocol to use the new one, which is also
149           implemented by uTorrent.
150         * factorized the peer_connection and added web_peer_connection which is
151           able to download from http-sources.
152         * converted the network code to use asio (resulted in slight api changes
153           dealing with network addresses).
154         * made libtorrent build in vc7 (patches from Allen Zhao)
155         * fixed bug caused when binding outgoing connections to a non-local interface.
156         * add_torrent() will now throw if called while the session object is
157           being closed.
158         * added the ability to limit the number of simultaneous half-open
159           TCP connections. Flags in peer_info has been added.
161 release 0.9.1
163         * made the session disable file name checks within the boost.filsystem library
164         * fixed race condition in the sockets
165         * strings that are invalid utf-8 strings are now decoded with the
166           local codepage on windows
167         * added the ability to build libtorrent both as a shared library
168         * client_test can now monitor a directory for torrent files and automatically
169           start and stop downloads while running
170         * fixed problem with file_size() when building on windows with unicode support
171         * added a new torrent state, allocating
172         * added a new alert, metadata_failed_alert
173         * changed the interface to session::add_torrent for some speed optimizations.
174         * greatly improved the command line control of the example client_test.
175         * fixed bug where upload rate limit was not being applied.
176         * files that are being checked will no longer stall files that don't need
177           checking.
178         * changed the way libtorrent identifies support for its excentions
179           to look for 'ext' at the end of the peer-id.
180         * improved performance by adding a circle buffer for the send buffer.
181         * fixed bugs in the http tracker connection when using an http proxy.
182         * fixed problem with storage's file pool when creating torrents and then
183           starting to seed them.
184         * hard limit on remote request queue and timeout on requests (a timeout
185           triggers rerequests). This makes libtorrent work much better with
186           "broken" clients like BitComet which may ignore requests.
188 Initial release 0.9
190         * multitracker support
191         * serves multiple torrents on a single port and a single thread
192         * supports http proxies and proxy authentication
193         * gzipped tracker-responses
194         * block level piece picker
195         * queues torrents for file check, instead of checking all of them in parallel
196         * uses separate threads for checking files and for main downloader
197         * upload and download rate limits
198         * piece-wise, unordered, incremental file allocation
199         * fast resume support
200         * supports files > 2 gigabytes
201         * supports the no_peer_id=1 extension
202         * support for udp-tracker protocol
203         * number of connections limit
204         * delays sending have messages
205         * can resume pieces downloaded in any order
206         * adjusts the length of the request queue depending on download rate
207         * supports compact=1
208         * selective downloading
209         * ip filter