Charles Kerr
bf48eadaeb
refactor: replace Settings class with Serializable ( #7877 )
...
* refactor: replace Settings class with Serializable
* Fields can now be declared as const static,
so we only have to build this list once per class
instead of once per iteration.
* Add typesafe single-property getters & setters.
* Split the converter registry into a generic standalone class.
* refactor: make Serializable::Field::getter private
refactor: make Serializable::Field::const_getter private
* docs: tweak code comments
* refactor: make Serializable::Field::Getter private
refactor: make Serializable::Field::ConstGetter private
refactor: make Serializable::Field::MemberStorage private
* chore: fix readability-identifier-naming clang-tidy warnings
* Update libtransmission/serializable.h
Co-authored-by: Yat Ho <lagoho7@gmail.com >
* Update libtransmission/serializable.h
Co-authored-by: Yat Ho <lagoho7@gmail.com >
* Update libtransmission/serializable.h
Co-authored-by: Yat Ho <lagoho7@gmail.com >
* fixup! Update libtransmission/serializable.h
---------
Co-authored-by: Yat Ho <lagoho7@gmail.com >
2025-12-09 22:09:49 -06:00
Yat Ho
05aef3e787
refactor: unify quarks and strings to snake_case ( #7108 )
...
* refactor: change `leftUntilDone` to `left_until_done`
* refactor: change `magnetLink` to `magnet_link`
* refactor: change `manualAnnounceTime` to `manual_announce_time`
* refactor: change `maxConnectedPeers` to `max_connected_peers`
* refactor: change `metadataPercentComplete` to `metadata_percent_complete`
* refactor: change `peersConnected` to `peers_connected`
* refactor: change `peersFrom` to `peers_from`
* refactor: change `peersGettingFromUs` to `peers_getting_from_us`
* refactor: change `peersSendingToUs` to `peers_sending_to_us`
* refactor: change `percentComplete` to `percent_complete`
* refactor: change `percentDone` to `percent_done`
* refactor: change `pieceCount` to `piece_count`
* refactor: use quark when possible
* refactor: change `pieceSize` to `piece_size`
* refactor: change `primary-mime-type` to `primary_mime_type`
* refactor: change `rateDownload` to `rate_download`
* refactor: change `rateUpload` to `rate_upload`
* refactor: change `recheckProgress` to `recheck_progress`
* refactor: change `secondsDownloading` to `seconds_downloading`
* refactor: change `secondsSeeding` to `seconds_seeding`
* refactor: change `sizeWhenDone` to `size_when_done`
* refactor: change `startDate` to `start_date`
* refactor: change `trackerStats` to `tracker_stats`
* refactor: change `totalSize` to `total_size`
* refactor: change `torrentFile` to `torrent_file`
* refactor: change `uploadedEver` to `uploaded_ever`
* refactor: change `uploadRatio` to `upload_ratio`
* refactor: change `webseedsSendingToUs` to `webseeds_sending_to_us`
* refactor: change `bytesCompleted` to `bytes_completed`
* refactor: change `clientName` to `client_name`
* refactor: change `clientIsChoked` to `client_is_choked`
* refactor: change `clientIsInterested` to `client_is_interested`
* refactor: change `flagStr` to `flag_str`
* refactor: change `isDownloadingFrom` to `is_downloading_from`
* refactor: change `isEncrypted` to `is_encrypted`
* refactor: change `isIncoming` to `is_incoming`
* refactor: change `isUploadingTo` to `is_uploading_to`
* refactor: change `isUTP` to `is_utp`
* refactor: change `peerIsChoked` to `peer_is_choked`
* refactor: change `peerIsInterested` to `peer_is_interested`
* refactor: change `rateToClient` to `rate_to_client`
* refactor: change `rateToPeer` to `rate_to_peer`
* refactor: change `fromCache` to `from_cache`
* refactor: change `fromDht` to `from_dht`
* refactor: change `fromIncoming` to `from_incoming`
* refactor: change `fromLpd` to `from_lpd`
* refactor: change `fromLtep` to `from_ltep`
* refactor: change `fromPex` to `from_pex`
* refactor: change `fromTracker` to `from_tracker`
* refactor: change `announceState` to `announce_state`
* refactor: change `downloadCount` to `download_count`
* refactor: change `hasAnnounced` to `has_announced`
* refactor: change `hasScraped` to `has_scraped`
* refactor: change `isBackup` to `is_backup`
* refactor: change `lastAnnouncePeerCount` to `last_announce_peer_count`
* refactor: change `lastAnnounceResult` to `last_announce_result`
* refactor: change `lastAnnounceStartTime` to `last_announce_start_time`
* refactor: change `lastAnnounceSucceeded` to `last_announce_succeeded`
* refactor: change `lastAnnounceTime` to `last_announce_time`
* refactor: change `lastAnnounceTimedOut` to `last_announce_timed_out`
* refactor: change `lastScrapeResult` to `last_scrape_result`
* refactor: change `lastScrapeStartTime` to `last_scrape_start_time`
* refactor: change `lastScrapeSucceeded` to `last_scrape_succeeded`
* refactor: change `lastScrapeTime` to `last_scrape_time`
* refactor: change `lastScrapeTimedOut` to `last_scrape_timed_out`
* refactor: change `leecherCount` to `leecher_count`
* refactor: change `nextAnnounceTime` to `next_announce_time`
* refactor: change `nextScrapeTime` to `next_scrape_time`
* refactor: change `scrapeState` to `scrape_state`
* refactor: change `seederCount` to `seeder_count`
* refactor: change `torrent-added` to `torrent_added`
* refactor: change `torrent-duplicate` to `torrent_duplicate`
* refactor: change `torrent-remove` to `torrent_remove`
* refactor: change `delete-local-data` to `delete_local_data`
* refactor: change `torrent-rename-path` to `torrent_rename_path`
* refactor: change `alt-speed-down` to `alt_speed_down`
* refactor: convert `pref_toggle_entries` to quark array
* refactor: change `alt-speed-enabled` to `alt_speed_enabled`
* refactor: change `compact-view` to `compact_view`
* refactor: change `sort-reversed` to `sort_reversed`
* refactor: change `show-filterbar` to `show_filterbar`
* refactor: change `show-statusbar` to `show_statusbar`
* refactor: change `show-toolbar` to `show_toolbar`
* refactor: change `alt-speed-time-begin` to `alt_speed_time_begin`
* refactor: change `alt-speed-time-day` to `alt_speed_time_day`
* refactor: change `alt-speed-time-end` to `alt_speed_time_end`
* refactor: change `alt-speed-up` to `alt_speed_up`
* refactor: change `alt-speed-time-enabled` to `alt_speed_time_enabled`
* refactor: change `blocklist-enabled` to `blocklist_enabled`
* refactor: change `blocklist-size` to `blocklist_size`
* refactor: change `blocklist-url` to `blocklist_url`
* refactor: change `cache-size-mb` to `cache_size_mb`
* refactor: change `config-dir` to `config_dir`
* refactor: change `default-trackers` to `default_trackers`
* refactor: change `dht-enabled` to `dht_enabled`
* refactor: change `download-dir-free-space` to `download_dir_free_space`
* refactor: change `download-queue-enabled` to `download_queue_enabled`
* refactor: change `download-queue-size` to `download_queue_size`
* refactor: change `idle-seeding-limit-enabled` to `idle_seeding_limit_enabled`
* refactor: change `idle-seeding-limit` to `idle_seeding_limit`
* refactor: change `incomplete-dir-enabled` to `incomplete_dir_enabled`
* refactor: change `incomplete-dir` to `incomplete_dir`
* refactor: change `lpd-enabled` to `lpd_enabled`
* refactor: change `peer-limit-global` to `peer_limit_global`
* refactor: change `peer-limit-per-torrent` to `peer_limit_per_torrent`
* refactor: change `peer-port-random-on-start` to `peer_port_random_on_start`
* refactor: change `peer-port` to `peer_port`
* refactor: change `pex-enabled` to `pex_enabled`
* refactor: change `port-forwarding-enabled` to `port_forwarding_enabled`
* refactor: change `queue-stalled-enabled` to `queue_stalled_enabled`
* refactor: change `queue-stalled-minutes` to `queue_stalled_minutes`
* refactor: change `rename-partial-files` to `rename_partial_files`
* refactor: change `rpc-version-minimum` to `rpc_version_minimum`
* refactor: change `rpc-version-semver` to `rpc_version_semver`
* refactor: change `rpc-version` to `rpc_version`
* refactor: change `script-torrent-added-enabled` to `script_torrent_added_enabled`
* refactor: change `script-torrent-added-filename` to `script_torrent_added_filename`
* refactor: change `script-torrent-done-enabled` to `script_torrent_done_enabled`
* refactor: change `script-torrent-done-filename` to `script_torrent_done_filename`
* refactor: change `script-torrent-done-seeding-enabled` to `script_torrent_done_seeding_enabled`
* refactor: change `script-torrent-done-seeding-filename` to `script_torrent_done_seeding_filename`
* refactor: change `seed-queue-enabled` to `seed_queue_enabled`
* refactor: change `seed-queue-size` to `seed_queue_size`
* refactor: change `seedRatioLimited` to `seed_ratio_limited`
* refactor: change `session-id` to `session_id`
* refactor: change `speed-limit-down-enabled` to `speed_limit_down_enabled`
* refactor: change `speed-limit-down` to `speed_limit_down`
* refactor: change `speed-limit-up-enabled` to `speed_limit_up_enabled`
* refactor: change `speed-limit-up` to `speed_limit_up`
* refactor: change `start-added-torrents` to `start_added_torrents`
* refactor: change `trash-original-torrent-files` to `trash_original_torrent_files`
* refactor: change `utp-enabled` to `utp_enabled`
* refactor: change `tcp-enabled` to `tcp_enabled`
* docs: add missing docs for RPC `tcp_enabled`
* refactor: change `speed-units` to `speed_units`
* refactor: change `speed-bytes` to `speed_bytes`
* refactor: change `size-units` to `size_units`
* refactor: change `size-bytes` to `size_bytes`
* refactor: change `memory-units` to `memory_units`
* refactor: change `memory-bytes` to `memory_bytes`
* refactor: change `session-set` to `session_set`
* refactor: change `session-get` to `session_get`
* refactor: change `session-stats` to `session_stats`
* refactor: change `activeTorrentCount` to `active_torrent_count`
* refactor: change `downloadSpeed` to `download_speed`
* refactor: change `pausedTorrentCount` to `paused_torrent_count`
* refactor: change `torrentCount` to `torrent_count`
* refactor: change `uploadSpeed` to `upload_speed`
* refactor: change `cumulative-stats` to `cumulative_stats`
* refactor: change `current-stats` to `current_stats`
* refactor: change `uploadedBytes` and `uploaded-bytes` to `uploaded_bytes`
* refactor: change `downloadedBytes` and `downloaded-bytes` to `downloaded_bytes`
* refactor: change `filesAdded` and `files-added` to `files_added`
* refactor: change `sessionCount` and `session-count` to `session_count`
* refactor: change `secondsActive` and `seconds-active` to `seconds_active`
* refactor: change `blocklist-update` to `blocklist_update`
* refactor: change `port-test` to `port_test`
* refactor: change `session-close` to `session_close`
* refactor: change `queue-move-top` to `queue_move_top`
* refactor: change `queue-move-up` to `queue_move_up`
* refactor: change `queue-move-down` to `queue_move_down`
* refactor: change `queue-move-bottom` to `queue_move_bottom`
* refactor: change `free-space` to `free_space`
* refactor: change `group-set` to `group_set`
* refactor: change `group-get` to `group_get`
* refactor: change `announce-ip` to `announce_ip`
* refactor: change `announce-ip-enabled` to `announce_ip_enabled`
* refactor: change `upload-slots-per-torrent` to `upload_slots_per_torrent`
* refactor: change `trash-can-enabled` to `trash_can_enabled`
* refactor: change `watch-dir-enabled` to `watch_dir_enabled`
* refactor: change `watch-dir-force-generic` to `watch_dir_force_generic`
* refactor: change `watch-dir` to `watch_dir`
* refactor: change `message-level` to `message_level`
* refactor: change `scrape-paused-torrents-enabled` to `scrape_paused_torrents_enabled`
* refactor: change `torrent-added-verify-mode` to `torrent_added_verify_mode`
* refactor: change `sleep-per-seconds-during-verify` to `sleep_per_seconds_during_verify`
* refactor: change `bind-address-ipv4` to `bind_address_ipv4`
* refactor: change `bind-address-ipv6` to `bind_address_ipv6`
* refactor: change `peer-congestion-algorithm` to `peer_congestion_algorithm`
* refactor: change `peer-socket-tos` to `peer_socket_tos`
* refactor: change `peer-port-random-high` to `peer_port_random_high`
* refactor: change `peer-port-random-low` to `peer_port_random_low`
* refactor: change `anti-brute-force-enabled` to `anti_brute_force_enabled`
* refactor: change `rpc-authentication-required` to `rpc_authentication_required`
* refactor: change `rpc-bind-address` to `rpc_bind_address`
* refactor: change `rpc-enabled` to `rpc_enabled`
* refactor: change `rpc-host-whitelist` to `rpc_host_whitelist`
* refactor: change `rpc-host-whitelist-enabled` to `rpc_host_whitelist_enabled`
* refactor: change `rpc-password` to `rpc_password`
* refactor: change `rpc-port` to `rpc_port`
* refactor: change `rpc-socket-mode` to `rpc_socket_mode`
* refactor: change `rpc-url` to `rpc_url`
* refactor: change `rpc-username` to `rpc_username`
* refactor: change `rpc-whitelist` to `rpc_whitelist`
* refactor: change `rpc-whitelist-enabled` to `rpc_whitelist_enabled`
* refactor: change `ratio-limit-enabled` to `ratio_limit_enabled`
* refactor: change `ratio-limit` to `ratio_limit`
* refactor: change `show-options-window` to `show_options_window`
* refactor: change `open-dialog-dir` to `open_dialog_dir`
* refactor: change `inhibit-desktop-hibernation` to `inhibit_desktop_hibernation`
* refactor: change `show-notification-area-icon` to `show_notification_area_icon`
* refactor: change `start-minimized` to `start_minimized`
* refactor: change `torrent-added-notification-enabled` to `torrent_added_notification_enabled`
* refactor: change `anti-brute-force-threshold` to `anti_brute_force_threshold`
* refactor: change `torrent-complete-notification-enabled` to `torrent_complete_notification_enabled`
* refactor: change `prompt-before-exit` to `prompt_before_exit`
* refactor: change `sort-mode` to `sort_mode`
* refactor: change `statusbar-stats` to `statusbar_stats`
* refactor: change `show-extra-peer-details` to `show_extra_peer_details`
* refactor: change `show-backup-trackers` to `show_backup_trackers`
* refactor: change `blocklist-date` to `blocklist_date`
* refactor: change `blocklist-updates-enabled` to `blocklist_updates_enabled`
* refactor: change `main-window-layout-order` to `main_window_layout_order`
* refactor: change `main-window-height` to `main_window_height`
* refactor: change `main-window-width` to `main_window_width`
* refactor: change `main-window-x` to `main_window_x`
* refactor: change `main-window-y` to `main_window_y`
* refactor: change `filter-mode` to `filter_mode`
* refactor: change `filter-trackers` to `filter_trackers`
* refactor: change `filter-text` to `filter_text`
* refactor: change `remote-session-enabled` to `remote_session_enabled`
* refactor: change `remote-session-host` to `remote_session_host`
* refactor: change `remote-session-https` to `remote_session_https`
* refactor: change `remote-session-password` to `remote_session_password`
* refactor: change `remote-session-port` to `remote_session_port`
* refactor: change `remote-session-requres-authentication` to `remote_session_requires_authentication`
* refactor: change `remote-session-username` to `remote_session_username`
* refactor: change `torrent-complete-sound-command` to `torrent_complete_sound_command`
* refactor: change `torrent-complete-sound-enabled` to `torrent_complete_sound_enabled`
* refactor: change `user-has-given-informed-consent` to `user_has_given_informed_consent`
* refactor: change `read-clipboard` to `read_clipboard`
* refactor: change `details-window-height` to `details_window_height`
* refactor: change `details-window-width` to `details_window_width`
* refactor: change `main-window-is-maximized` to `main_window_is_maximized`
* refactor: change `port-is-open` to `port_is_open`
* refactor: change `show-tracker-scrapes` to `show_tracker_scrapes`
* refactor: change `max-peers` to `max_peers`
* refactor: change `peers2-6` to `peers2_6`
* refactor: change `seeding-time-seconds` to `seeding_time_seconds`
* refactor: change `downloading-time-seconds` to `downloading_time_seconds`
* refactor: change `ratio-mode` to `ratio_mode`
* refactor: change `idle-limit` to `idle_limit`
* refactor: change `idle-mode` to `idle_mode`
* refactor: change `speed-Bps` to `speed_Bps`
* refactor: change `use-global-speed-limit` to `use_global_speed_limit`
* refactor: change `use-speed-limit` to `use_speed_limit`
* chore: remove TODO comment
* docs: add upgrade instructions to `5.0.0`
* chore: bump rpc semver major version
* chore: housekeeping
2025-12-01 16:08:18 -06:00
Yat Ho
8dc5d925fe
feat: convert preferred-transport to preferred_transports ( #7473 )
...
* feat: store `preferred_transports` as array in `settings.json`
* refactor: `Settings::save()` returns `tr_variant::Map`
* feat: new RPC API for `preferred_transports`
* feat: new arg `--preferred-transports` for remote
2025-11-12 17:17:29 -06:00
Yat Ho
4318a6f1ac
fix: caching a source address doesn't imply public internet connectivity ( #7520 )
2025-11-12 14:46:26 -06:00
Cœur
78238ec3de
fix corruption: torrentVerify on completion ( #4178 )
...
* torrentVerify on completion
* Make torrent verify on completion configurable via settings
* code review: replacing tr_verify_complete_mode with bool
* code review: sorting torrent_complete_verify_enabled with bool
* Update Application.cc
* code review: avoiding `session->onTorrentCompletenessChanged` before verification completion
2025-11-10 14:16:15 -06:00
Geoffrey Bonneville
c0ef40a52a
fix: flush torrent files on piece completed in sequential mode ( #7489 )
...
* fix: flush torrent files on piece completed in sequential mode
* Mark flush_torrent_files as const
* Apply review changes
* docs: Update cache-size-mb description in Editing-Configuration-Files.md
* docs: written on disk -> written to fs
* fix: flush torrent files when switching to sequential download
---------
Co-authored-by: Charles Kerr <charles@charleskerr.com >
2025-10-16 08:29:47 -05:00
Yat Ho
bf461a0f72
refactor: removed redundant type check in tr_ip_cache::set_global_addr() ( #7551 )
...
* refactor: removed redundant type check in `tr_ip_cache::set_global_addr()`
* chore: tweak formatting
2025-10-14 13:00:01 -05:00
Yat Ho
08ec7fb7c7
build: lint header files with clang-tidy ( #7527 )
...
* build: clang-tidy headers when building libtransmission
* chore: revert `= default` workaround
It was introduced in 6909ec0bad to fix build issues with macOS 10.14. We
no longer support that version.
* fix: clang-tidy warnings for libtransmission
* build: clang-tidy headers when building tests
* fix: clang-tidy warnings for tests
* build: clang-tidy headers when building qt
* code review: don't manually edit mime-types.h
* code review: unify variable naming for static private members
2025-05-07 22:10:16 +01:00
Yat Ho
03c2dbd63c
feat: make proxy_url nullable ( #7486 )
...
* fix: clang-tidy warning
* refactor: make `proxy_url` nullable
2025-05-01 16:57:46 +01:00
Alexander Terentyev
2c5b7f94d1
feat: proxy support for web-connections ( #5038 )
...
* feature: proxy support for web-connections
* forgotten changes
* fix code-styles
* Documentation for new setting "proxy-url"
* Create property proxyUrl for class tr_web. Lazy creation of tr_web object in tr_session after loaded settings from file
* Update docs/Editing-Configuration-Files.md
Simplify the documentation text
Co-authored-by: ThinkChaos <ThinkChaos@users.noreply.github.com >
* Fix merge error
* Fix merge error.
* Simplify tr_web's lifecycle. Fix error. Rename quark to sneak_case-style
* Fix parameter value test
---------
Co-authored-by: ThinkChaos <ThinkChaos@users.noreply.github.com >
Co-authored-by: Charles Kerr <charles@charleskerr.com >
2025-03-10 17:32:18 -05:00
Yat Ho
7b83c7d625
refactor: rename unreleased quarks to snake_case ( #7483 )
...
* refactor: rename `sequentialDownload` to `sequential_download`
* refactor: rename `beginPiece` to `begin_piece`
* refactor: rename `endPiece` to `end_piece`
* refactor: rename `ipProtocol` to `ip_protocol`
* refactor: rename `preferred-transport` to `preferred_transport`
2025-03-10 17:30:19 -05:00
Yat Ho
24f58f70ee
feat: sequential download in settings.json torrent-add and sesssion-* RPC methods ( #7047 )
...
* feat: init sequential download setting from ctor
* feat: `sequantialDownload` arg in `torrent-add` RPC method
* feat: sequential download settings in settings.json
* feat: sequential download arguments in `session-*` RPC methods
* test: fix
2025-03-10 12:07:35 -05:00
Yat Ho
47eb4ee2bc
refactor: dedicated class for torrent queue ( #7332 )
...
* Revert "feat: save queue order between sessions (#6753 )"
This reverts commit 4db50dae10 .
* refactor: new torrent queue class
* refactor: replace queue code with new class
* test: new tests for new class
* feat: store and load queue order across sessions
* build: xcode
* refactor: use set_difference instead of unordered_set
* code review: use `tr_torrent_id_t` as key
* fix: don't overflow when moving up/down
---------
Co-authored-by: Dzmitry Neviadomski <nevack.d@gmail.com >
2025-03-09 19:08:50 -05:00
Yat Ho
76ab7ba592
refactor: set peer io socket in constructor ( #7355 )
...
* refactor: `tr_netOpenPeerSocket()` returns `tr_socket_t`
* refactor: store preferred transport as array
* refactor: set peer io socket in constructor
* refactor: remove `log_peer_io_bandwidth()`
This partially reverts commit efec6505
* refactor: rename `tr_netOpenPeerSocket` to snake_case
* code review: remove redundant comment
* code review: add comment about array order
2025-03-03 23:47:37 -06:00
Yat Ho
f1102f0b4d
fix: don't double count webseed download data rate ( #7235 )
...
Regression from f1a53840f9
2024-11-06 13:55:58 -06:00
Yat Ho
62240393ed
feat: configurable client reqq ( #7030 )
...
* chore: housekeeping
* refactor: raise client reqq value
* feat: allow configuring client reqq value
* feat: expose reqq config in RPC
* test: add new key
* code review: distinguish client vs peer
* docs: fix new config name
---------
Co-authored-by: Charles Kerr <charles@charleskerr.com >
2024-08-23 21:46:37 -05:00
Yat Ho
45696b60d2
fix: settings.json default value and docs ( #7044 )
...
* docs: fix `message-level` default
* docs: fix `peer-socket-tos` description
* fix: restore `rename-partial-files` default value
2024-08-13 00:47:34 +01:00
Yat Ho
a76a07ae99
chore: misc code cleanups ( #6927 )
...
* refactor: avoid repeated subscripting in `announcer-udp.cc`
* chore: remove redundant locking in global ip cache
* chore: misc code cleanup in global ip cache
* fixup! chore: misc code cleanup in global ip cache
* refactor: remove `tr_global_ip_cache::create()`
* refactor: rename `tr_global_ip_cache` to `tr_ip_cache`
* build: sync changes to xcode
2024-07-14 01:37:55 +01:00
Charles Kerr
6132706565
chore: iwyu ( #6864 )
...
* chore: do not include <set> unless we use it
* chore: do not include <map> unless we use it
* chore: do not include <string> unless we use it
* chore: do not include <list> unless we use it
* chore: do not include <memory> unless we use it
* chore: do not include <optional> unless we use it
* chore: do not include <functional> unless we use it
2024-05-27 17:36:02 -05:00
Yat Ho
87862e506d
feat: support different internal and external port for UPnP ( #6672 )
...
* feat: support different internal and external port in upnp
* chore: housekeeping
* code review: better log wording
2024-03-31 18:49:19 -05:00
Charles Kerr
189fe73575
refactor: remove TR_PATH_DELIMITER ( #6618 )
2024-02-18 01:47:12 -06:00
Charles Kerr
d11cddc39a
fix: sonarcloud warnings ( #6615 )
...
* fix: cpp:S3358 conditional-operators-should-not-be-nested warning in gtk client
* fix: cpp:S1659 define-each-identifier-in-a-dedicated-statement warning in peer-mgr-wishlist
* Revert "fix; cpp:S3642 replace-enum-with-enum-class warning in gtk client"
* fix: cpp:S3576 remove-virtual-specifier-or-replace-it-by-override warning in rpc-server::Settings
* fix: cpp:S3576 remove-virtual-specifier-or-replace-it-by-override warning in tr_session_alt_speeds::Settings
* fix: remove unnecessary Settings subclass declarations
* fix: cpp:S1117 shadow warning in qt client
* fix: cpp:S6004 use init-statement to limit scope of local
* fix: cpp:S5997 replace-std-lock-guard-with-std-sccoped-lock in favicon-cache.h
* fix: cpp:S1659 define-each-identifier-in-a-dedicated-statement warning in announcer
* fix: cpp:S5817 function-should-be-declared-const warning in cache.h
* fix: cpp:S1186 explain-why-method-is-empty warning in favicon-cache
* fix: cpp:S5408 constexpr-variables-should-not-be-declared-inline warning in favicon-cache
* fix: cpp:S3624 explicitly delete copy assignment, ctor of InFlightData
* fix: cpp:S5997 use std-scoped-lock-instead-of-std-lock-guard
* fix: cpp:S5997 use std-scoped-lock-instead-of-std-lock-guard
* fix: cpp:S5817 function-should-be-declared-const warning in favicon-cache.h
* fix: cpp:S5817 function-should-be-declared-const warning in lru-cache
* fix: cpp:S1709 add-the-explicit-keyword-to-this-constructor
2024-02-17 22:43:24 -06:00
Charles Kerr
c14d445cf5
refactor: libtransmission Settings ( #6592 )
...
* refactor: make tr_session_settings a libtransmission::Settings
* refactor: make VariantConverter private in settings.cc
2024-02-15 11:31:09 -06:00
Yat Ho
ca11c33d05
fix: various DHT bugs ( #6569 )
...
* fix: unconditionally send DHT Port msg if supported
* chore: add "maybe" to dht add_node functions
* feat: change `bind-address-ipv*` defaults to empty string
* chore: housekeeping
* fix: initialise DHT node id with random bytes
* chore: housekeeping
2024-02-04 12:18:01 -06:00
Yat Ho
d2d7987553
refactor: allow explicitly queuing functions in session thread ( #6406 )
...
* feat: allow explicitly queuing functions in session thread
* refactor: rename `tr_session_thread`-related functions to snake_case
2023-12-24 08:32:14 -06:00
Charles Kerr
3cd66899fe
refactor: remove prefetch ( #6332 )
2023-12-04 11:45:37 -06:00
Charles Kerr
2e46bad22d
refactor: constify the inout module ( #6328 )
...
* refactor: move tr_preallocation_mode info tr_open_files
* refactor: remove unnecessary error nullptr check
* refactor: use snake_case for private method names in inout.cc
* refactor: extract-method get_fd() from read_or_write_bytes()
* refactor: make function args const where possible
* refactor: simplify read_or_write_bytes()
* refactor: make buflen a uint64_t in read_or_write_piece()
* refactor: move tr_torrentStop() logic from read_or_write_piece() to tr_ioWrite()
* refactor: make tr_ioFoo() functions take a const torrent
* refactor: make tr_cache::close_torrent_files() take a tor_id instead of a torrent
2023-12-02 14:16:36 -06:00
Yat Ho
5d64c860ea
fix: low priority not working ( #6079 )
2023-11-27 19:59:26 -06:00
Charles Kerr
64d9d57363
chore: fix minor clang-tidy warnings ( #6275 )
2023-11-21 09:02:03 -06:00
Charles Kerr
07d96036d9
refactor: Values pt. 6 - remove deprecated API ( #6250 )
2023-11-14 17:23:51 -06:00
Yat Ho
90e91d6284
refactor: directly check if announcers are idle instead of using a stop counter ( #6237 )
2023-11-12 21:43:43 -06:00
Charles Kerr
0e85befc0f
refactor: Values pt. 3 - use Speed in tr_session ( #6235 )
2023-11-12 12:30:37 -06:00
Charles Kerr
a575be778f
refactor: Values pt. 2 - use Speed in tr_bandwidth ( #6234 )
2023-11-10 17:12:24 -06:00
Yat Ho
a2b547fb50
chore: iwyu ( #6201 )
2023-11-03 12:03:26 -05:00
Julien
8ac323d5d6
chore: removed copyright timespans in headers ( #4850 )
2023-11-01 16:11:11 -05:00
Charles Kerr
e54b17d92e
refactor: blocklists ( #6189 )
2023-10-31 19:20:01 -04:00
Charles Kerr
f0e9f90782
refactor: move tr_session::getAllTorrents to tr_torrents ( #6179 )
2023-10-30 16:38:02 -04:00
Yat Ho
5a6f0a5623
fixup! refactor: re-organise net.h member functions ( #5878 ) ( #5933 )
...
* fix: check if address is valid in `tr_address::is_any()`
* refactor: add static implementation of `tr_address::is_valid()`
2023-10-25 11:53:46 -04:00
Charles Kerr
c0e5e3a368
refactor: reduce coupling between tr_session and tr_peerMgr ( #6151 )
2023-10-23 11:34:30 -04:00
Charles Kerr
4bdb3066d8
refactor: decouple tr_verify_worker from tr_torrent ( #6123 )
2023-10-19 08:39:34 -05:00
Charles Kerr
6ead147620
refactor: use new tr_variant API in tr_session ( #6006 )
2023-09-16 08:23:35 -05:00
Yat Ho
85a120faea
feat: add preferred-transport to settings.json ( #5939 )
2023-09-15 20:23:34 -05:00
Charles Kerr
ebb1b775af
refactor: public tr_session settings API now returns tr_variants ( #5983 )
2023-09-07 19:05:16 -05:00
tearfur
a88b353576
chore: rename other publicAddress() functions ( #5873 )
2023-08-14 10:31:12 -05:00
tearfur
27f3a5b82a
fix: announce LDP on listening interface ( #5875 )
...
* fix: make sure LDP announces are sent on the listening interface
* fix: add implementation for test mediator
* fix: set SO_REUSEADDR for send socket
2023-08-13 12:04:04 -05:00
tearfur
ca4cb1a675
fix/cleanups to tr_peerMsgsImpl ( #5783 )
...
* fix: correct condition to advertise pex support in ltep handshake
1. Advertise pex support regardless of whether the peer had advertised pex support. No reason to give up an opportunity to advertise pex support just because our direct peer does not support it.
2. Check if pex is enabled in global settings as well.
2023-07-14 10:51:52 -05:00
tearfur
5ec4ca550e
chore: iwyu ( #5746 )
2023-07-08 10:24:03 -05:00
Charles Kerr
56b27057fd
refactor: add lightweight observable / observer for decoupling ( #5716 )
2023-07-04 15:47:18 -05:00
Charles Kerr
ce66e5c442
iwyu: remove, add std headers where used ( #5694 )
...
* chore: remove unused #include <array>
* chore: remove unused #include <chrono>
* chore: remove unused #include <set>
* chore: remove unused #include <algorithm>
* chore: remove unused #include "interned-string.h"
* chore: remove unused #include <list>
* chore: remove unused #include <optional>
* chore: iwyu <cstddef>
* chore: iwyu <ctime>
* chore: remove unused #include <cerrno>
* chore: remove unused #include <deque>
* chore: remove unused #include <vector>
* chore: remove unused #include <memory>
* chore: remove unused #include <unordered_set>
* chore: remove unused #include <array>
* chore: remove unused #include <mutex>
* chore: remove unused #include <functional>
* chore: remove unused #include <cmath>
2023-06-29 23:51:55 -05:00
tearfur
280dea4e33
add support for sending the ipv4 parameter during ltep handshake ( #5643 )
2023-06-20 10:51:07 -05:00