Commit Graph

177 Commits

Author SHA1 Message Date
Chocobo1
79ca2e145f Don't read unlimited data from files
It now guards against reading infinite files such as `/dev/zero`.
And most readings are bound with a (lax) limit.
As a side effect, more checking are done when reading a file and
overall the reading procedure is more robust.

PR #19095.
2023-06-14 13:38:19 +08:00
Chocobo1
179a61d75e Add curly braces 2023-05-07 19:41:55 +08:00
七海千秋
1e400df324 Set "SameSite=None" if CSRF Protection is disabled
PR #18843.
2023-04-16 14:27:49 +03:00
Vladimir Golovnev
58a654a70f Reject requests that contain backslash in path
PR #18626.
Closes #18618.
2023-02-27 16:50:50 +03:00
Vladimir Golovnev
72ac92ec68 Allow to use another icons in dark mode
PR #18435.
2023-02-07 22:07:15 +03:00
Vladimir Golovnev
c58fb92365 Suppress warning when session cookie name isn't overridden
PR #18455.
2023-01-26 07:00:20 +03:00
Vladimir Golovnev
771c58d000 WebAPI: Allow to specify session cookie name
PR #18384.
Closes #18329.
2023-01-17 09:31:17 +03:00
brvphoenix
b33dc7d831 Unify the way to generate the language list in WebUI and GUI
PR #17994.
2022-12-25 16:44:37 +03:00
Chocobo1
109c45bb95 Allow to use subnet notation in reverse proxy list
Closes #17475.
2022-09-08 14:44:18 +08:00
Chocobo1
851374e517 Rename function 2022-09-07 14:11:23 +08:00
Chocobo1
082e6f8830 Apply i18n translation only to built-in WebUI 2022-08-27 13:55:05 +08:00
Chocobo1
ee38124db7 Optimize symbolic links checking 2022-08-27 13:55:04 +08:00
Chocobo1
e06e1d9911 Throw error exception properly 2022-08-27 13:55:04 +08:00
Chocobo1
3851e76179 Remove special handling of icons 2022-08-27 13:55:04 +08:00
Chocobo1
aa6b29fe7e Set HTTP method restriction on WebAPI actions
PR #17548.
2022-08-15 11:56:59 +08:00
Chocobo1
5d1115f591 Remove compile-time conditional
This checking should be universally applied and not limited to certain OS.
2022-07-25 01:18:42 +08:00
Vladimir Golovnev
f8a304abdc Implement base classes for application components
PR #17219.
2022-06-25 15:46:55 +03:00
Tom Piccirello
fb7f7d0c75 Add support for exporting .torrent from WebUI
PR #16968.
2022-05-04 12:13:24 +08:00
Requi
669b67e666 WebAPI: return correct status
Fix web API returning Not Found instead of Forbidden.

When not having a session the API would return "Not Found" instead of "Forbidden" when trying to access a non-public endpoint.

