* 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