Commit Graph

5269 Commits

Author SHA1 Message Date
Antoine Cœur
d3e1c83c9b Address build warnings (#3052) 2022-05-04 18:54:41 -05:00
Antoine Cœur
9069e4c910 Fix TeamCity Code Style (#3045) 2022-05-01 13:06:32 -05:00
Charles Kerr
88a0b292d9 fixup: fix fd regression in tr_open_files (#3036)
Fixes #3032.
2022-04-30 23:30:49 -05:00
Charles Kerr
4cc952f0ca fixup! fixup! fix: ensure all bytes read / written to file (#2682) (#2780) (#3035)
fix spurious tr_error being set when reading up to eof

Fix error introduced in the previous fixup :P
2022-04-30 18:43:32 -05:00
Charles Kerr
c8f5cff564 fixup! fixup! fix: ensure all bytes read / written to file (#2682) (#2780) (#3033)
fix spurious tr_error being set when reading up to EOF.

This regression generated invalid error messages when no error occurred.
2022-04-30 16:57:11 -05:00
Charles Kerr
e4221916b1 fix: invalid tr_peerMsgsImpl::prefetchCount value (#3024)
* fix: invalid tr_peerMsgsImpl::prefetchCount value

This count could get corrupted due to imprecise bookkeeping when
processing peers' cancel messages. This PR replaces the field with
a `prefetched` flag in the struct that represents a peer request.

This approach has simpler code, simpler logic, and is harder to break.
2022-04-29 12:44:22 -05:00
Charles Kerr
d487a5d8d7 refactor: make tr_swarm.peers a std::vector (#3017) 2022-04-29 08:32:15 -05:00
Charles Kerr
5dbe1f4669 refactor: replace tr_fdlimit with tr_open_files (#3016) 2022-04-28 21:35:47 -05:00
Charles Kerr
a400682247 refactor: remove unused tr_torrent fields (#3013)
* refactor: remove unused field tr_torrent.prefetchMagnetMetadata

* refactor: remove unused field tr_torrent.dhtAnnounce6InProgress

* refactor: remove unused field tr_torrent.dhtAnnounceInProgress

* refactor: fold etaULSpeed and etaDLSpeed into one field

* refactor: re-arrange fields to avoid padding
2022-04-28 11:52:07 -05:00
Charles Kerr
5e769fbc55 refactor: make tr_recentHistory a template class (#3012)
This gives more flexibility on the size of the count bins, so we can save space on smaller counts
2022-04-28 10:52:26 -05:00
maxz
d8c5c65725 Specify the umask and IPC socket permission as strings. (#2984)
* Support specifying the umask as a string representing an octal number.

* Save the umask as a string representing an octal number.

* Support specifying the IPC socket permission as a string representing an octal number.

* Save the IPC socket permission as a string representing an octal number.

* Add a `base` parameter to `tr_parseNum()` for specifying the radix.
2022-04-28 09:16:19 -05:00
Charles Kerr
7c2477dddf refactor: reduce field padding in some structs (#3006)
* refactor: use smaller integral types in tr_bandwidth

* refactor: re-arrange tr_torrent fields to avoid padding

* refactor: re-arrange tr_torrent fields to avoid padding

* refactor: re-arrange tr_announcer fields to avoid padding
2022-04-28 08:44:24 -05:00
Charles Kerr
bf655a921d refactor: use smaller integral types in some structs (#3005) 2022-04-27 20:06:51 -05:00
Charles Kerr
fca85c2f4d refactor: add Handshakes helper class in peer-mgr (#3002) 2022-04-27 12:20:55 -05:00
Charles Kerr
304fffa6b3 refactor: intern tr_torrent.bandwidth_group_ (#3000)
Most use cases involve either (a) using the default group or (b) sharing
a group with other torrents. In both cases, using a tr_quark is cheaper
than a std::string.
2022-04-27 10:41:28 -05:00
Charles Kerr
a818ac9b13 perf: limit the scope of bitfield assertions (#2994)
Fixes #2830.
2022-04-26 19:51:24 -05:00
Charles Kerr
0025363ede perf: faster file priorities (#2992) 2022-04-26 11:11:21 -05:00
Charles Kerr
ca13842c84 refactor: make tr_torrent::verify_state_ private (#2982) 2022-04-24 22:43:26 -05:00
Charles Kerr
aa2bb367ab chore: iwyu cleanup (#2981) 2022-04-24 20:49:52 -05:00
qu1ck
07dc81170a Fix fields handling in session-get (#2972) 2022-04-24 14:34:32 -05:00
Charles Kerr
d4e1b32e38 fix: corruptin when downloading webseeds (#2978)
Fixes #2909.
2022-04-24 12:46:44 -05:00
Charles Kerr
0a3018d706 refactor: decouple peer limits from fdlimit (#2969) 2022-04-22 16:15:06 -05:00
Charles Kerr
1ebac744a5 build: re-enable cert-err33-c clang-tidy warning (#2968)
* refactor: re-enable cert-err33-c clang-tidy warning

* refactor: use fmt::chrono in transmission-remote

* refactor: use fmt::chrono in transmission-show

* refactor: use fmt::chrono in GTK details dialog

* refactor: use fmt::chrono in tr_session

* refactor: remove tr_localtime_r

* refactor: remove tr_gmtime_r
2022-04-22 14:56:54 -05:00
Charles Kerr
ed897f93f2 refactor: remove evbuffer_free_to_str() (#2967) 2022-04-22 13:05:49 -05:00
Charles Kerr
32facb50d7 refactor: prefer tr_pathbuf over tr_strvPath() (#2966) 2022-04-22 11:35:56 -05:00
Charles Kerr
7918113e0b refactor: partially c++ifiy tr_rpc_server (#2965)
Replace the older C-style API methods to be class methods.
2022-04-22 09:19:20 -05:00
Charles Kerr
3643a8aee5 refactor: prefer std::vector as the default container (#2964) 2022-04-22 08:08:02 -05:00
goldsteinn
f823df364e Refactor: use popcnt in bitfield and cleanup warnings (#2950)
Co-authored-by: Noah Goldstein <goldstein.w.n@gmail.com>
2022-04-22 06:54:35 -05:00
Charles Kerr
4d7d35ad57 fix: heap-buffer-overflow in variant-json (#2963)
Fixes #2953.
2022-04-22 01:28:02 -05:00
Charles Kerr
41cb8cbc91 refactor: add tr_address.readable (#2962) 2022-04-21 18:37:02 -05:00
Charles Kerr
a25da4f376 refactor: add tr_address::fromCompact() (#2961) 2022-04-21 17:06:00 -05:00
Charles Kerr
a52edbcbbe refactor: remove tr_announce_list.tiers (#2960) 2022-04-21 15:48:30 -05:00
Charles Kerr
68a43c1684 fix: when loading resume state, load filenames before mtimes (#2958) 2022-04-21 12:07:09 -05:00
Charles Kerr
32f854a7cf refactor: add a tr_port safety class (#2952) 2022-04-21 10:58:13 -05:00
Antoine Cœur
bdac708762 docs: fix various typos and misspellings (#2955) 2022-04-21 09:28:38 -05:00
Charles Kerr
0eb1857c6c build: re-enable cert str34 c clang tidy (#2946)
* build: add clang-analyzer-deadcode.* to clang-tidy

* build: do not disable cert-str34-c checks in libtransmission
2022-04-19 09:51:25 -05:00
Charles Kerr
345b71ffda refactor: use std::vector for tr_torrents.removed_ (#2943) 2022-04-18 14:24:20 -05:00
Antoine Cœur
9c0038ac8e Pause magnet download when "Start when added" is unchecked (#2902)
Co-authored-by: Charles Kerr <charles@charleskerr.com>
2022-04-18 01:03:44 -05:00
Charles Kerr
18da7eb125 refactor: use std::vector<tr_quark> for torrent labels (#2942) 2022-04-18 00:53:48 -05:00
Charles Kerr
3a8cac3914 fix: uninintialized field tr_torrent_files.total_size_ (#2941) 2022-04-17 23:21:18 -05:00
Charles Kerr
af49e0f1af fix: do not load magnet file resume files (#2940) 2022-04-17 21:55:20 -05:00
Charles Kerr
fc2f6e9725 refactor: make tr_peerMgr.webseeds a std::vector (#2937) 2022-04-17 17:29:06 -05:00
goldsteinn
9c84e85432 Refactor: Cleanup misc inefficiencies throughout the file (#2933)
Co-authored-by: Noah Goldstein <goldstein.w.n@gmail.com>
2022-04-17 10:54:38 -05:00
Charles Kerr
6cdc7e3828 refactor: remove tr_announce_list::tracker info.announce (#2931) 2022-04-16 15:41:51 -05:00
Charles Kerr
ef4fcf7ffd refactor: remove tr_announce_list.tracker_info.scrape (#2930) 2022-04-16 14:14:18 -05:00
Charles Kerr
2f97655981 refactor: remove tr_url_parsed_t.portstr (#2929) 2022-04-16 13:13:42 -05:00
Charles Kerr
881860ac6f refactor: remove tr_torrent.magicNumber (#2927) 2022-04-16 10:48:51 -05:00
Charles Kerr
f4bb09428b fixup: more libfmt usage regressions (#2924) 2022-04-15 19:56:16 -05:00
Charles Kerr
2866638e1b refactor: add tr_torrent_files::move() and remove() (#2919) 2022-04-15 18:39:04 -05:00
Antoine Cœur
4590d172de meta info piece_size should be maximum UINT32_MAX (#2914) 2022-04-15 00:38:59 -05:00