Commit Graph

1491 Commits

Author SHA1 Message Date
Seungwoo Kang
ac757ff0c9
Fix websocket crash from connection pointer dangling (#530)
* websocket: Add dangling-prevent anchor pointer

* websocket: Fix deadlock from incorrect expiration expectation

* webscoket: Fix unsafe write access to anchor_

* websocket: Fix build error from use of 'nullptr_t'

* websocket: Remove latent dereferencing on dangling 'this' pointer

* websocket: Resolve conflict with master branch

Co-authored-by: Vladislav <vladislav.oleshko@gmail.com>
2022-10-09 19:03:52 +03:00
Ryan Russell
f5adec7803
refactor(websocket): readability improvements (#541)
Signed-off-by: Ryan Russell <git@ryanrussell.org>
Co-authored-by: Vladislav <vladislav.oleshko@gmail.com>
2022-09-19 00:34:43 +03:00
Seungwoo Kang
1e47bc67ba
websocket: Reduce number of re-allocation of string parameters (#535)
Co-authored-by: Vladislav <vladislav.oleshko@gmail.com>
2022-09-18 23:57:37 +03:00
Ryan Russell
33becfb353
docs(middlewares): readability improvements (#540)
Signed-off-by: Ryan Russell <git@ryanrussell.org>
2022-09-18 23:24:29 +03:00
Jake Arkinstall
0b90bb486c
Address #534 - handling missing mime types gracefully (#536)
* Added tests for content-type to mime-type detection.

Added a custom_content_types test case that verifies that a user can
specify the mime-type through the contentType parameter upon creation
of a response. If their contentType does not appear in the mime_types
map, but looks like a valid mime type already, it should be used as the
mime type.

Validating against the full list of valid mime types
(https://www.iana.org/assignments/media-types/media-types.xhtml)
would be too intensive, so we merely verify that the parent type
(application, audio, font, text, image, etc) is a valid RFC6838
type, and that the subtype is at least one character. Thus we can
verify that custom/type fails, and incomplete strings such as
image/ and /json fail.
2022-09-12 14:16:16 +03:00
Farook Al-Sammarraie
c0bfaa7709
Merge pull request #523 from CrowCpp/fix-stack-data-disclosure
Fix stack data disclosure when returning static files smaller than 16KiB
2022-08-23 00:22:33 +03:00
Farook Al-Sammarraie
27439944b0
Merge branch 'master' into fix-stack-data-disclosure 2022-08-23 00:22:17 +03:00
Farook Al-Sammarraie
6227114191
Merge pull request #524 from CrowCpp/prevent_pipeline
Prevent HTTP pipelining
2022-08-23 00:21:59 +03:00
The-EDev
1e0efb0b8b
Added unittest for Host header 2022-08-22 22:32:22 +03:00
Igor Mróz
d17a88af69
Fix stack data disclosure when returning static files smaller than
16KiB. It could also cause to return partially incorrect file ending in
case of file not being rounded up to 16KiB.

Thanks to Gynvael Coldwind and hebi for discovering and preparing
report.
2022-08-22 20:15:03 +02:00
The-EDev
0aa3ab94be
fixed unit-tests and warnings 2022-08-22 00:38:03 +03:00
The-EDev
fba01dc76d
Prevent HTTP pipelining which Crow doesn't support. 2022-08-21 21:33:04 +03:00
Farook Al-Sammarraie
fde74c4d2e
Merge pull request #522 from ryanrussell/vcpkg-reference-fix
docs(compression): Fix `vcpkg.json` reference
2022-08-20 17:17:59 +03:00
Ryan Russell
66f1a9e948 docs(compression): Fix vcpkg.json reference
Signed-off-by: Ryan Russell <git@ryanrussell.org>
2022-08-20 09:15:59 -05:00
Vladislav
df0b50ba79
Merge pull request #518 from deroskarmodulo/master
Fix merge_all.py to use encoding='UTF-8' in open() calls
2022-08-15 20:36:46 +03:00
Oskar Schmölz
5642509eae add utf-8 encoding for file opening 2022-08-12 13:58:21 +02:00
Farook Al-Sammarraie
87cf68f0eb
Merge pull request #514 from erikaldsund/cpp17_filesystem_usage_fixes
Cpp17 filesystem usage fixes
2022-08-07 19:01:47 +03:00
erik
b12767133a Don't use std::filesystem when compiling in C++17 mode on gcc < 8
On gcc < 8, filesystem had to be included as <experimental/filesystem>, it
was also living in the std::experimental namespace, and also required the user
to link against -lstdc++fs.
2022-08-06 00:59:57 +03:00
erik
99c4569408 Fix compilation error using std::filesystem::path
A std::filesystem::path is not implicitly convertible to a std::string.
2022-08-06 00:59:57 +03:00
Farook Al-Sammarraie
6e7f0fb8e6
Merge pull request #513 from erikaldsund/cpp11_ambiguity_fix
Fix compilation error: ambiguous overload
2022-08-05 18:41:01 +03:00
erik
e3f5c5924c Fix compilation error: ambiguous overload
On gcc 5.3.0, you get a compilation error when assigning a lambda
function to a json::wvalue. The compilation error is due to a lambda
function being implicitly convertible to a function pointer, which again
can be implicitly converted to both a bool and a std::function. Avoid
the ambiguity by explicitly casting the lambda to a std::function.
2022-08-05 15:52:52 +02:00
Farook Al-Sammarraie
c4e810f645
Merge pull request #507 from CrowCpp/optional_static_dir_slash
static directory slash fix
2022-07-25 14:29:46 +03:00
Farook Al-Sammarraie
4e4dbec120 formatting 2022-07-25 13:56:54 +03:00
The-EDev
5f22a6562a made CROW_STATIC_DIRECTORY and BP static directory more versatile (on
win and linux)
2022-07-25 13:56:54 +03:00
Farook Al-Sammarraie
04808b8557
Merge pull request #508 from dranikpg/middleware-macro-fix
Add template/typename keywords to crow macros
2022-07-24 15:45:05 +03:00
Vladislav Oleshko
34d8bd34bc Add template keyword to CROW_MIDDLEWARES 2022-07-24 00:31:34 +03:00
Farook Al-Sammarraie
ac7fb15e7e
Merge pull request #499 from CrowCpp/early_routing
Find the route as soon as the URL is parsed
2022-07-22 18:13:45 +03:00
The-EDev
25eefa1711 Addressed code reviews + small tweaks (unit test and paser.done()) 2022-07-22 17:17:38 +03:00
The-EDev
b986d1e38a Find the route as soon as the URL is parsed 2022-07-22 17:17:38 +03:00
Farook Al-Sammarraie
5f49f9add8
Merge pull request #505 from dranikpg/session-fixes
Session fixes
2022-07-22 01:08:44 +03:00
Vladislav Oleshko
c105a86a7a Fix struct/class divergence 2022-07-22 00:45:40 +03:00
Farook Al-Sammarraie
5f77b2bd3b
Merge pull request #503 from Phoenix-flame/patch-1
Fix build warnings
2022-07-21 22:14:38 +03:00
Alireza Mohammadi
8ee2a0f93d
Fix build warnings 2022-07-20 14:59:56 +04:30
Farook Al-Sammarraie
777b2dba1f
Merge pull request #501 from Iuliean/get_part_by_name_fix
get_part_by_name doesn't crash on nonexistent keys
2022-07-18 23:58:00 +03:00
Iulian Radu
31160579ea
Update multipart.h
format
2022-07-18 22:08:44 +03:00
Radu Iulian
b89d13ac3b fixed formatting 2022-07-18 21:42:14 +03:00
Radu Iulian
a4bab45fcd get_part_by_name doesn't crash on nonexistent keys 2022-07-18 21:03:42 +03:00
Farook Al-Sammarraie
e662a903a1
Merge pull request #448 from dranikpg/sessions
Sessions Middleware
2022-07-14 22:13:43 +03:00
Luca Schlecker
6128a0df11
Merge branch 'master' into sessions 2022-07-14 19:42:55 +02:00
Vladislav Oleshko
cee7f78ec8 Small fixes 2022-07-14 20:20:34 +03:00
Vladislav Oleshko
fb327f4a88 formatting 2022-07-10 14:52:31 +03:00
Vladislav Oleshko
c6255750e6 Reuse cookie parser constructor 2022-07-10 14:45:40 +03:00
Farook Al-Sammarraie
bf12e8fb58
Merge pull request #496 from CrowCpp/improve-doc
Added missing information and improved stylesheets for dark mode
2022-07-09 14:17:33 +03:00
The-EDev
4336df67b2 added missing information and improved stylesheets for dark mode 2022-07-09 04:31:42 +03:00
Farook Al-Sammarraie
db7f9d974e
Merge pull request #495 from aloussase/master
Add response constructor overload
2022-07-09 03:42:09 +03:00
Alexander Goussas
1bdcd317b7 add response constructor overload 2022-07-05 17:14:50 -05:00
Vladislav Oleshko
c9eda03a7a Update docs 2022-07-04 12:59:33 +03:00
Vladislav
36e59f07ec
Merge branch 'master' into sessions 2022-07-04 12:54:15 +03:00
Vladislav Oleshko
dbfc425916 Add locking test 2022-07-04 12:38:28 +03:00
Vladislav Oleshko
f505c152e1 Remove custom keys 2022-07-04 12:27:25 +03:00