Commit Graph

2245 Commits

Author SHA1 Message Date
sledgehammer999
3d9e9715b4 Merge pull request #21364 from sledgehammer999/dont_ignore_ssl_errors
Don't ignore SSL errors
2024-10-12 10:37:48 +03:00
Chocobo1
21b0367629 Avoid heavy weight function object
Also, by switching to template we can avoid the cost of converting to some specific type and
perfectly forward the parameter to the final function.

PR #21572.
2024-10-12 15:15:39 +08:00
Chocobo1
ac646f47a2 Avoid shadowing function parameter
The function already has a parameter named `result`.
Also remove a duplicate variable since it already has a pref pointer at the start of the function.

PR #21571.
2024-10-12 15:04:47 +08:00
Vladimir Golovnev
2d185dc1c7 Allow to choose Qt style
PR #21553.
2024-10-11 16:04:57 +03:00
Vladimir Golovnev
2d857b6200 Disable "Move to trash" option by default
PR #21528.
2024-10-10 14:13:40 +03:00
Chocobo1
9e5433bcf8 Add name to threads
This help identifying threads when debugging.
The naming scheme is using 'class/function name + variable name'.
Note that the length limitaion is 16 chars on linux. On Windows, the limit is 32767 chars.

PR #21403.
2024-10-06 15:23:50 +08:00
Vladimir Golovnev
3fb5d7764c Don't try to apply Mark-of-the-Web to nonexistent files
Trying to apply it to a nonexistent file is unacceptable, as it may unexpectedly create such a file.

PR #21488.
Closes #21440.
2024-10-05 12:27:03 +03:00
stalkerok
e75bcbed6d Remove non-working DHT bootstrap nodes
router.utorrent.com has been dead for a long time. router.bittorrent.com died about a month or two ago. dht.aelitis.com doesn't work either. It is no longer possible to get DHT nodes from them.
Added router.silotis.us. Only ipv6!

PR #21296.
2024-10-05 16:45:29 +08:00
sledgehammer999
6981217369 Don't ignore SSL errors 2024-10-04 22:48:46 +03:00
Hanabishi
b5b34c9ff4 Add "Simple pread/pwrite" disk IO type
PR #21300.
2024-10-01 19:58:35 +03:00
Chocobo1
7b45566efc Migrate away from deprecated functions in Qt 6.9
Closes #21412.
PR #21415.
2024-09-30 18:31:17 +08:00
Chocobo1
10eb921d70 Allow drop action only on transfer list
Now drop action is only allowed on transfer list, previously it was on main window.
Having drop action on the whole main window is not preferred because it could allow drop action
on other unrelated widgets, such as execution log or RSS widget which is unexpected behavior.

PR #21332.
2024-09-30 16:59:57 +08:00
Chocobo1
a23f45cc70 Split platform specific code to its own file
PR #21368.
2024-09-22 14:28:40 +08:00
Chocobo1
23f7275bd5 Merge pull request #21333 from Chocobo1/random
Improve PRNG functions
2024-09-16 17:56:19 +08:00
Burnerelu
e06b7f8f4d Enable customizing the save statistics time interval
This change extends the Advanced section of the Preferences menu with a new field, allowing changing the time statistics save interval. A zero value will prevent recurrent saving.

This aims to provide the feature requested in issue #21285.

PR #21291.
2024-09-16 17:16:59 +08:00
Chocobo1
3058158b69 Use modern function for getting random numbers on Windows
The previous `RtlGenRandom()` just redirects to `ProcessPrng()` according to "The Windows 10
random number generation infrastructure" whitepaper from MS.

`ProcessPrng()` is also the de facto PRNG for Rust lang:
aa13fa5882/src/windows.rs (L3C1-L22C81)
And for golang:
https://go-review.googlesource.com/c/go/+/536235
2024-09-14 23:20:07 +08:00
Chocobo1
dbef6da544 Use modern function for getting random numbers on Linux
Now we don't need a file handle anymore and there is no initialization involved in this new
implementation.
2024-09-13 22:27:42 +08:00
Chocobo1
130c0d8487 Revise cookie 'secure flag' enable condition
The localhost is 'potentially trustworthy' and RFC 6265 allows setting secure flag in this case.
Also check `X-Forwarded-Proto` header value to support reverse proxy usage.

Note: for reverse proxy users, now the `X-Forwarded-Proto` header is expected to be sent to qbt
otherwise the `secure` flag might be set erroneously.

https://datatracker.ietf.org/doc/html/rfc6265#section-4.1.2.5
https://w3c.github.io/webappsec-secure-contexts/#is-origin-trustworthy

Closes #21250.
PR #21260.
2024-09-07 21:38:27 +08:00
Vladimir Golovnev
d9bc7935eb Apply "merge trackers" logic regardless of way the torrent is added
PR #21299.
2024-09-06 16:28:22 +03:00
Chocobo1
fc82abe7f6 Remove 'loopback address detection' helper function
It is not needed since `QHostAddress::isLoopback()` can do the job.
PR #21259.
2024-08-31 15:53:39 +08:00
sledgehammer999
72feee6fdd Fix version bump
Closes #21265
2024-08-26 09:46:27 +03:00
sledgehammer999
9a9c375b9d Bump to v5.1.0alpha1 2024-08-24 21:49:49 +03:00
xavier2k6
f818d0dbe0 Sync "expected lite" with upstream
* Release 0.8.0

