~neon/libktorrent/master

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
Changes in 2.0.1:
- Fix ui lags and hangs when downloading to ntfs partition

Changes in 2.0:
- Port to KF5/Qt5: QHttp-based tracker communication was dropped in favour of KIO-based one
- Optimize queue data structures shown up by callgrind
- fix issues found by Coverity static analyzer

Changes in 1.4:
- Decrease code redundancy in torrent loading code
- Add support for TR-064 IGD's
- Make sure we do not connect to the custom IP or the routers IP (316446)
- Fix url query not getting passed to webseed download requests (318325)
- Fix bug causing eta estimation to go wrong during uploading (320699)

Changes in 1.3.2:
- Fix bug causing authenticated peers not to get accepted

Changes in 1.3.1:
- Add workaround for broken handling of btrfs subvolumes by solid (306825)
- Fix crash when preallocating diskspace when a file is enabled during the download of a torrent (307178) 
- Make sure stats get updated properly during data check (308707)
- Bind peer sockets to preferred interface for outbound connections
- Fix bug causing UDP connections not to get established on FreeBSD because FIONREAD returns the size of the data and the peer address (Review: 108076)

Changes in 1.3:
- Do not pass link local IPv6 addresses to ip parameter of tracker (305187)

Changes in 1.3rc1:
- Implement BEP 32, IPv6 DHT (295194)
- Revamp DHT code and follow spec more closely on routing table
- Revamp SingleFileCache, MultiFileCache and data preallocation
- Webseeds now follow connection limits (184941)
- Add new SignalCatcher class to handle UNIX signals (296835)
- Make TimeEstimator return sortable values (298542)
- Keep track of partitions files of torrents are on
- Add methods to check if storage is mounted
- Make sure all trackers are used of a magnet link (302997, 303269)
- Fix warning message about locale being recreated
- Fix crash in DHT code caused by infinite recursion (300974)

Changes in 1.2.1:
- Fix deadlock in webseeding code (295719)
- Fix individual torrent download limit not working
- Fix build on FreeBSD
- Fix crash due to attempting to call pop_front on an empty list (299536)

Changes in 1.2:
- Fix large file preallocation when not using quick preallocation in some cases (293279)
- Disable current open file checking, it causes performance issues in some situations
- Don't use the gcrypt version macro in it's version check (294866)

Changes in 1.2rc1:
- Make it possible to check data on chunk ranges instead of the entire torrent
- Move data file jobs are now done one after the other (212614)
- Implement partial seeding extension (256263)
- Add support for IPv6 traffic class field
- Make sure a torrent is restarted when it was auto stopped and more files are selected for downloading (179945)
- Emit finished signal when torrent is found completely downloaded in data check
- Seeders and leechers shown in view is now the maximum of all trackers and not the sum
- Do not add trackers with unsupported protocols (278352)
- Improve SIGBUS handling, fixes a crash (276777)
- Remove usage of several deprecated KDE3 networking classes
- Remove obsolete functions of data check during upload
- Simplify blocklist interface
- Revamp networking code
- Remove thread from DHT code
- Prevent file descriptor exhaustion from happening (251120, 282873, 274544)
- Do not count non piece data in upload speed calculation (283170)
- Fix IPv6 address parsing bug
- Improve performance of µTP code
- Fix crash in DHT packet receive code (284627)
- Fill ip parameter of tracker announce with current IPv6 address if not filled in by user in settings (267551)
- Fix crash in PeerManager (287967)
- Fix crash at exit when datachecker job is running (289153)
- Fix crash due to bug in smaller then operator of net::Address (288444)
- Fix crash due to race condition in logging initialization (286597)

Changes in 1.1.3:
- Fix bug causing UPnP not to work properly if there is a question mark in the controlurl
- Fix crash in webseed code (281605)

Changes in 1.1.2:
- Fix bug causing time left calculation to return something when a torrent is paused (272182)
- Improve performance of UTP delay window algorithm
- Fix files not getting downloaded when they change from only seed to some other priority
- Fix crash when cleaning up mse::StreamSocket (277076)

Changes in 1.1.1:
- Fix deadlock in utp::OutputQueue when packet sending fails
- Fix bug causing scrape not to be done after first announce 
- Fix crash in DHT code caused by invalid addresses (269657)
- Fix crash in DHT code caused by unsynchronized access to a QSet (270127)
- Fix bug causing running time to be wrong when pausing torrents (271521)

Changes in 1.1:
- Improve performance of chunk selection code when there are many chunks
- Fix crash in peer authentication cleanup (266622)
- Fix crash due to SIGBUS handler being overwritten by KDE's crash dialog system (266842)
- Be more lenient towards torrents with wrong announce-list field (268145)
- Fix root cause of SHA1HashGen crashes in 1.0 series (268162)

Changes in 1.1rc1:
- Fix bug in UPnP so that it works properly with D-Link DIR 635 routers
- Fix crash due to manipulating timers in the wrong thread (261903)
- Fix compiler warning in TimeEstimator (262618)
- Fix crash due to cleaning up timer in the wrong thread (260712)
- Fix crash due to not properly cleaning up Peers and everything related when switching to superseeding mode (261529)
- Fix invalid read in utp timer cleanup code (263800)
- Fix crashes at exit (264378, 256639)

