forked from frostwire/frostwire-jlibtorrent
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathchangelog.txt
482 lines (455 loc) · 23.6 KB
/
changelog.txt
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
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
1.2.0.19
* libtorrent release 1.2.0
* using android NDK r18b
* updated to boost 1.69.0
* updated to OpenSSL 1.1.1a
* fixed activeDhtLimit SettingsPack setter
* development: new local build scripts for macosx, android, linux, windows
* lt:only allow cwnd to be reduced so often (utp)
* lt:avoid announcing local ip to private tracker
* lt:don't treat loss of MTU probe packet as a congestion signal (utp)
* lt:make sure we reset the duplicate ack counter every time we don't receive
a duplicate ack (utp)
* lt:remove old (incompatible) sequence number build option (utp)
* lt:don't leave slow-start just because we hit the advertized receive window
* lt:simplify and improve the uTP deferred ACK logic to respond earlier
* lt:improve logic for fast-retransmitting packets on incoming SACK
* lt:improve utp verbose logging a bit and make the parser pull out more
metrics
* lt:restore permissions on directories to 1.1. i.e. rely on umask
* lt:minor fix to invalid_request_alert logging
* lt:add assignment operator to span
* lt:fix %u -> %d format codes
* lt:fix deprecation markup in torrent_status
* lt:tweak heuristic of how to interpret url seeds in multi-file torrents
* lt:added more TORRENT_DEPRECATED_ENUM and deprecated unused aio_max in
settings_pack
* lt:take a string_view in setting_by_name
* lt:fix typo in peer log
* lt:deprecate start_default_features flag, it's only used in deprecated API
* lt:remove verbose peer logging
* lt:make stack_allocator::format_string() grow the buffer for large strings
* lt:move where socket buffers are set up, to happen after the socket is
opened. log errors in the peer's log instead of session and torrent
* lt:add stats counter for the number of outstanding async_accept calls
* lt:fix potential issue where the dht port message is sent before the peer
handshake
* lt:correct %u format code for pieces in printf() calls
* lt:attempt to fix an assert for a newly connected peer that disconnects just
as we receive the metadata
* lt:don't use page aligned disk buffers
* lt:include &ipv4= for private trackers
* lt:add support for &ipv4= tracker argument
* lt:use new bdecoder in ut_metadata class
* lt:fix redundant bytes overflow
* lt:check for self-assignment in bitfield operator=
* lt:initialize bencoded ints with zero when constructed
* lt:exit natpmp::on_reply earlier if we're shutting down
* lt:fix setting ipv6 interface
* lt:a better fix to the ssl port announce bug
* lt:perfect forward async handlers for udp_socket to underlying asio socket
* lt:move the whole add_torrent_params object into save_resume_data_alert
* lt:actually fix the issue with the second tracker announce with port 0
* lt:remove redundant MTU boundary checks
* lt:fix of asio-debugging build in natpmp. resend_request could be called
directly, not only as a handler for an async operation
* lt:fix move_storage with save_path with a trailing slash
* lt:only make snubbed peers invert the piece picking strategy when we're
doing rarest first
* lt:ssl listen port fix and improved tracker announce logging
* lt:properly tear down the disk_io_thread object in set_piece_hashes() when
exiting via an exception
* lt:make throwing versions of read_resume_data
* lt:fix overflow in sliding_average in the case of very high download rates
* lt:renamed debug_notification to connect_notification
* lt:fix issue in udp_socket with unusual socket failure
* lt:utp close-reason use after free fix
* lt:source code cleanup, performance and stability
1.2.0.18
* using android NDK r17c
* updated to boost 1.68.0
* updated to OpenSSL 1.1.1
* expose to java SWIG api the aux::arm_neon_support flag for android
runtime verification
* removed hack of custom getauxval definition
* removed hack of fgetpos fsetpos
* removed hack of mulodi4
* null check protection in EnumNet
* added new constructor to TorrentInfo from byte array
* improved API for AnnounceEntry
* added AnnounceEndpoint java API, it is a lightweight class
* convert ErrorCode to a lightweight class
* convert PeerInfo to a lightweight class, client is UTF-8 decoded
* Vectors.byte_vector2string supports only ASCII and UTF-8
* lt:fix redundant flushes of partfile metadata
* lt:fix overflow in calc_bytes(), fix bug in piece picker accounting of
filtered pad blocks
* lt:improve type-safety of the severity parameter to
peer_connection::disconnect()
* lt:fix seed count when attaching a peer is aborted
* lt:add option to ignore min-interval from tracker, when
force-reannouncing a tracker
* lt:raise default value for active_limit to 500, since it's supposed to be
an upper sanity check limit
* lt:make the print function for entry actually be json-like
* lt:fall back to copy+remove if rename_file fails
* lt:improve handling of filesystems not supporting fallocate()
* lt:improve piece picker performance in tracking pad-blocks
* lt:force proxy no longer disables the DHT
* lt:simplify total_have/have_want/total_want. Make piece_picker track pad
blocks and compute byte-progress at block granularity
* lt:fix issue in self-connection detection introduced with the change to
generate unique peer-ids for each connection.
* lt:fix exporting files to avoid overwriting existing files, before
exporting anything from a parts file, check whether it contains valid data
* lt:improve connect-boost feature, to make new torrents quickly connect
peers
* lt:add a few more stats counters measuring outgoing connection attempts.
simplify session_stats_header_alert by posting it on first call to
post_session_stats() instead of making it gated by the alert_mask
* lt:remove dead code from piece picker
* lt:tweak the auto-cache-size logic to have slightly smaller cache
* lt:fix deprecation of mmap_cache
* lt:add missing increment of on_disk_counter and num_blocks_hashed counters
* lt:apply piece priorities immediately, even though file priority updates
are async. save both file- and piece priorities in fast resume
* lt:simplify natpmp gateway and local address discovery
* lt:fix typo in #if tests for TORRENT_DISABLE_ENCRYPTION
* lt:in torrent_handle::id(), only shift down the pointer by 10 bits
* lt:add piece index range checks on have_piece() and read_piece()
* lt:make metric_type_t an enum class, deprecate the in-class enum values
* lt:only post alerts for newly opened listen sockets, and only attempt to
map ports for newly opened sockets
* lt:remove special handling of uTP peers, uTP connections are no longer
exempt from rate limits by default
* lt:make natpmp deal with address_v6 instead of the bytes_type, and use
write_address instead of memcpy
* lt:fix exporting files from partfile while seeding
* lt:set port in handshake based on source address
* lt:fix Windows "file::preadv" emulation EOF handling
* lt:fix windows async read EOF handling
* lt:fix bug in read/write resume data functions
* lt:dht don't set implied_port for SSL torrents
* lt:dht announce with per-interface listen port
* lt:deprecate (and disable) the force-proxy setting. Instead, always use
the proxy when set, never fall back on circumventing it
* lt:move the file priority vector throught the disk_io_job, to avoid copies
* lt:raise priority of cache_flushed_alert and post it unconditionally when
triggered explicitly by the client
* lt:fix some validation issues in read_resume_data()
* lt:bump the minimum number of hash jobs per thread from 2 to 4
* lt:fix deadlock when loading libtorrent Dll
* lt:fix torrent files prioritization
* lt:fix some unintentional copies (with explicit moves)
* lt:qualify some assignment operators to disallow assignment to temporaries
* lt:fix missing move of file object in part_file
* lt:use more threads when creating torrents
* lt:bump checking_mem_usage default setting
* lt:enable coalesce_reads and coalesce_writes by default on windows
* lt:set the minimum number of checking jobs based on the number of hasher
threads
* lt:fix coalesce read bug
* lt:introduce a fast-path for the hash disk job
* lt:fix race condition in part_file
* lt:fix parts file i/o errors
* lt:fixed sign implicit conversion warnings and loop logic in new enum_net
code
* lt:improve the API for iterating over all files and pieces, with the new
strong index types
* lt:deprecate network-threads setting
* lt:scrape_reply_alert should be high priority, since it's triggered by the
client
* lt:add support for multi-home NAT-PMP and Port Control Protocol (PCP)
* lt:report transport version in NAT-PMP send/receive logs
* lt:return a vector of mapping ids from add_port_mapping
* lt:don't re-map all listen sockets when changing listen_interfaces
* lt:create a natpmp instance for each listen socket
* lt:enum_routes fixes on Linux
* lt:fix scope_id in enum_routes on Windows
* lt:remove UNC prefixes from device names on Windows
* lt:fix netmask of routes on Windows
* lt:deliver notification of alerts being dropped via alerts_dropped_alert
* lt:raise priority of fastresume_rejected_alert
* lt:don't use the partfile for existing files when their priority is 0
* lt:set the hidden attribute when creating the part file
* lt:only start a new accept request on new listen sockets, fix mapping new
listen sockets when re-mapping is not requested
* lt:don't change state to downloading if the torrent is finished
* lt:bump `file_error_alert` priority
* lt:fix address of point-to-point interfaces
* lt:don't enable reuse-address for UDP sockets, as it will always succeed
and not get any incoming packets
* lt:account for partially downloaded pieces when announcing as a seed
* lt:fix bandwidth allocation
* lt:don't attempt to make uTP connections if we don't have any outgoing UDP
sockets
* lt:fix empty outgoing interfaces for UDP sockets
* lt:only allow pinged nodes into the DHT routing table
* lt:introduce a recursive mutex to protect the alert_manager, and hold the
mutex while calling user callbacks and plugin hooks
* lt:revise alert priorities / torrent::on_resume_data_checked issue
* lt:save the number of idle threads locally in
disk_io_thread_pool::thread_active
* lt:fix use after free in flush_range and flush_iovec
* lt:honor torrent abort even on file check error
* lt:use settings_pack::urlseed_wait_retry for default retry with http seeds
* lt:fix storage initialization
* lt:strtoll() returns LLONG_MAX if the input overflows, handle this case
properly in the http parser
* lt:remove the global cache of the current time, just use clock::now()
* lt:deprecated alert::progress_notification alert category, split into
finer grained categories
* lt:disk_io_thread abort_hash_jobs duplicate code refactor
* lt:fix part-file header allocation
* lt:fix potential fd leak in enum_net_interfaces
* lt:don't perform DNS lookups for the DHT bootstrap unless DHT is enabled
* lt:avoid calls to .address() when looking for endpoint protocol
* lt:removed unnecessary loop in request_a_block
* lt:fix changing file priorities while checking interrupts checking
* lt:fix issue where the current tracker would be skipped for the next
tracker in the same tier
* lt:remove redundant check in tracker announce
* lt:minor fixes in utp_socket_impl
* lt:stat files in the disk thread, in default_storage::initialize()
instead of the constructor
* lt:dynamically load getauxval so as to support older android devices
* lt:track whether a file is eligible for using the partfile on a per-file
basis
* lt:define NETLINK_NO_ENOBUFS and IFA_D_DADFAILED if they don't exist
* lt:fix reporting &redundant= in tracker announces
* lt:fix windows build with UNC paths disabled
* lt:fix issue querying block size from torrent before metadata has been
received
* lt:source code cleanup, performance and stability
1.2.0.17
* added EnumNet java API to help query the device network state/status/info
* compiling with -mstackrealign for android x86, some devices have stack
alignment issues
* lt:fix tie-break in duplicate peer connection disconnect logic
* lt:fix issue with SSL tracker connections left in CLOSE_WAIT state
* lt:defer truncating existing files until the first time we write to them
* lt:fix issue when receiving a torrent with 0-sized padfiles as magnet link
* lt:fix issue resuming 1.0.x downloads with a file priority 0
* lt:fix torrent_status::next_announce
* lt:turn piece picker option flags into a proper type
* lt:fix pad-file scalability issue
* lt:made coalesce_reads/coalesce_writes settings take effect on linux
and windows
* lt:source code cleanup, performance and stability
1.2.0.16
* using version in native library names
* updated to boost 1.66.0
* lt:use unique peer_ids per connection
* lt:fix tracker connection bind issue for IPv6 trackers
* lt:fix error handling of merkle torrents
* lt:fix error handling of unsupported hard-links
* lt:raise auto piece size selection limit to 16 MB in create_torrent()
* lt:mark up performance counter operations as noexcept
* lt:fix noexcept marking on entry, and make move assignment
* lt:using make_address instead of deprecated from_string when boost>=1.66
* lt:block_size is a constant, no need in passing it around as a variable
* lt:remove_peer() and attach_peer() error handling
* lt:support forced shutdown/destruction of torrent objects
* lt:improve error handling during session shutdown
* lt:handle serious errors in on_accept_connection handler
* lt:deprecate save_encryption_settings
* lt:handle errors in peer_connection
* lt:support asio handler allocators in deferred_handler
* lt:don't heap-allocate handlers for incoming UDP packets
* lt:make the chunk header parser properly fail at end of buffer, and not
require zero terminated strings
* lt:add getters for peer_class_filter and peer_class_type_filter
* lt:attempt to fix disconnections when torrents enter upload mode due to
failures
* lt:fix local network address mappings
* lt:deprecate status_code from tracker_error_alert
* lt:make torrent_handler::set_priority() to use peer_classes
* lt:improve type safety of plugin interface
* lt:introduce a proper type for pex flags to improve type-safety
* lt:fix reopening of listen sockets when disabling force-proxy
* lt:fix build against boost-1.66, specifically the boost.asio changes
* lt:fix asio debugging
* lt:fix rate limit utp feature
* lt:fix i2p support
* lt:source code cleanup, performance and stability
1.2.0.15
* added java API to download magnet uri
* fixed issue with prioritize_files swig wrapper
* API change in TorrentHandle#saveResumeData, now it pass empty flags
by default
* using android NDK r16b
* updated to OpenSSL 1.1.0g
* lt:fix loading resume data when in seed mode
* lt:fix incorrect use of make_tick_handler
* lt:fix issue with initializing settings on session construction
* lt:implemented support for magnet URI extension, select specific file
indices for download, BEP53
* lt:fix issue with receiving interested before metadata
* lt:generate random keys for use in tracker announces, unique per torrent
and the listen interface
* lt:fix IPv6 tracker announce issue
* lt:don't early move shared_ptr plugin in torrent::add_extension_fun
* lt:fix force-proxy regression (udp sockets would not be opened)
* lt:restore path sanitization behavior of ':'
* lt:make tracker announces happen even if there are no open listen sockets
* lt:fix issue where new listen sockets would not be opened when leaving
force_proxy mode
* lt:make sure the cork destructor doesn't leak exceptions
* lt:stop posting alerts when the session is shutting down, solves some
issues around destruction order
* lt:add API to query whether alerts have been dropped or not
* lt:keep updating aux::time_now() while there are announces, fixes an
infinite loop during shutdown
* lt:source code cleanup, performance and stability
1.2.0.14
* fixed invalid handling of download_priority_t and swig wrapper
1.2.0.13
* enable full SSL support in libtorrent
* compiling with -fvisibility=hidden and -Os
* using android NDK r16 beta2
* updated to boost 1.65.1
* internal session in SessionManager blocks privileged ports and
only allows 80 and 443 for possible web seeds connections
* lt:enable/disable the internal ip notifier with new setting
* lt:fix issue of null m_part_file in default_storage readv/writev
* lt:added reopen_network_sockets method to allow manual reopen of
listen/outgoing sockets
* lt:using NETLINK_NO_ENOBUFS to ignore ENOBUFS in netlink based ip notifier
* lt:add limit of max 50 upnp mappings and recover free global mappings
* lt:creating part file if needed only in set_file_priorities
* lt:fix full allocation failure on APFS
* lt:make parse_magnet_uri return the add_torrent_params instead of
taking an in-out parameter
* lt:pick standard std::aligned_union if using clang
* lt:make disk_buffer_holder know the size of the buffer it holds, to fix
buffer overrun in chained_buffer
* lt:fix infinite loop when parsing certain invalid magnet links
* lt:don't delete pieces from cache with refcount > 0
* lt:don't try to connect to a global address with a local source address
* lt:fix parsing of torrents with certain invalid filenames
* lt:fix leak of peer_class objects (when setting per-torrent rate limits)
* lt:more strict filename sanitation
* lt:improve handling of case where a torrent file has no files in it
* lt:clean up and fix edge cases in update_path_index
* lt:fix issue with the name in single file torrents being sanitized away
* lt:make the chunk header parser a bit more strict and accurate
* lt:fix integer overflow in torrent_info
* lt:fix windows file preallocation issue
* lt:fix integer overflow in whole_pieces_threshold logic
* lt:DHT nodes should only handle requests on their socket
* lt:bump priority of storage_moved_alert and storage_moved_failed_alert
* lt:deprecate lock_files settings
* lt:fix uTP path MTU discovery issue on windows, DF bit was not set
correctly
* lt:select which DHT port to report based on the connection's local
endpoint
* lt:avoid port mapping of local IPv6 addresses
* lt:include endpoint in tracker alerts
* lt:hold an owning reference to storage objects in try_flush_write_blocks
* lt:read_piece: handle failure to allocate piece buffer
* lt:treat unique local IPv6 addresses as local
* lt:source code cleanup, performance and stability
1.2.0.12
* updated to boost 1.65
* storing external address and listen endpoints as strings for better
performance
* improved creation of peers part of magnet links
* lt:fixed netlink based network interface enumeration
* lt:remove support for using a pool allocator for disk buffers
* lt:fix IPv6 tracker support by performing the second announce in
more cases
* lt:fix issue in UTF-8 encoding validation
* lt:fix infinite loop when parsing torrents whose filenames have zeroes
* lt:fix invalid read in parse_int() in bdecode_node()
* lt:don't create web seed connections if the torrent is upload only
* lt:fix issue with very long tracker and web seed URLs
* lt:fix issue where paths were not correctly coalesced when adding files
to file_storage (used more memory than necessary)
* lt:fix issue of force-recheck or seeding from read-only media, torrents
with empty files in them
* lt:fix force-recheck issue (new files would not be picked up)
* lt:source code cleanup, performance and stability
1.2.0.11
* using android NDK r15c
* using -O2 for all architectures
* lt:fix to clearing of piece picker in suggest_read_cache mode
* lt:fix memory issues with listen sockets references
* lt:fix bug where the resume data would fail to load the piece bitmask for
seeds when suggest_cache was enabled
* lt:submit disk jobs in read_piece()
* lt:add reserve entry::to_string() (optimization)
* lt:refactor several flags to torrent_handle::get_flags/set_flags
* lt:added block_uploaded_alert to allow client to track upload activity
* lt:fix inconsistency in file_priorities and override_resume_data behavior
* lt:remove call _strchr (optimization)
* lt:fix bandwidth rate limit calculation
* lt:fix handling of SSL listen sockets
* lt:don't move listen_socket_t when deleting sockets
* lt:avoid executing timed async task if the dht node is already removed
* lt:reject DHT put messages with incorrect bencoding
* lt:fix backwards compatibility issue when loading the torrent info dict
from resume data
* lt:fix regression where paused torrents could not have their queue
position changed
* lt:use netlink to enumerate network interfaces on linux
* lt:fix out-of-bounds read in bdecode
* lt:fix re-check issue after move_storage
* lt:avoid runtime fail with wrong arguments in upnp::update_map
* lt:handle invalid arguments to set_piece_deadline()
* lt:fix that move_storage did not work for torrents without metadata
* lt:fix check for fully allocated file on windows
* lt:defer reconnecting peers to after the second_tick loop
* lt:implemented support for BEP 51
* lt:source code cleanup and stability
1.2.0.10
* added swig interface to announce_endpoint
1.2.0.9
* updated to OpenSSL 1.1.0f
* updated to boost 1.64
* using android NDK r15
* avoid automatic UTF-8 conversion in JNI side when using string_view
* lt:fix bandwidth rate limit calculation
* lt:fix for what appears to be an clang/llvm miscompilation
* lt:only listen on preferred IPv6 addresses on Windows
* lt:when stopping a torrent, never perform a name lookup on the tracker,
only announce to trackers whose IP we already know. This is expected to
make shutdowns not hang
* lt:fix previously faulty fix to enum_routes
* lt:delay 5 seconds before reconnecting socks5 proxy for UDP ASSOCIATE
* lt:fix NAT-PMP crash when removing a mapping at the wrong time
* lt:fix race condition in storage tick handling in disk_io_thread
* lt:keep iterating over endpoints if one is found to be done in
tracker announce loop
* lt:don't abort the existing torrent when attempting to add it again
* lt:fix IPv6 UTP assertion failure, close listen sockets after closing
all connections
* lt:fix branch factor overflow in DHT traversal algorithm
* lt:bind upnp requests to correct local address
* lt:don't combine reuseaddr and exclusive addruse on windows
* lt:save resume data when removing web seeds
* lt:fix proxying of https connections
* lt:fix race condition in disk I/O storage class
* lt:avoid extra sha1_hash memory copy in create_torrent
* lt:fix http connection timeout on multi-homed hosts
* lt:implemented multi-home support
* lt:make DHT bootstrapping more robust by not throwing away nodes
* lt:need_save_resume_data() will no longer return true every 15 minutes
* lt:create a separate DHT node for each listen socket
* lt:avoid connections to trackers when the event is stopped and
stop_tracker_timeout <= 0
* lt:fix storage destruction order issue
* lt:fix memory leak in the disk cache
* lt:magnet links: unescape hash parameter
* lt:fix double free in disk cache
* lt:fix typo in natpmp::start
* lt:remove mutex-release hack in file_pool
* lt:source code cleanup and stability
1.2.0.8
* fixed synchronization issues in SessionManager#stop
1.2.0.7
* added support for ip_notifier in macOS
* added resolver_cache_timeout setting for internal host name resolver
* improved public API
* internal fixes in libtorrent
1.2.0.7-RC3
* start of changelog