Deomid Ryabkov
3130e59244
Stop reading if connection is closing
...
CL: none
PUBLISHED_FROM=3b74ca02e2960bbbf130f6d95aef679f2917e824
2018-11-02 18:12:34 +00:00
Deomid Ryabkov
05c687e251
Fix handling of keepalive HTTP requests/responses
...
Clean the HTTP connection state when ia request/response has been fully
buffered and handler invoked.
Fixes https://github.com/cesanta/mongoose/issues/971
CL: mg: Fix handling of keepalive HTTP requests/responses
PUBLISHED_FROM=70c854aa306aacb9161f6ee48841f38dc0312e6b
2018-09-27 12:51:18 +00:00
Deomid Ryabkov
1c8449cea6
Fix pipelining issue with multipart upload
...
Do not clear buffer at the end of multipart request to allow following request to proceed.
Closes https://github.com/cesanta/mongoose/pull/940
CL: mg: Fix pipelining issue with multipart upload
PUBLISHED_FROM=cc7d38b126eaa863553ee4e124cfafcd72030fcf
2018-06-26 12:05:04 +00:00
Deomid Ryabkov
339bbee0df
mg_file_upload_handler: Support multiple files
...
curl -F file1 -F file2 ...
Add a unit test and fix a minor memory leak when returning an error.
CL: mg_file_upload_handler: Support multiple files
PUBLISHED_FROM=5c4bf2be676346fb782e80f50f79df6a6721ac88
2018-06-20 13:35:31 +00:00
Deomid Ryabkov
e89be2e944
Add mg_url_encode_opt()
...
CL: Add `mg_url_encode_opt()` - a parametrized version of `mg_url_encode()`
PUBLISHED_FROM=17fa57a7a5325b51b6e3aef3855eac4e82c35782
2018-04-10 11:04:31 +00:00
Deomid Ryabkov
c2fbff6d0e
Fix mg_http_parse_header
...
Per standard, cookies are delimited by `; `.
CL: Fix mg_http_parse_header: treat ";" as a delimiter.
PUBLISHED_FROM=039243c30f5fabf4a4700a43506f841b3268306a
2018-04-10 10:19:36 +00:00
Deomid Ryabkov
3e33e57707
Mongoose net_if and ssl_if refactoring
...
A major cleanup, disentangling net_if and ssl_if.
Pulled a lot of common logic into the core and reduced size of net_if implementations.
CL: Mongoose net_if and ssl_if refactoring
PUBLISHED_FROM=29bd4dcb264a1fd96b3dd164e2d880e1c2c0921e
2018-03-30 23:19:49 +00:00
Serge A. Zaitsev
d16dbc197f
mongoose: fix http pipeline
...
mongoose: fix formatting
mongoose: fix formatting
mongoose: remove debugging messages
PUBLISHED_FROM=1194e018001cc5f2b598096593d7aac4ec8dc04d
2018-03-20 16:41:56 +00:00
Serge A. Zaitsev
127f27e375
mongoose: unit test for http get pipeline
...
PUBLISHED_FROM=00e8634913232eb2e50a0d739f85e81706dbc400
2018-03-17 16:35:04 +00:00
Deomid Ryabkov
a3c4a48ef7
Make sure test assertions are evaluated once
...
E.g. if `ASSERT_EQ(myfunc(), 123)` fails, `myfunc()` would be invoked again to print the actual value.
This can cause confusion sometimes.
To avoid this, we cast arguments to double, which is wide enough for most cases and we provide a variant for 64 bit value types for when it's not.
We also perform a check and fail if argument to the check results in loss of precision.
CL: none
PUBLISHED_FROM=a14551289d92e8a5dead21d16471ebddebe938a8
2018-02-10 12:19:40 +00:00
Dmitry Frank
b9b20c6494
Implement mg_http_parse_header2()
...
Which is a replacement of (deprecated) `mg_http_parse_header`, but,
similarly to `asprintf`, allocates a new buffer if the client-provided
one is not large enough.
Also use it throughout mongoose code, and thus some header-related
limitations are removed; in particular,
https://github.com/cesanta/mongoose/issues/813 is fixed.
CL: Mongoose Web Server: Deprecate `mg_http_parse_header()` and implement `mg_http_parse_header2()` instead, which allocates a new buffer if the client-provided one is not large enough (similarly to `asprintf`).
CL: Mongoose Web Server: Fix limitations of header value lengths, e.g. when parsing authentication headers such as nonce, etc.
PUBLISHED_FROM=c75b1bbbbdb294ea85075ce69b1368f115fdd1ef
2018-02-07 23:04:29 +00:00
Deomid Ryabkov
50ecc30b4d
Commonize unit test main()
...
CL: none
PUBLISHED_FROM=ee76407d89f3fcbe3da23810117a374d06af0a25
2018-02-07 16:19:32 +00:00
Dmitry Frank
7bf5144e62
Make tests work on public repo as well
...
PUBLISHED_FROM=78acb18d597b6f47f31da13087fa6685f21ce445
2018-02-05 14:35:37 +00:00
Dmitry Frank
aba60dadec
Add mg_ prefix to mongoose sources
...
CL: none
PUBLISHED_FROM=d6ebe5fa88c61ae3b8569897d9b09d54610bec73
2018-02-03 01:20:47 +02:00
Dmitry Frank
f29457e967
Remove tunneling from mongoose
...
CL: Mongoose Web Server: Remove tunneling functionality which was used by nobody
PUBLISHED_FROM=38b9e8ae7b0a5a1dbba5cff4074843dc681267d3
2018-02-02 21:50:13 +00:00
Dmitry Frank
8742fac5d8
Publish mongoose src and tests
...
CL: Mongoose Web Server: Publish sources and tests
Resolves https://github.com/cesanta/mongoose/issues/745
PUBLISHED_FROM=7ecd7a3c518cfa614a6ba0838678dcb91b75a8c0
2018-02-02 15:49:55 +00:00
Marko Mikulicic
8927c9d22b
Merge dev branch code named Fossa as next stable Mongoose
2015-09-08 14:34:30 +02:00
Sergey Lyubka
14d6f71f82
Fix unit test
2015-05-20 10:50:32 +01:00
Sergey Lyubka
bf7a115bf2
Fix url rewrites
2015-05-11 09:13:46 +01:00
Sergey Lyubka
2d1d2e6534
SIZE_MAX is not defined on MSVC6, use (size_t) ~0
2015-03-17 17:00:59 +00:00
Dinis Rosário
3bd79c7cd5
Fix remove_double_dots_and_double_slashes removing all the dots leading http server to serve wrong URI
...
If the uri is something like '/js/...jquery.js', remove_double_dots_and_double_slashes will remove the 3 dots and the http server will serves the /js/jquery.js file.
remove_double_dots_and_double_slashes should check if a dot or double dots is followed by a slash (or backslash) and only remove this to avoid disclosure attack.
2015-03-17 16:04:59 +01:00
Sergey Lyubka
c52e0744cb
Squashed warnings after size_t change
2015-03-17 13:18:15 +00:00
Sergey Lyubka
e4ad3010be
Fix #416
2014-12-30 03:56:29 +00:00
Sergey Lyubka
fac0e9b0ac
Moved unit test to dedicated dir
2014-09-09 18:23:48 +01:00
Sergey Lyubka
5a3b1123f6
tests moved under build
2013-12-07 17:47:14 +00:00
Sergey Lyubka
af7efd980c
Adjusting unit test for core
2013-12-06 22:14:55 +00:00
Sergey Lyubka
37751a2875
directory ops moved to directory.c
2013-11-23 10:24:25 +00:00
Sergey Lyubka
5153eebc9b
mg_read() does not block on content_len=0. mg_read() reads until socket is closed if content-length is not provided
2013-10-01 17:47:32 +01:00
Sergey Lyubka
70154f6c23
Moved mod_lua.c to src/lua.c
2013-10-01 15:16:09 +01:00
Sergey Lyubka
ecbf79135f
Refactored API, returned back to event-based handlers. Upload and Websocket API simplified
2013-09-28 11:00:54 +01:00
Sergey Lyubka
98214ce1a4
Removed init_lua() and open_file() callbacks
2013-09-26 09:35:07 +01:00
Sergey Lyubka
b461edabd9
Squashed warnings
2013-09-07 18:46:50 +01:00
Sergey Lyubka
d8596fae27
Fixed unit test
2013-08-19 19:10:17 +01:00
Sergey Lyubka
2055d41a9f
Corrected misplaced brackets in parse_http_message()
2013-08-14 10:55:36 +01:00
Sergey Lyubka
743f48b8e0
Added mg_exec_lua_script, mg_prepare_lua_environment -> prepare_lua_environment
2013-08-08 13:11:05 +01:00
Sergey Lyubka
e53d05637a
Binding to IPv6 addresses
2013-07-28 12:15:16 +01:00
Sergey Lyubka
62d66201c9
make match_prefix() case-insensitive
2013-07-25 07:07:25 +01:00
Sergey Lyubka
c80a88a407
Added test for uploading 2 files
2013-07-23 08:17:00 +01:00
Sergey Lyubka
bc40aa5442
fixed strtoll() for win32: using _atoi64
2013-07-14 12:49:24 +01:00
Sergey Lyubka
e7c34c26cb
mg_read() with no Content-Length would read until socket is closed
2013-07-01 08:45:07 +01:00
Sergey Lyubka
6e59ad8a0d
Fix for prepare_lua_environment
2013-05-19 01:25:10 +01:00
Sergey Lyubka
2e232b3304
Lua functionality change: print renamed to mg.write, read renamed to mg.read. Expanded user manual, fixed example pages.
2013-05-15 17:42:34 +01:00
Sergey Lyubka
e579355b01
url_decode -> mg_url_decode
2013-05-08 11:40:13 +01:00
Sergey Lyubka
4120b9bcc0
mg_get_cookie() signature change
2013-04-11 12:49:41 -07:00
Sergey Lyubka
fbf1ccee45
Fix out-of-bounds acces in url_decode()
2013-02-16 14:31:37 +00:00
Sergey Lyubka
0bd43bcae3
Using mg_strcasestr() instead of strstr()
2013-02-16 14:17:38 +00:00
Sergey Lyubka
b809665cad
Squashed warning
2013-02-16 12:54:16 +00:00
Sergey Lyubka
9baf2d4ba4
Using keep alive in unit test
2013-02-08 08:19:01 +00:00
Sergey Lyubka
cde25a8b82
Removed embedded test
2013-02-03 19:56:24 +00:00
Sergey Lyubka
b80157b7ea
Setting user data pointer properly
2013-02-03 19:15:27 +00:00
Sergey Lyubka
ee55d38b55
API CHANGE: using struct mg_callbacks
2013-02-01 16:48:30 +00:00
Sergey Lyubka
d73aa1ad09
Added skeleton for regex checks
2013-01-31 18:06:05 +00:00
Sergey Lyubka
ec7d0b1abd
Added test_mg_upload()
2013-01-25 20:27:08 +00:00
Sergey Lyubka
75d9a6c844
Removed mg_connect() and mg_fetch(). Added mg_download()
2013-01-23 21:54:27 +00:00
Sergey Lyubka
9c4853471c
Added stub for test_mg_upload()
2013-01-22 09:08:00 +00:00
Sergey Lyubka
83fae879bf
Binding to 127.0.0.1 to prevent annoying popups on mac
2013-01-21 22:29:31 +00:00
Sergey Lyubka
05fa677382
Fixed unit test to accomodate mg_get_var() API change
2012-12-24 10:43:15 +00:00
Sergey Lyubka
1ef31461bc
Added test_skip_quoted()
2012-12-07 01:50:12 +00:00
Sergey Lyubka
080cb2dd4b
Changed signature of url_decode(): signalling on destination buffer overflow. mg_get_var() now does not require extra space for variable buffer
2012-11-14 09:26:02 -08:00
Sergey Lyubka
038f8823f1
Added test to mg_stat(). Fixed set_gpass()
2012-10-05 08:58:13 +01:00
Sergey Lyubka
b597da34da
Pass user_data to the callback
2012-10-05 02:10:35 +01:00
Sergey Lyubka
557d1f4c49
Added MG_OPEN_FILE message
2012-09-29 18:56:41 +01:00
Sergey Lyubka
3ffdf5459a
API change: folded user_data into request_info, and introduced event-specific ev_data
2012-09-27 22:20:02 +01:00
Sergey Lyubka
8c1866a4af
Lua server pages support
2012-09-26 23:37:03 +01:00
Sergey Lyubka
dfc0f00478
Implement -T option, throttling functionality
2012-09-23 13:28:27 +01:00
Sergey Lyubka
ff0c2d3f91
Added unit test for mg_get_var
2012-09-22 12:22:30 +01:00
Sergey Lyubka
167338f216
Using slash, "/" as the universal directory separator throughout the code
2012-09-20 18:20:41 +01:00
Sergey Lyubka
98fb44f836
Refactored data buffering. Updated websocket example to have 2 message roundtrips.
2012-09-20 13:45:35 +01:00
Sergey Lyubka
f9873eb87a
Experimentl websocket support
2012-09-19 12:23:54 +01:00
Sergey Lyubka
05b2a04267
moved status_code, user_data, log_message out of struct mg_request_info
2012-09-17 19:38:19 +01:00
Sergey Lyubka
0e0091e1c0
Changing API: callback doesnt get mg_request_info pointer anymore, but it is possible to get it using mg_get_request_info()
2012-08-03 11:15:38 +01:00
Sergey Lyubka
df7da95cb6
Setting Host header in mg_fetch. Added test for fetching large file.
2012-07-29 17:12:44 +01:00
Sergey Lyubka
a9bb7d78ab
Fixed mg_fetch() by passing a buffer, placeholder for the reply headers
2012-07-29 10:15:37 +01:00
Sergey Lyubka
84e26ccddd
More tests for mg_fetch()
2012-07-29 08:33:00 +01:00
Sergey Lyubka
6c54370aa1
Added mg_connect(), mg_fetch() API functions. More tests added
2012-07-28 11:04:03 +01:00
Sergey Lyubka
da75a62a32
More tests
2012-07-27 06:24:11 +01:00
Sergey Lyubka
7d5eb279a7
Added unit test
2012-06-07 21:57:40 +01:00
Sergey Lyubka
2e3e1ba7cd
Uncommented unit test in test_should_keep_alive()
2012-06-06 06:48:03 +01:00
Sergey Lyubka
5071978267
Corrected should_keep_alive() per bel2s suggestions
2012-06-04 22:49:16 +01:00
Sergey Lyubka
d1806370bd
few more tests for match_prefix()
2012-03-04 14:45:01 +00:00
Sergey Lyubka
9d3af98a5e
Remove repeating backslashes only on Windows
2012-02-09 22:55:24 +00:00
valenok
8ea40bae4b
Introduced $ meta character in glob expressions
2012-01-26 03:21:51 +00:00
valenok
ed70793670
Options ssi_extensions, cgi_extensions became cgi_pattern, ssi_pattern
2012-01-24 09:30:01 +00:00
valenok
01c5ee0973
Added -w option
2012-01-23 22:03:36 +00:00