PR #21213.
2024-08-19 15:32:01 +08:00
stalkerok
0da383e7b6 Add a flag about the connection peers are using NAT hole punching
PR #21052.
2024-08-15 20:27:19 +03:00
Vladimir Golovnev
bee56f2567 Fix Incomplete Save Path cannot be changed for torrents without metadata
PR #21152.
Closes #21140.
2024-08-08 08:20:26 +03:00
Chocobo1
69a829dfb0 Clean up search engine
Notable changes:
1. Prevent excessive engine module imports.
2. Replace trivial usage of `join()`.
3. Keep the output text sorted whenever possible.
4. Close handles properly.
5. Print error to stderr, not stdout.
6. Report search job exit code.
7. Print exception message to stderr if exception was thrown when
   running a search job.
8. Utilize XML library to build XML data
   And use 2 spaces as indentation.

PR #21098.
2024-07-22 16:51:57 +08:00
Vladimir Golovnev
3b38d0de7f Represent by TorrentInfo only info-section related metadata
PR #21084.
2024-07-19 06:25:41 +03:00
Chocobo1
8b7fdf0f22 Bump Python version minimum requirement
The new minimum version is Python 3.9.

Debian Buster (oldoldstable) support ends at [2024.06.30](https://www.debian.org/releases/buster/).
Ubuntu Focal (20.04LTS) support ends at [2025.04](https://ubuntu.com/about/release-cycle).
By the time qbt v5.1 is released, Buster and Focal would have become EOL.

https://packages.debian.org/search?keywords=python3
https://packages.ubuntu.com/search?keywords=python3

PR #21064.
2024-07-17 12:13:58 +08:00
Vladimir Golovnev
815ab180c1 Prevent incorrect size from being used for creating array
PR #21050.
2024-07-12 08:49:45 +03:00
Vladimir Golovnev
5ef2a1df07 Use QList explicitly
PR #21016.
2024-07-04 08:30:39 +03:00
Vladimir Golovnev
4e27e88f6a Allow to move content files to Trash instead of deleting them
PR #20252.
2024-06-29 08:21:35 +03:00
Vladimir Golovnev
0cbe4882c3 Use custom storage when reloading torrent
PR #20998.
2024-06-28 07:14:19 +03:00
Chocobo1
5740238933 Use proper casting
Previously `m_shutdownTimeout * 1000` was calculated in `int` and now it
is `qint64`.

PR #20982.
2024-06-24 15:02:48 +08:00
Chocobo1
7a2bfae5e4 Improve connection handling
1. Previously unhandled connections will stay in pending state. It won't
be closed until timeout happened. This may lead to wasting system
resources. Now the (over-limit) connection is actively rejected.

2. When out-of-memory occurs here, reject the new connection instead of
throwing exception and crash.

3. Also clean up some unused bits.

PR #20961.
2024-06-20 12:13:27 +08:00
ManiMatter
914728d9a1 WebAPI: Add "private" filter for 'info' endpoint
PR #20833.

---------

Co-authored-by: Vladimir Golovnev <glassez@yandex.ru>
Co-authored-by: Chocobo1 <Chocobo1@users.noreply.github.com>
2024-06-16 10:57:12 +03:00
Vladimir Golovnev
65d143d4c4 Apply share limits when torrent downloading is finished
PR #20917.
Closes #20874.
2024-06-12 09:03:07 +03:00
Vladimir Golovnev
d89f289f82 Apply filename filter to subfolder names as well
PR #20902.
Closes #14480.
2024-06-12 09:02:10 +03:00
Chocobo1
a126a7b493 Adjust user agent version automatically
The version calculation is an estimation and it will drift off after some time. Hopefully the
drift offset won't be noticeable within a few years.

Also switched the user agent to Windows 10 which has the largest portion of users to avoid
standing out from the crowd.

PR #20864.
2024-05-20 13:50:18 +08:00
Vladimir Golovnev
e09a871ca3 Revamp alerts handling
PR #20854.
2024-05-18 10:36:08 +03:00
Vladimir Golovnev
4d8713ce11 WebAPI: Add a way to download .torrent file using search plugin
* Simplify nova2dl script
* Use search engine name instead of site URL (like nova2 does)
* Add a way to download torrent using search plugin

PR #20824.
2024-05-15 08:47:40 +03:00
Hanabishi
2c47f09d7a Sanitize peer client names
PR #20788.
Closes #20010.
2024-05-11 18:46:11 +03:00
cayenne17
21a4ab6bac Update User-Agent
PR #20801.
2024-05-10 21:47:55 +03:00
Vladimir Golovnev
2b728b3bc0 Add an option to set BitTorrent session shutdown timeout
PR #20797.
2024-05-07 13:15:39 +03:00
Vladimir Golovnev
8ef7d3ec9a Add ability to pause/resume entire BitTorrent session
PR #20757.
Closes #18993.
2024-05-03 09:02:50 +03:00
Vladislav Grechannik
cd3982cf3c Include missing header
PR #20776.
Closes #20774.
2024-05-01 12:37:22 +03:00
ducalex
42b87963fd Add date column to the built-in search engine
Adds a date column to the built-in search engine to show when a torrent was published/uploaded on the engine site.
When a plugin wants to show a date, it can now add a `pub_date` entry to its result dict. The value format is a unix timestamp (an integer representing seconds since epoch).
Plugins with no date support will keep working.

PR #20703.
2024-04-29 21:10:24 +03:00
Chocobo1
775b38079f Avoid repetitive function calls
PR #20764.
2024-04-29 13:05:05 +08:00
Chocobo1
321d7e5b17 Adjust tracker tier when adding additional trackers
Closes #20102.
PR #20729.
2024-04-25 12:18:30 +08:00
Vladimir Golovnev
ca71c186e0 Don't forget to resume "missing files" torrent when rechecking
PR #20747.
2024-04-24 09:15:19 +03:00
Vladimir Golovnev
ace5286402 Prevent invalid status filter index from being used
PR #20714.
Closes #20701.
2024-04-18 07:59:24 +03:00