Charles Kerr
0979bbcc3f
refactor: intern RPC method names ( #7892 )
...
* refactor: add quarks for the RPC method names
* update tr_quark_convert() to handle RPC method names
* refactor: use interned keys for RPC method names
* test: add torrentGetLegacy test
* refactor: use interned keys for RPC method names in tr-qt
* refactor: use interned keys for RPC method names in tr-remote
* refactor: use interned keys for RPC method names in tests
* refactor: use interned keys for RPC method names in tr-gtk
* chore: fix readability-identifier-naming regression
2025-12-09 11:48:09 -06:00
Charles Kerr
33d6804a76
refactor: remove unused quarks ( #7883 )
...
* chore: remove two unused quarks
looks like these were never used?
* chore: remove unused quark TR_KEY_have
unused since May 2024 3677e7a5
* chore: remove unused quark TR_KEY_date
unused since Oct 2021 9200d972
* fix: remove unused codepath
2025-12-07 21:08:07 -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
1cb24a701b
feat: new JSON-RPC 2.0 RPC API ( #7269 )
...
* feat: add enum for JSON-RPC error codes
* feat: new `tr_rpc_request_exec()` overload that accepts string
* feat: add JSON-RPC parse error handling
* feat: add logic for branching to JSON-RPC or legacy API
* feat: error codes for existing errors strings
* refactor: async handlers now take the done cb as parameter
* feat: support non-batch JSON-RPC requests
* feat: support batch JSON-RPC requests
* refactor: move JSON-RPC error codes to header
* test: new tests for JSON-RPC
* refactor(webui): use jsonrpc api
* docs: update docs for jsonrpc
* fix: clang-tidy warning
* perf: avoid copying callback in batch mode
* code review: don't commit to dropping old RPC
* chore: fix shadowed variable warnings
2025-11-30 10:04:40 -06:00
htmltiger
d64a1a5699
feat: Remote session RPC url path change option qt client ( #7561 )
2025-11-26 14:12:10 -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
48ec09771c
feat: add downloader_count to trackerStats ( #6936 )
2025-11-12 10:23:37 -06:00
Geoffrey Bonneville
0f7f460c55
feat: allow downloading sequentially from a specific piece ( #7502 )
...
* feat: allow downloading sequentially from a specific piece
* Apply review changes
Co-authored-by: Yat Ho <lagoho7@gmail.com >
* Use sequential_download_from_piece param in torrent-add, and save it to resume file
* fix: change observable type bool -> tr_piece_index_t
* fix: run code_style.sh
* fix: improved test and missing comment
Co-authored-by: Yat Ho <lagoho7@gmail.com >
* fix: apply similar changes to sequentialDownloadFromPiece test
* docs: change parameter type boolean -> number
---------
Co-authored-by: Yat Ho <lagoho7@gmail.com >
2025-11-11 09:32:57 -06:00
Yat Ho
df221daab5
refactor: torrent complete verify cleanup ( #7802 )
...
* refactor: rename torrent-complete-verify-enabled to snake_case
* docs: add docs for torrent_complete_verify_enabled
* code review: correct docs data type
2025-11-11 09:29:09 -06:00
Charles Kerr
995dfe567e
refactor: remove unused quarks from libtransmission ( #7799 )
...
* chore: remove unused TR_KEY_comment_utf_8
chore: remove unused TR_KEY_created_by_utf_8
chore: remove unused TR_KEY_name_utf_8
chore: remove unused TR_KEY_path_utf_8
These keys have been unused since fe288b45 (#2542 )
* chore: remove unused TR_KEY_ut_comment
chore: remove unused TR_KEY_ut_recommend
Never used. We can add these back when we support them
* remove unused TR_KEY_queue_move_bottom
remove unused TR_KEY_queue_move_down
remove unused TR_KEY_queue_move_top
remove unused TR_KEY_queue_move_up
Added in c1559f3c , but never used.
* chore: remove unused TR_KEY_play_download_complete_sound
Never used and is a duplicate of TR_KEY_torrent_complete_sound_enabled.
Maybe it was a draft name that accidentally snuck into production?
* chore: remove unused TR_KEY_downloaders
chore: remove unused TR_KEY_min_announce_interval
Unused since 7f60738c (#2529 )
* chore: remove unused TR_KEY_recent_download_dir_1
chore: remove unused TR_KEY_recent_download_dir_2
chore: remove unused TR_KEY_recent_download_dir_3
chore: remove unused TR_KEY_recent_download_dir_4
chore: remove unused TR_KEY_recent_relocate_dir_1
chore: remove unused TR_KEY_recent_relocate_dir_2
chore: remove unused TR_KEY_recent_relocate_dir_3
chore: remove unused TR_KEY_recent_relocate_dir_4
Looks like these were intended for the GTK client's recent dirs
feature (see gtr_save_recent_dir() and gtr_get_recent_dirs()),
but that code does it better without quarks.
2025-11-10 23:58:30 -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
cdowen
a2d2097b9f
feat: add peer traffic statistics to rpc call ( #7172 )
...
* Add peer traffic data in torrent-get rpc interface
* style issue
* update peer rpc spec
* Add bytes_sent_to_peer and bytes_sent_to_client in peer_info and peer-mgr
* make counting variables non-persistent and limited to last several seconds
* change variable to snake-case
* use size_t instead of uint16_t for bytes
* fix use camel_case
* move to did_write
2025-11-10 09:41:03 -06:00
cdowen
5db90f9ed9
feat:add raw PeerID to RPC interface ( #7514 )
...
* add raw PeerID to rpc interface
* use snake_case
* add peer_id to doc
* pass peer_id only and use peer_id_t and base64 encoding when passing peer_id to stat
* clang format
* fix dangling pointer
* remove std::optional
* clean up tr_peerMsgs constructor
* move b64encode to rpc
* just use constructor
* Update libtransmission/peer-msgs.cc
Co-authored-by: Yat Ho <lagoho7@gmail.com >
---------
Co-authored-by: Yat Ho <lagoho7@gmail.com >
Co-authored-by: Charles Kerr <charles@charleskerr.com >
2025-11-08 07:47:40 -06: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
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
1054ba4ab6
refactor: store peers as benc in resume file ( #6892 )
...
* refactor: add `tr_pex::to/from_variant()`
* refactor: store peers as benc in resume
* fix: discard invalid pex in `tr_pex::from_variant()`
* fix: limit number of peers loaded from resume
2025-03-08 12:19:18 -06:00
Yat Ho
4db50dae10
feat: save queue order between sessions ( #6753 )
...
Co-authored-by: Charles Kerr <charles@charleskerr.com >
2024-10-13 11:36:38 -05: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
Cœur
460ce7c302
Add start_paused to settings file and daemon ( #6728 )
...
* Add daemon-startPaused to settings file
* code review: naming
* "Predefined quarks must be sorted by their string value"
* code review: replacing paused_ with tr_variantDictAddBool/tr_variantDictFindBool
* code review: doc
* Update docs/Editing-Configuration-Files.md
Co-authored-by: Yat Ho <lagoho7@gmail.com >
---------
Co-authored-by: Eugen Beck <beck@cs.rwth-aachen.de >
Co-authored-by: Yat Ho <lagoho7@gmail.com >
2024-03-30 16:39:44 -05:00
Yat Ho
2548dd478f
feat: periodically refresh dht node id ( #6695 )
2024-03-17 18:24:36 -05:00
Mrnikifabio
f06cb37c06
feat: added sleep-per-seconds-during-verify to settings.json ( #6572 )
...
* feat: added `sleep-per-seconds-during-verify` to settings.json
* Ensuring `sleep_per_seconds_during_verify > 0` in `verify_torrent` for better performance
* `#include` list reordered alphabetically
* fix: `[readability-inconsistent-declaration-parameter-name]` warning
2024-02-12 09:30:40 -06:00
Yat Ho
8b8e9f5c6d
fixup! fix: include daemon-specific options in app defaults ( #6505 )
...
* fixup! fix: include daemon-specific options in app defaults (#6499 )
* fix: windows build failure
* Revert "fixup! fix: include daemon-specific options in app defaults (#6499 )"
This reverts commit 92c2106cc607df36aca4ba28e8c20bd96fa87688.
* refactor: define daemon-specific quarks in libtransmission
2024-01-11 13:20:22 +00:00
Charles Kerr
3cd66899fe
refactor: remove prefetch ( #6332 )
2023-12-04 11:45:37 -06:00
Charles Kerr
64d9d57363
chore: fix minor clang-tidy warnings ( #6275 )
2023-11-21 09:02:03 -06:00
Julien
8ac323d5d6
chore: removed copyright timespans in headers ( #4850 )
2023-11-01 16:11:11 -05:00
Yat Ho
6d958bd5fc
feat: do separate IPv4 and IPv6 port checks in WebUI ( #5953 )
...
* feat: add `ipProtocol` argument to `port-test` rpc method
* chore: update rpc-spec.md
* feat: split port check UI to IPv4 and IPv6 in webUI
* fix: default `open` to false if cannot get response
* chore: minor docs wording tweak
* chore: make clang-tidy happy
* chore: RPC doc tweaks
* fix: bad merge
* chore: review feedback
Co-authored-by: Charles Kerr <charles@charleskerr.com >
* chore: match quark enum with parameter case
* refactor: use descriptive strings for `ipProtocol`
* chore: update docs
* fixup! refactor: use descriptive strings for `ipProtocol`
* fixup! chore: update docs
---------
Co-authored-by: Charles Kerr <charles@charleskerr.com >
2023-10-24 09:27:28 -04:00
Yat Ho
85a120faea
feat: add preferred-transport to settings.json ( #5939 )
2023-09-15 20:23:34 -05:00
tearfur
5ec4ca550e
chore: iwyu ( #5746 )
2023-07-08 10:24:03 -05:00
Daniel Kamil Kozar
c1c27f3da0
Expose files' begin and end pieces via RPC ( #5578 )
...
* Expose files' begin and end pieces via RPC
This adds two arguments, `beginPiece` and `endPiece`, for each of the entries
in the `files` array of the RPC's `torrent-`get` method.
The point is to allow RPC clients to display a file's completion progress as
piece-based in addition to byte-based.
2023-06-05 13:15:32 -05:00
Charles Kerr
d72cb67cfb
chore: include directory name in libtransmission #includes ( #5308 )
2023-04-14 14:33:23 -05:00
Pierre Dubouilh
ebfba686b0
feat: sequential download ( #4795 )
2023-04-14 11:47:54 -05:00
Charles Kerr
5cc3bf8a97
fix: generate peer-id on launch ( #5233 )
2023-03-15 20:53:48 -05:00
Julien
4b8cfa2e57
chore: update copyrights to 2023 ( #4834 )
2023-02-11 14:49:42 -06:00
anarcat
331e1699bc
add remote HTTPS support to Qt GUI ( #4622 )
2023-01-26 00:24:04 -06:00
Charles Kerr
33a7d131b4
feat: add setting to choose between lazy-verify or full verify ( #4611 )
2023-01-18 02:09:29 -06:00
Charles Kerr
611b181a99
feat: add yourip to extension protocol handshake ( #4504 )
...
* feat: add yourip to the extension protocol handshake
2023-01-01 12:20:46 -06:00
Charles Kerr
59335eac03
fix: sonarcloud cpp:S6004 ( #4270 )
...
reduce scope of variables by using if-based initializer
2022-11-28 21:03:28 -06:00
Charles Kerr
1782dc6d7a
refactor: use readability-identifier-naming in clang-tidy ( #3784 )
2022-09-07 11:04:28 -05:00
Charles Kerr
072bb0322c
refactor: remove tr_quark_get_string() ( #3728 )
2022-08-28 16:17:07 -05:00
Greg Hazel
fa8b6a5e0a
option to disable TCP ( #3447 )
2022-08-25 21:27:11 -05:00
Charles Kerr
ab09718342
fixup! perf: sonarcloud warnings about temp objects ( #3686 ) ( #3699 )
2022-08-23 15:46:08 -05:00
bexnoss
258faf3623
gtk: Remember 4 recent relocate dirs ( #3691 )
...
* fix(gtk): prevent duplicate shortcut folders
This prevents duplicates if the recent destination is also a system
shortcut folder.
* refactor(gtk): create gtr_get_recent_dirs helper
* feat(gtk): remember 4 recent relocate dirs
2022-08-21 21:26:13 -05:00
Charles Kerr
785119f2c2
perf: sonarcloud warnings about temp objects ( #3686 )
...
* perf: sonarcloud warnings about unnecessary temporary objects
* refactor: rename tr_sha1_digest_t::final() as finish()
2022-08-20 15:57:32 -05:00
Charles Kerr
bfec98c323
refactor: avoid tr_new() in transmission-remote ( #3665 )
2022-08-17 20:25:42 -05:00
Charles Kerr
7fe2cf68b9
refactor: avoid tr_new(), tr_free() in tr_variant ( #3663 )
...
* refactor: remove unused tr_renew()
* refactor: remove unused tr_realloc()
* refactor: avoid tr_strvDup() in tr-quark
2022-08-17 14:44:18 -05:00
Viacheslav Chimishuk
de7986e01d
Add announce-ip and announce-ip-enabled parameters. ( #3461 )
2022-07-20 14:04:52 -05:00
Charles Kerr
61c1a0f1e8
feat: add rpc torrentGet.availability ( #3252 )
2022-06-11 12:06:07 -05:00
Matan Ziv-Av
c07bac4e19
Limit bandwidth used by a group of torrents ( #2761 )
...
* Add support for bandwidth groups. i.e. Bandwidth limit for a (user specified) group of torrents,
2022-03-18 08:11:59 -05:00
LaserEyess
706735ca88
Support binding the RPC to a Unix socket on *nix platforms ( #2574 )
...
* Support binding the RPC to a Unix socket on *nix
This commit adds unix socket support for a RPC. Some refactoring was
required in order to split out the RPC server's address struct from the
normal network address struct used for peers. It would cause
unacceptable overhead to add the unix socket length to the union.
Co-authored-by: Malte Voos <malte@malvo.org >
* add RPC socket mode to control unix socket perms
Unix socket permissions are important to control for security reasons,
and libevent defaults to 0755, which may not be what users want.
Co-authored-by: LaserEyess <LaserEyess@users.noreply.github.com >
Co-authored-by: Malte Voos <malte@malvo.org >
2022-02-23 15:09:54 -06:00