btpd 0.13: ---------- Misc: - cURL is no longer required. btpd now uses its own http client. - btpd doesn't use threads anymore, so pthreads are not required. - Needed parts of libevent are now included in btpd. - I/O errors for torrents no longer make btpd shut down. Instead the problematic torrent is stopped. - Added the option '--ip' to specify the ip address btpd will report to trackers. - Resume file format changed. Already added torrents will be retested once. - The torrent info (ratio etc.) are now saved regularly. - Reduced the amount of outgoing data kept in memory. btpd 0.12: ---------- Misc: - btpd now starts with the same set of active torrents as it had when it was last shut down. The new '--empty-start' option disables this feature. - btpd now supports the key tracker extension. - btpd now supports the multi tracker extension. - btcli list and stat print headers for the presented data. Both commands displays more data than before. - Torrent management has changed, with changes to the add and del commands and two new commands, start and stop, as a result. Operation on torrents can now be done by number as well as torrent file. - A small delay has been added for contacting the same announce URL. - btpd sends keepalive messages. - The number of have messages sent has been reduced by not sending them to peers that already have the piece. - The structure of the torrents directory in the btpd directory has changed. It is best to remove it before running btpd 0.12. Bug fixes: - Zero sized files in a torrent were not always created. btpd 0.11: ---------- Bug fixes: - A file descriptor was closed too early, which could cause btpd to exit with an error message on systems using epoll. btpd 0.10: ---------- Misc: - The protection mode of the ipc socket can now be specified via the new "--ipcprot" option for btpd. Bug fixes: - The pid file is now written correctly. - btpd's "-d" option now works for relative paths too. - Add a time out for handshake completion. Prevously btpd could slowly fill with unused incoming connections. btpd 0.9: --------- Misc: - Small changes to 'btcli stat' output. Bug fixes: - Use correct value for '--prealloc' default. - Stopped torrents now show correct rates (0kB/s). - The test of content that has been modified between runs was broken. btpd 0.8: --------- Misc: - btpd now requires pthreads. - btpd keeps its logs and other information it needs in its own directory. $HOME/.btpd is the default location. - Various changes in btpd options ant btcli use. See '--help'. - The user chooses where to place content for each torrent. - Better disk IO performance. - Configureable disk preallocation to reduce file fragmentation. - The unchoke algorithm is global instead of per torrent. The number of peers to upload to is configurable. - Tracker errors are displayed in 'btcli stat' and most importantly don't make torrents unload on startup. - The rates displayed by btcli are now computed in btpd and are averaged over the last 20 seconds. - btpd now compares size and mtime of content to see if the resume file is valid. Bug fixes: - Double uninterest messages could be sent to some peers in endgame mode. - A function was called prematurely which could trigger an assert in rare cases. btpd 0.7: --------- Bug fixes: - Some communication stupidities was fixed, resulting in better download performance. btpd 0.6: --------- Misc: - Set an upper limit on how much data a peer can request at once. This protects from running out of memory because of a greedy peer. - End game is more efficient and uses much less memory. btpd 0.5: --------- Bug fixes: - The bitfield could be sent too late. This could cause the receiving peer to close the connection. btpd 0.4: --------- Misc: - The 0.1 rate limiter is back. It runs at a configurable hz now. - Added "--bw-hz" option to btpd. - Multiple have messages can be sent in place of a bitfield. - If btpd can't write to a peer for 60s, it will be disconnected. Bug fixes: - A calculation error made btpd buggy with small torrents. This caused strange crashes and many reports on bad hashes in the log. - The bitfield was sent too early. A peer could miss pieces btpd got while the peer was in handshake. - Some situations in end game or with bad hashes could cause a crash. btpd 0.3: --------- Misc: - New download strategy. - Pipe ten requests instead of five. - "-d" option added to btpd. - "--with-warn" option added to configure. The default is now to compile with warnings off. Bug fixes: - It was possible for blocks to remain marked as busy when a peer choked or was lost, causing a piece download to wait until end game. - The peer wanted level could get too high during end game. btpd 0.2: --------- Misc: - A new way to do rate limiting. - Compact mode is now used when talking to the tracker. Bug fixes: - A buffer was too small by four bytes, causing a buffer overflow on the heap in certain conditions. - An iteration over a list was unsafe and could cause a crash. - Unloading a torrent didn't kill peers in handshake for that torrent, and a crash was possible when the handshake finished. - The counter for uploaded data was updated too early. - Fixed illegal operator for test(1) in configure.