Commit Graph

88 Commits

Author SHA1 Message Date
FranciscoPombal
6152b83405 Use #pragma once instead of include guards 2020-12-12 19:41:32 +00:00
Vladimir Golovnev (Glassez)
c41df9ffbd Improve coding style 2020-11-17 21:02:37 +03:00
FranciscoPombal
4bdf9eda41 Fix extra/missing trailing new lines in files 2020-10-28 14:20:18 +00:00
Andrei Stepanov
04306a544f Fix typo in connection.cpp
limiation -> limitation
2020-10-20 11:10:51 +04:00
Chocobo1
2f1016494b Specify UTF-8 charset when forming data from plain text
This suppresses a browser warning about unspecified character encoding
of an HTTP response.
2020-09-08 14:30:55 +08:00
FranciscoPombal
0fa7fca31e Fix truncation when parsing HTTP request query
Closes #13029.

Fixes an issue with truncation of a QByteArray at the first '\0' byte
when parsing HTTP request query strings.

Previously, the operands of the ternary expression were of
different types. Most likely this was leading to a conversion
of the result to some kind of '\0'-terminated string type somewhere
along the way, in turn causing its truncation at the first '\0' byte
once converted back to QByteArray.

For some reason this bug was only present on Windows (MSVC).
2020-06-23 11:45:30 +01: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
6d167e9a28 Remove const from class variables
It prohibits copy construction, copy assignment and move semantics.
2020-04-29 21:32:34 +08:00
Chocobo1
d3d3f7dbb3 Add final specifier to classes
This allow compilers to generate more efficient code.
2020-04-17 13:18:40 +08:00
Chocobo1
7de8a4d6e0 Construct QString more efficiently 2020-03-25 12:00:11 +08:00
FranciscoPombal
7d24e1c063 WebAPI: fix matching uncategorized torrents
Closes #11748.
2020-03-22 03:49:06 +00:00
Chocobo1
8d0d8e4dcb Improve embedded tracker
Now it conforms to BEPs more closely.
2019-08-21 18:05:50 +08:00
Chocobo1
b5b678c58f Replace QString::split() by faster alternatives 2019-08-08 18:57:54 +08:00
Chocobo1
f4e7b8c6bf Replace QMap with QHash 2019-08-05 09:51:39 +08:00
Chocobo1
4a90716843 Add override keyword to functions 2019-07-19 11:58:56 +08:00
thalieht
4370a7eb12 Forward declare in a few places 2019-06-04 17:48:55 +03:00
Chocobo1
ff707ea5af Change splitToViews() return type to QVector 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
a2a669572c Use QSet for tracking server connections
We don't need to maintain order between connections so QSet would be more suitable.
2019-04-15 21:35:35 +08:00
Chocobo1
a35b6cc8dd Remove closed connections immediately
Previously it relied on a timer to drop dead connections but that proved to
be too slow when there is an incoming burst of connections.

Fixes #10487.
2019-04-15 21:35:10 +08:00
Chocobo1
d86a984e25 Correctly handle '+' sign in x-www-form-urlencoded data
Fixes #10451.
2019-04-07 13:58:16 +08:00
Chocobo1
c657134344 Replace deprecated QSslSocket::setDefaultCiphers() 2019-02-28 12:01:36 +08:00
thalieht
70f1537d9f Add const to almost all remaining vars and arguments that qualify 2019-02-25 17:05:15 +02:00
thalieht
d8cbc9266a Use 'auto' to avoid duplicating the type name 2019-02-16 18:54:17 +02:00
Chocobo1
79d7ba8205 Fix wrong arg placeholder 2019-02-09 21:26:45 +08:00
Mike Tzou
c540e57f55 Merge pull request #10227 from Chocobo1/login
Prevent login credential appearing in URL
2019-02-07 13:16:24 +08:00
Chocobo1
6d29a3af60 Make use of std algorithms 2019-02-05 13:35:54 +08:00
Chocobo1
814eef1e56 Fix wrong arg placehoder 2019-02-01 13:38:14 +08:00
Chocobo1
5cdb3b6a2d Load WebUI certificate & key from file path
This allow users to update certificate & key more easily, i.e. without the need to import them
into qbt.

Closes #6675, #7547, #8315, #8564.
2019-01-28 16:33:48 +08:00
Vladimir Golovnev (Glassez)
b0446380c6 Separate URL components before percent-decoding
Allow special characters in query string parameters.
Closes #9116.
2019-01-27 15:33:19 +03:00
Chocobo1
7fd30fa90f Enforce referrer-policy in WebUI
This stops leaking private data to other websites via Referrer header.
2018-12-10 22:17:04 +08:00
thalieht
6b1d26d555 Convert all foreach() to range-based for() 2018-11-28 23:40:12 +02:00
thalieht
d668a4fe6d Fix coding style for various things 2018-11-28 23:37:35 +02:00
Chocobo1
050b78f378 Send Cache-Control header in WebUI responses
Tune the caching time to be shorter, in case there is a program
update.
Change the cacheability to private, as WebUI resources are not intended
to be cached at proxy.
For uncacheable responses, send out "no-store" explicitly to halt
browser caching.
2018-06-04 20:50:08 +08:00
Chocobo1
c22e6b4502 Cleanup header include order
Add missing header.
Cleanup license.
2018-05-31 22:56:25 +08:00
Vladimir Golovnev (Glassez)
90f09e7570 Properly fill UploadedFile::filename field
Closes #8928.
2018-05-16 20:13:55 +03:00
thalieht
20ca90800d Fix coding style 2018-05-09 17:06:22 +03:00
Vladimir Golovnev
3a0e5e51df Merge pull request #8761 from thalieht/nullptr
Replace the zeroing of pointers with nullptr
2018-05-08 17:10:37 +03:00
Chocobo1
4dea03fc74 Remove unused constants 2018-04-17 20:29:43 +08:00
thalieht
3e4099fe5b Replace the zeroing of pointers with nullptr 2018-04-15 13:06:31 +03:00
Chocobo1
423511765a Fix typo 2018-03-14 23:37:08 +08:00
Vladimir Golovnev (Glassez)
1aca3b0adc Parse URL query string at application level 2018-03-04 17:08:48 +03:00
Vladimir Golovnev (Glassez)
34295a78f2 Move ByteArray utils into Utils::ByteArray namespace 2018-03-02 17:23:21 +03:00
Chocobo1
f34dfca5e6 Enable Http/1.1 persistence connection
This enables reusing existing TCP connection instead of opening a new connection
for every request
2018-02-23 14:46:22 +08:00
Chocobo1
cec68c3fd7 Rewrite RequestParser
* Add more checks and also more strict checks for invalid conditions
* Add http version field
* Raise max request size to 64 MB
* Add author in license
* Use Qt5 new connect syntax
2018-02-23 14:46:17 +08:00
Vladimir Golovnev (Glassez)
a0842a1e68 Don't convert POST parameter names to lower-case 2018-02-18 19:57:48 +03:00
Vladimir Golovnev (Glassez)
27d8dbf13b Redesign Web API
Normalize Web API method names.
Allow to use alternative Web UI.
Switch Web API version to standard form (i.e. "2.0").
Improve Web UI translation code.
Retranslate changed files.
Add Web API for RSS subsystem.
2018-01-28 19:16:24 +03:00