Vladislav Oleshko
e60714c0b2
Separate middleware for handlers
2022-02-01 22:49:41 +03:00
Vien Huynh
9af906dc21
fixed JSON outputting NaN and infinite values
2022-01-30 23:43:30 -05:00
Farook Al-Sammarraie
9689688193
Merge branch 'master' into json-crash
2022-01-29 11:39:10 +03:00
Thomas Neumann
3569c93984
defend against excessive recursion in json::load
...
Passing a deeply nested JSON structure to json::load leads to a crash
due to stack overflow. We handle this now gracefully by limiting the
maximum nesting depth to 10,000.
Test case:
https://github.com/nst/JSONTestSuite/blob/master/test_parsing/n_structure_100000_opening_arrays.json
2022-01-25 08:48:36 +01:00
Thomas Neumann
2a77083524
fix const correctness in template_t
...
Without locking we can safely share only const objects between threads.
crow::mustache::template_t will typically be loaded once and then
reused many times across threads. Unfortunately the render() method
was not marked as const, even though it is const is practice. This commit
adds the missing const annotations to the methods involved.
2022-01-24 20:41:29 +01:00
Thomas Neumann
74e5fa8c87
improve sanitize_filename
...
The old implementation allocated a new string for every invocation, and
repeatedly scanned the string for occurences of the various Windows device
names. This commits resizes the original string instead if needed, and
detects all devices with a single pass.
2022-01-24 08:08:20 +01:00
Thomas Neumann
15085a9f95
avoid memory allocation in base64decode
...
Every single call to base64decode allocates a mapping table for all
base64 characters. This is quite wasteful, as the map is in fact static.
We could use a static variable here, but that would have unpleasant consequences
if we ever encounter input with non-valid base64 characters (which
implicitly modifies the map).
The number of character ranges for base64 is quite low (3, plus 4 exceptions),
thus we can simply check that explicitly in code instead of using a dynamic hash table.
2022-01-24 07:24:34 +01:00
The-EDev
e688cbd18e
Fixed another vulnerability in mustache file loading
...
and made the file sanitizer a copy-less function
2022-01-11 21:48:51 +03:00
The-EDev
0a16021442
Fix vulnrabilities in mustache and static
2022-01-11 20:27:41 +03:00
The-EDev
7aee13eee9
Changed the way concurrency is used
...
(it actually reflects the thread count properly)
2021-12-23 05:39:39 +03:00
The-EDev
77758e6241
Have concurrency
represent the actual number threads used
2021-12-20 11:04:55 +03:00
Farook Al-Sammarraie
fa77468a88
Formatting
2021-12-17 09:45:50 +03:00
Farook Al-Sammarraie
0ef48e82bb
Fixed scoping issue
...
introduced by initializing `execute_result`
2021-12-17 09:30:58 +03:00
Farook Al-Sammarraie
790e34cea8
Merge branch 'master' into mustache_lambdas
2021-12-17 09:08:24 +03:00
Farook Al-Sammarraie
cca1d54ce5
took repeated code out of the if else statement
2021-12-17 09:07:46 +03:00
Farook Al-Sammarraie
ddc1f18a1e
Merge branch 'master' into issue-302
2021-12-17 08:11:57 +03:00
Mosolov Sergey
d59cda5677
Fixes issue 302
...
https://github.com/CrowCpp/Crow/issues/302
Escape only the invisible characters from 0 to 31 inclusive
Motivation: do not escape UTF8 encoding bytes
2021-12-17 08:47:00 +04:00
Navid Jalali
8de7ec2123
Missing inline specifier in http_status_str function definition fixed
2021-12-16 19:41:03 +03:30
Farook Al-Sammarraie
97baca78da
Merge branch 'master' into parser_upgrade
2021-12-16 12:53:24 +03:00
The-EDev
f6fd7dc85d
formatting, missing newline fixed
2021-12-11 02:38:30 +03:00
The-EDev
228e61d150
Added mustache lambda expansion
2021-12-10 05:17:25 +03:00
The-EDev
a1a4169d92
merge branch master
2021-12-10 05:12:24 +03:00
The-EDev
14acb50030
fixed server_ name
2021-12-08 19:57:10 +03:00
The-EDev
13768371a9
Fixed problems with signals
2021-12-08 05:21:03 +03:00
The-EDev
e110cf4856
upgraded parser from 2.3.0 to 2.9.4
2021-12-07 22:21:33 +03:00
Maxime BELUGUET
a997c2b69f
Formatting
2021-12-07 14:15:11 +01:00
Maxime BELUGUET
dea78e02a0
Merge branch 'master' into master
2021-12-07 14:12:29 +01:00
Maxime BELUGUET
95083c1c9e
Improve pick_io_service_idx
2021-12-07 11:06:18 +01:00
Maxime BELUGUET
874b4d2da0
Apply suggestions from code review
...
Add debug verbosity
Co-authored-by: Farook Al-Sammarraie <farook@the-e-dev.com>
2021-12-07 10:58:40 +01:00
Farook Al-Sammarraie
63c8af74f7
Merge branch 'master' into gcc8-workaround
2021-12-04 14:34:58 +03:00
Florian Rupprecht
24d8a72a94
Update include/crow/app.h
...
Co-authored-by: Farook Al-Sammarraie <farook@the-e-dev.com>
2021-12-04 12:32:32 +01:00
Farook Al-Sammarraie
faa81ec4a5
Merge branch 'master' into auth_tutorial
2021-12-04 04:17:09 +03:00
Maxime BELUGUET
06332c46b8
Move queue length initialisation
2021-12-03 17:40:10 +01:00
Maxime BELUGUET
5825b55350
Move queue length decrementation, formatting
2021-12-03 17:33:40 +01:00
The-EDev
869bc53150
format
2021-12-03 07:05:10 +03:00
The-EDev
78c88bbbb7
Updated mime_types script:
...
Made script generated code format compliant
Added option to have the script download the source file directly
Added generation date
Also updated the header file to the latest nginx mime.types
2021-12-03 06:41:30 +03:00
The-EDev
94a2f942bc
changed comment style back to the original (doxygen did not work with the new style)
2021-12-03 06:39:23 +03:00
The-EDev
3c6c675a18
formatting
2021-12-02 20:38:04 +03:00
The-EDev
a0a5616d1c
Added missing buffer clears and removed no longer used method from response
2021-12-02 20:18:34 +03:00
The-EDev
bb48f95298
moved file sending to connection and added check_destroy to it
2021-12-02 15:36:52 +03:00
Maxime BELUGUET
31143b9f06
Fix atomic queue_length initialisation
2021-11-30 19:54:37 +01:00
Maxime BELUGUET
e6adb88d09
Merge branch 'master' of github.com:belugum/Crow
2021-11-30 19:22:34 +01:00
Maxime BELUGUET
47263de37f
Merge branch 'master' into master
2021-11-30 19:22:22 +01:00
Maxime BELUGUET
2607bf5791
Change += to ++, add queue length decrementation on error
2021-11-30 19:22:07 +01:00
Maxime BELUGUET
f8af9eb187
Formatting
2021-11-30 18:14:16 +01:00
Luca Schlecker
dc317ced93
logger: don't append std::endl to the message.
...
ILogHandler instances should take care of that.
Signed-off-by: Luca Schlecker <luca.schlecker@hotmail.com>
2021-11-29 23:59:41 +01:00
Maxime BELUGUET
0f6043f60d
Add basic load balancing #258 #182
2021-11-29 16:56:12 +01:00
Farook Al-Sammarraie
9c55181657
Merge branch 'master' into gcc8-workaround
2021-11-29 13:42:22 +03:00
Luca Schlecker
7e4f1494d2
improved lambda bracing by inlining only empty lambdas.
...
Signed-off-by: Luca Schlecker <luca.schlecker@hotmail.com>
2021-11-27 19:22:35 +01:00
Farook Al-Sammarraie
62b74a1c7a
Merge branch 'master' into gcc8-workaround
2021-11-27 18:14:44 +03:00
Farook Al-Sammarraie
ef396a7c88
Merge branch 'master' into clang-format
2021-11-27 18:14:24 +03:00
Florian Rupprecht
7ee13c4536
GCC 8 workaround compiler detection & error
2021-11-27 14:30:37 +01:00
The-EDev
03e59aa446
improved bracing rules, commented out clang-format 14 rule
2021-11-27 15:28:50 +03:00
Luca Schlecker
9e0bd8ddc7
logger: move prefix and timestamp logic inside the ILogHandler default
...
implementation.
Signed-off-by: Luca Schlecker <luca.schlecker@hotmail.com>
2021-11-26 12:18:03 +01:00
Florian Rupprecht
df50e3390d
Spelling
2021-11-25 15:16:34 +01:00
Florian Rupprecht
58e211355f
Constrain and warn GCC 8 bug
2021-11-25 15:14:45 +01:00
The-EDev
7f4b7c8ff9
created new rules, used bot to enforce rules in PRs
2021-11-25 14:45:38 +03:00
Florian Rupprecht
7a0576546c
GCC 8 workaround
2021-11-23 16:00:14 +01:00
The-EDev
65f8eb9e44
added macro to enforce ws spec and added 16/64 bit payload length unit tests for ws
2021-11-22 17:39:48 +03:00
The-EDev
5440489640
Added protocol to log URL when starting crow
2021-11-22 16:03:55 +03:00
Luca Schlecker
1fc5c566af
remove unused ssl code.
...
Seems like a leftover from when https was first implemented.
Signed-off-by: Luca Schlecker <luca.schlecker@hotmail.com>
2021-11-22 02:45:08 +01:00
Luca Schlecker
912bf47b6f
fix faulty https redirection.
...
Crow would redirect to https if ssl is enabled, even if no ssl is being actively used.
Signed-off-by: Luca Schlecker <luca.schlecker@hotmail.com>
2021-11-22 02:45:08 +01:00
Luca Schlecker
e5c7daccce
remove every occurance of #define CROW_MAIN
.
...
Signed-off-by: Luca Schlecker <luca.schlecker@hotmail.com>
2021-11-21 17:25:16 +01:00
Luca Schlecker
5823a5984e
remove the need for #define CROW_MAIN
.
...
This is achieved using the conts type qualifier as it gives internal linkage.
fixes #273
Signed-off-by: Luca Schlecker <luca.schlecker@hotmail.com>
2021-11-21 17:25:16 +01:00
Luca Schlecker
250c793c48
http_server: fix reordering warning.
...
The introduced `timeout_` variable was initialized in a different order than the member initializer list suggested.
Signed-off-by: Luca Schlecker <luca.schlecker@hotmail.com>
2021-11-21 15:45:46 +01:00
Luca Schlecker
118c992e0d
task_timer: align comment style with Crow's.
...
Signed-off-by: Luca Schlecker <luca.schlecker@hotmail.com>
2021-11-21 15:45:40 +01:00
Luca Schlecker
6458184e8f
task_timer: rename set_timeout
to schedule
.
...
Signed-off-by: Luca Schlecker <luca.schlecker@hotmail.com>
2021-11-20 17:03:58 +01:00
Luca Schlecker
de92d28f29
replace dumb_timer_queue
with new task_timer
.
...
fixes #264 , lays ground for #273 and #257 .
Signed-off-by: Luca Schlecker <luca.schlecker@hotmail.com>
2021-11-19 18:55:10 +01:00
Florian Rupprecht
5bb7fac016
Get app port
2021-11-14 13:04:19 +01:00
Farook Al-Sammarraie
2dc07aaa7e
Merge branch 'master' into feature/cpp20Support
2021-11-03 20:07:59 +03:00
Farook Al-Sammarraie
2e7d5f30f8
Merge branch 'master' into http09_get_only
2021-11-02 21:15:05 +03:00
Farook Al-Sammarraie
05a4b82bd5
Merge branch 'master' into http09_get_only
2021-11-02 00:00:03 +03:00
The-EDev
85e85c3e64
allow remote IP to be accessed from websocket object
2021-11-01 23:57:21 +03:00
The-EDev
ed8d1ebaaa
Added checks for GET on HTTP/0.9 and any other errors
...
Earlier behavior only checked whether every byte was parsed, which isn't
ideal
Signed-off-by: The-EDev <farook@the-e-dev.com>
2021-11-01 12:02:25 +03:00
Leon De Andrade
06e665ec93
Cpp17 flag for msvc
2021-10-31 20:25:11 +01:00
Leon De Andrade
aa5211d76d
Use invoke_result for C++20
2021-10-31 19:19:44 +01:00
The-EDev
576f90a0e4
Added Base64 decoder function and Base 64 unit tests
2021-10-31 02:50:19 +03:00
Farook
eefe8f62bf
made it so that workarounds would only run if the user is on an apple machine
2021-10-22 14:27:10 +03:00
Luca Schlecker
7f7eac95a6
Merge branch 'master' into fix_macos
2021-10-14 10:36:03 +02:00
The-EDev
20c7720f72
Made crow's streaming threshold changeable through app.stream_threshold (I also added a getter for it to avoid sending it to the server then the connection)
2021-10-12 15:35:08 +03:00
The-EDev
efd55597f0
changed json and app code (relating to blueprints and initializer list)
...
also snuck in some guide updates
2021-10-10 14:42:36 +03:00
Farook Al-Sammarraie
72e33c743e
Merge branch 'master' into revamped_setup
2021-10-02 17:29:07 +03:00
The-EDev
ce1cc7b2b2
replaced http_connection.h integers with enum values
2021-10-02 17:11:19 +03:00
Farook Al-Sammarraie
de9e860771
Merge branch 'master' into revamped_setup
2021-10-01 11:34:55 +03:00
The-EDev
a031fb6c8e
added status codes enum
2021-09-30 20:38:23 +03:00
Zhavok
1081d25a0f
some status codes removed
2021-09-30 11:46:00 +02:00
Zhavok
db6ab441b4
missing http status codes added
2021-09-29 19:30:59 +02:00
The-EDev
b3638a3b83
Merge remote-tracking branch 'refs/remotes/origin/revamped_setup'
...
Conflicts:
.drone.yml
2021-09-27 19:04:01 +03:00
Luca Schlecker
3c9e5d1e1d
enable compression after first use of 'use_compression'.
2021-08-31 18:14:05 +02:00
Luca Schlecker
21c872e771
Revert "defining CROW_ENABLE_SSL disables non SSL code"
...
This reverts commit 10f3238ffc
.
2021-08-31 18:14:05 +02:00
hg333
9546058604
added another constructor with status-code
2021-08-29 16:36:13 +05:30
hg333
b0e84a8c80
added custom type support
2021-08-29 12:19:18 +05:30
Luca Schlecker
823e891572
fix routing on windows.
2021-08-24 17:06:21 +02:00
Farook Al-Sammarraie
ddca7b5924
Merge branch 'master' into catchall_codes
2021-08-21 14:41:14 +03:00
The-EDev
db08b5a11d
further simplified BP search code & made error_message const
2021-08-21 14:35:59 +03:00
The-EDev
10f3238ffc
defining CROW_ENABLE_SSL disables non SSL code
2021-08-21 05:19:51 +03:00
The-EDev
576690bf14
Made catchall work with 404 or 405 errors
...
snuck in a fix for release.py where version name wouldn't change
also snuck in slight improvement in finding blueprint (removed extra if statement)
2021-08-21 04:49:17 +03:00
The-EDev
f5338260bb
several changes:
...
added json list in a similar fashion to json object
renamed object_type to object
updated readme, index.html, and json.md to include objects and lists
updated examples to be slightly cleaner and include lists
replaced instances of json object (std::map and such) with the short version (object)
accurate floating point number dumping (`6.0` instead of `6`) while taking 1/30th of the time (29 microseconds saved)
added json list testing
snuck in utf-8 middleware warning fix
snuck in twitter card style for crowcpp.org site (makes social media cards look way better with a large image)
2021-08-20 03:57:21 +03:00
Farook Al-Sammarraie
84878ae4b1
Merge branch 'master' into ssl_test
2021-08-18 13:13:29 +03:00
Lucas David
49b020b9aa
Merge branch 'master' into feature-#189
2021-08-16 14:51:14 +02:00