PR #16866.
2022-04-14 08:26:19 +03:00
Vladimir Golovnev
4471a6377e Have separate API controller instances per session
PR #16848.
2022-04-12 13:39:35 +03:00
Chocobo1
4ca6de2b54 Revise string literal usage
PR #16703.
2022-03-26 11:53:50 +08:00
Chocobo1
efc04645b7 Use QString literals
It covers src/webui and enables `QT_NO_CAST_FROM_ASCII`.
2022-03-20 13:33:40 +08:00
Chocobo1
ab64ee872b Use QString literals
The plan is to define `QT_NO_CAST_FROM_ASCII` eventually.
PR #16561.
2022-03-04 13:25:22 +08:00
Vladimir Golovnev
dd1bd8ad10 Implement class for handling filesystem paths
PR #15915.
2022-02-08 06:03:48 +03:00
Vladimir Golovnev (Glassez)
399d3ad85a Replace QStringRef with QStringView 2021-07-15 10:56:49 +03:00
HiFiPhile
f5315d9ba7 Add WebUI reverse proxy source IP resolution (#15047)
Co-authored-by: qix67
Co-authored-by: HiFiPhile <admin@hifiphile.com>
2021-06-23 09:01:36 +03:00
Vladimir Golovnev (Glassez)
97c7f3bc67 Raise minimum Qt version to 5.14 2021-06-03 08:56:41 +03:00
Chocobo1
ef79546508 Add connection_speed to advanced settings
Now we follow libtorrent current default value 30.
Closes #6973.

Also bump WebAPI version.
2021-05-21 14:37:57 +08:00
Vladimir Golovnev (Glassez)
61d2ff359b Use QRegularExpression instead of deprecated QRegExp
Now it follows closely the definition of wildcard for glob patterns.
The backslash (\) character is not an escape char in this context.
In order to match one of the special characters, place it in square
brackets (for example, [?]).
2021-03-22 07:50:47 +03:00
Vladimir Golovnev (Glassez)
c41df9ffbd Improve coding style 2020-11-17 21:02:37 +03:00
Mike Tzou
de85b8b552 Merge pull request #12859 from Chocobo1/gif
Move WebUI icons to its own folder
2020-05-21 10:59:52 +08:00
Thomas Piccirello
6e4f49fc57 Always specify Content-Type in Web API error responses 2020-05-19 01:08:06 -07:00
Chocobo1
02c25dbe2a Move WebUI icons to its own folder
After this change: "http://<server>/icons" will point to "src/icons"
folder and "http://<server>/images" points to the real "images" folder
in the relative path.
2020-05-19 14:58:49 +08:00
Chocobo1
be152f45c9 Define and use Http::HeaderMap type 2020-05-11 00:34:28 +08:00
Chocobo1
d57b9be706 Rename function 2020-05-10 02:53:32 +08:00
Chocobo1
74a2168bc1 Define and use a proper HTTP header structure 2020-05-10 02:53:11 +08:00
Chocobo1
957d697aee Prebuild HTTP headers as much as possible
This avoids some branching when building a HTTP response.
2020-05-10 02:50:13 +08:00
Chocobo1
2729c0cb6d Suppress misleading warning message
QString::split() was giving a non-empty QStringList, and
that caused Session::setBannedIPs() to emit misleading warning message.
2020-04-23 21:01:33 +08:00
Chocobo1
bb80b378c1 Add ability to send custom HTTP headers 2020-04-23 12:13:01 +08:00
FranciscoPombal
691d5e5d89 WebUI: Implement "Secure" flag for session cookie
Closes #11724.

Option is enabled by default for users using qBittorrent's built-in HTTPS capabilities. This flag will never be set if qBittorrent is using plain HTTP.

Users using HTTPS reverse proxies, like "qbt <-> (http) <-> proxy <-> (https) <-> user" should override the flag in the proxy in order to set it, if they wish to do so.
2019-12-23 17:58:08 +00:00
Chocobo1
8fe8cbd3d1 Reuse code path in switch cases 2019-11-14 12:14:29 +08:00
Chocobo1
f907328bdc Add const to class function 2019-08-14 20:29:01 +08:00
Chocobo1
230949ee3b Cache and reuse detected MIME type 2019-08-14 17:51:19 +08:00
Chocobo1
7a5e883cd2 Revise inline keyword usage
And let compiler decide whether to inline functions.
2019-07-16 18:42:55 +08:00
Chocobo1
89124bdcc8 Add WebAPI session timeout settings
Raise default timeout to 1 hour.
2019-06-15 18:57:19 +08:00
Chocobo1
e288de7ec1 Forward declare as much as possible 2019-05-19 12:06:18 +08:00
Chocobo1
c6f3da1097 Improve removeIf() to support set types
We can now replace QMutable*Iterator by removeIf() which usage is more consistent with other
algorithm functions.
2019-05-14 01:26:01 +08:00
Chocobo1
bd8d70bf60 Refactor HTTP query parsing 2019-05-09 12:41:30 +08:00
Chocobo1
69d29af097 Fix '+' char not decoded to space correctly
Closes #10606.
2019-05-09 11:17:41 +08:00
Chocobo1
375de4f8a6 Replace QMap with QHash when sensible 2019-05-01 11:09:25 +08:00