Changes in 1.1beta1:
- Use UTF-8 as default codec in bt::Value::toString
- Make sure that SIGBUS signals caused by failed mmapped IO are dealt with properly (241598)
- Move UPnP library from ktorrent/libktupnp to libktorrent
- Add support for superseeding (171661)
- Add command line example ktcli showing how to use libktorrent
- Add TransportProtocol field to Peer::Stats
- Fix crash due to missing reset of Poll object in DHT listening thread (243603)
- Ensure that libktorrent works properly with bindv6only flag on (238688)
- Ensure that torrent names are not interpreted as directories (244418)
- Fix crash when cleaning up PeerConnectors (245796)
- Fix crash on exit when cleaning up UPnP requests
- UPnPRouter now retrieves the external IP of the router
- Fix bug causing error message not to show rich text (247680)
- Use libgcrypt for RC4 implementation
- Use smart pointers for mse::StreamSocket (246693)
- Make sure that data checking fails if files cannot be opened when the maximum file limit is reached
- Add methods to get the current upload and download rate limit
- Fix deadlock in µTP code caused by interlocking mutexes
- Make sure MoveDataFilesJob properly emits signals so ktorrent can show a progress dialog (255369)
- Revamp PieceData management, fixes a crash (247984)
- Add support for warning message parameter in tracker replies
- Make sure connection setup slots are distributed fairly to avoid starvation
- Use weak pointers in PeerConnector and Authenticate (257126)
- When a webseed has 3 connection failures, wait 30 seconds and try again instead of not using it anymore (258210)
- Fix crash in PeerConnector cleanup (258878)
- Queue data checks so that they run one after the other (215711)
- Revamp UTP code with smart pointers
- Disable webseeds if they send data which does not match (261449)
- Fix uninitialized value bug in UDP tracker

Changes in 1.0.5:
- Update PeerID client identifications
- Backport fix for bug which causes some chunks not to get unmapped properly
- Make sure UTPServer is running when setting up a connection with a UTPSocket (254334)
- Increase maximum packet size to fix a bug causing peers to be dropped when they shouldn't (255264)
- Simplify PeerConnector cleanup code
- Fix bug causing file selecting to fail after a torrent was loaded from data (258138)
- Fix crash due to not checking for 0 pointer in multimedia file check (258967)
- Fix a bug with sequence number wrap around being handled badly in UTP
- Make sure that UTP write notifiers are only accessed in µTP thread

Changes in 1.0.4:
- Fix race condition causing timers not to be removed in the µTP code, resulting in a crash (251117)
- Fix deadlock in µTP code caused by keeping a mutex lock longer then necessary

Changes in 1.0.3:
- Fix crash in HTTPAnnounceJob due to abort call (244198)
- Show KDE progress dialogs when moving files (244023)
- Fix crash when µTP binding fails (244935)
- Backport PeerConnector crash fixes (245796)
- Decrease authentication timeout to 5 seconds
- Fix crash due to double delete in µTP code
- Don't throw error when log file cannot be opened, prevents crash (246757)
- Fix bug causing wrong download running time to be saved when a torrent is running (247384)
- Fix crash due to monitor not being notified of a chunk download being removed (246483)
- Fix potential dangling pointer problem in µTP code
- Fix bug causing timer to be started from wrong thread in µTP code
- Fix floating point inaccuracy bug causing seeding to hit the max share ratio a little bit to soon
- Use 2 digit precision when displaying byte sizes

Changes in 1.0.2:
- Fix subtle bug causing some connections to be dropped prematurely
- Fix bug causing tracker replies with only IPv6 addresses to be misinterpreted as an invalid reply
- Fix bug with sequence number wrapping around in µTP causing bad_alloc's (242042)
- Fix deadlock in µTP code
- Fix crash in DecompressFileJob (243243)

Changes in 1.0.1:
- Make sure that KT binds correctly on systems with net.ipv6.bindv6only set to 1 (238688)
- Fix bug causing seeding of readonly files to fail with no free disk space errors (239023)
- Fix crashes caused by ServerInterface::newConnection being called in µTP thread (240003, 239944)
- Fix crash caused by uncaught exception when saving DHT table (240294)
- Fix bug causing lots of diskspace activity (241339)
- Fix bug causing imported bytes to be counted as downloaded bytes in tracker announces

Changes in 1.0:
- Fix crash at shutdown in when UTP is running (236741)
- Remove some logging messages in UTP code
- Log errors being thrown to better debug uncaught exception bugs

Changes in 1.0rc1:
- Add support for base32 magnet links
- Update torrent status properly when torrent is in seeding complete state and a new file is selected for downloading (232278)
- Fix crash in PeerConnector destruction (233775)
- Make move on completion a per torrent feature
- Make sure that during loading of the stats, they are not saved again
- Fix crash caused by dangling pointer to PollPipe
- Add method to calculate the average download speed since the last unchoke of a peer
- Add doxygen api docs generation with cmake
- Remove all KMessageBox's, the client application needs to handle these errors
- Fix crash due to uncaught exception in UTP code