Sergey Lyubka
38557aac7f
Add MG_ARCH_NEWLIB
2022-05-01 13:47:33 +01:00
Sergey Lyubka
f19eec7fae
Refactor multithreading API
2022-04-25 14:56:15 +01:00
Sergey Lyubka
93ff3e4d1f
Add message sequence test
2022-04-21 03:13:31 +01:00
Sergey Lyubka
1dfc748e87
Add message sequence test
2022-04-21 02:50:50 +01:00
Sergey Lyubka
e9fabdcc96
Handle #1523 - multiple WS messages
2022-04-13 11:14:57 +01:00
Sergey Lyubka
ebd2e89faa
Handle #1522 - Fix TLS buffering
2022-04-13 10:48:17 +01:00
Sergey Lyubka
ef44f90491
Fix #1520 - move state to struct mg_mgr
2022-04-12 14:14:55 +01:00
Sergey Lyubka
66376885e9
Fix #1521 - add mg_tou64()
2022-04-12 10:20:43 +01:00
James Hilliard
e4ab9a4130
Ensure MQTT_CMD_SUBACK is received before calling mg_mqtt_pub in tests
2022-04-07 19:11:51 -06:00
Sergey Lyubka
b20eded30e
Fix ESP32 example
2022-04-05 12:54:20 +01:00
James Hilliard
173c2ba338
Print mqtt buffer on error in tests
...
This test seems to fail randomly a lot, print the buffer on error to
make it easier to isolate issues.
2022-04-02 15:26:15 -06:00
Sergey Lyubka
3b5a9e2d4b
Add tests for mg_ws_wrap() and messages > 128 bytes
2022-03-22 12:46:55 +00:00
Sergey Lyubka
6b3d9d9baf
Add failed TLS host validation
2022-03-22 10:51:37 +00:00
Sergey Lyubka
436852d077
Enable TLS host validation in test_http_client()
2022-03-22 10:48:50 +00:00
Sergey Lyubka
1bc81df00e
Fix mg_dns_parse_name_depth()
2022-03-21 16:29:27 +00:00
Sergey Lyubka
ad4812218d
Handle #1497 - handshake format
2022-03-21 15:17:09 +00:00
Sergey Lyubka
1141ea7933
Add connection timeout
2022-03-20 18:50:01 +00:00
Sergey Lyubka
8c447a95dd
Fix #1483 - add valgrind target, do not use stdlib strcasecmp()
2022-03-18 08:52:54 +00:00
Sergey Lyubka
e99973d4b7
Introduce local address
2022-02-22 22:00:55 +00:00
Sergey Lyubka
393dad97e0
Get rid of ctype dependencies
2022-02-22 20:20:56 +00:00
Sergey Lyubka
63261ec0d5
Use mg_http_status()
2022-02-19 16:19:51 +00:00
Sergey Lyubka
507935d067
Tiny refactoring - move clearance of the c->is_resolving flag to the mg_connect_resolved()
2022-02-19 16:17:03 +00:00
Sergey Lyubka
a76ade9bb2
Update packed fs
2022-02-14 17:44:43 +00:00
Sergey Lyubka
969b84043c
Fix #1465 - rename LL_* constants, introduce MG_* log macros
2022-02-12 18:17:25 +00:00
Sergey Lyubka
4f802ece52
Enhance mg_snrpintf tests
2022-02-11 18:15:34 +00:00
Sergey Lyubka
313ac34e59
Handle minus in the fmt spec
2022-02-11 11:02:06 +00:00
Sergey Lyubka
54f75889fa
Using mg_snprintf() everywhere
2022-02-10 17:11:03 +00:00
Sergey Lyubka
f64c86d23f
Use mg_snprintf()
2022-02-10 11:56:55 +00:00
Sergey Lyubka
8cd4699dbc
Rename FS API functions to avoid conflicts
2022-02-08 13:36:04 +00:00
Sergey Lyubka
63b880e624
Handle #1459 - deprecate mg_globmatch, introduce mg_match()
2022-01-29 11:03:54 +00:00
Sergey Lyubka
544644e94b
Refactor - always enable LOG macro. Enhance iolog
2022-01-23 06:10:14 +00:00
Sergey Lyubka
59c4dfa33b
Fix 1452 - byte order issue in mg_check_ip_acl
2022-01-21 12:24:58 +00:00
Sergey Lyubka
226917e1cd
Use mg_str, not pointers, in mg_mqtt_{sub,pub}
2022-01-19 09:57:27 +00:00
Sergey Lyubka
fe813ee247
Add buf,len params to mg_mgr_wakeup()
2022-01-19 09:25:01 +00:00
Sergey Lyubka
56a7438114
Add fs arg to mg_file* and mg_http_upload API
2022-01-18 17:11:02 +00:00
Sergey Lyubka
c65c8fdaaa
Protect against the directory traversal in mg_upload()
2022-01-17 12:08:23 +00:00
Sergey Lyubka
9fd80fd136
Fix #1445 - send error to a resolving connection when DNS error happens
2022-01-14 08:50:01 +00:00
Sergey Lyubka
ff811f287a
Squash warnings
2022-01-05 13:57:30 +00:00
Sergey Lyubka
6a82cbee71
Send MG_EV_WRITE for UDP messages
2022-01-05 13:03:56 +00:00
Sergey Lyubka
62411d039e
Increase mqtt timeouts
2021-12-24 12:14:06 +00:00
Sergey Lyubka
26a97ec36c
Fix #1434 - set will QoS in CONNECT message correctly, and rename qos -> will_qos in struct mg_mqtt_opts
2021-12-23 11:00:18 +00:00
Sergey Lyubka
ae6767b1d2
Use int64_t for timers and mg_millis()
2021-12-21 21:50:18 +00:00
Sergey Lyubka
9731a51dae
Recognise :PORT as a valid URL
2021-11-29 13:57:33 +00:00
Sergey Lyubka
24e8c4d81a
Increase SNMP test timeout
2021-11-25 17:31:41 +00:00
Sergey Lyubka
86c70e5abb
Fix #1391 - make remove_double_dots less aggressive
2021-10-31 12:36:34 +00:00
Sergey Lyubka
054475ddbf
Fix #1376 - handle comma for unquoted header vars
2021-10-22 14:33:51 +01:00
Sergey Lyubka
65fd834654
Increate mqtt test timeout
2021-10-22 13:58:51 +01:00
Sergey Lyubka
90a131bd29
Include ipv6 wrapping brackets [] in the result of mg_url_host()
2021-09-21 08:10:27 +01:00
Sergey Lyubka
2139fbc4b7
Support multiple web roots
2021-09-20 12:24:44 +01:00
Sergey Lyubka
a7afea0963
Handle ipv4-mapped addresses
2021-09-18 19:38:59 +01:00
Sergey Lyubka
894a168833
Get rid of fs->realpath
2021-09-15 07:43:48 +01:00
Sergey Lyubka
477e48bf54
mg_iobuf_append -> mg_iobuf_add
2021-08-28 08:08:54 +01:00
Sergey Lyubka
bd64043377
mg_comma -> mg_commalist
2021-08-28 06:54:56 +01:00
Sergey Lyubka
714b7a8145
Handle WS fragmentation
2021-08-27 10:25:24 +01:00
Sergey Lyubka
fc9c454518
Add mg_check_ip_acl()
2021-08-25 07:59:31 +01:00
Sergey Lyubka
1c456fc2df
mg_next_comma_entry -> mg_comma
2021-08-23 16:54:58 +01:00
Sergey Lyubka
9b37ac384f
Merge pull request #1341 from lnksz/bugfix-1340-http_chunked
...
Fix #1340 : Long HTTP Chunks
2021-08-23 14:50:39 +01:00
Kristof Havasi
f6f0e49de4
Add failing test for HTTP chunk
...
This test would have caught #1340 : handling chunks longer than 15 chars
2021-08-23 08:19:46 +02:00
Sergey Lyubka
fd5eb2d3f9
Refactor mg_mkpipe()
2021-08-11 19:17:04 +01:00
Sergey Lyubka
8b770d2a0d
Fix #1334 - typo in mg_call(..MG_EV_WS_OPEN) call
2021-08-11 04:52:39 +01:00
Sergey Lyubka
11c07470bb
Refactor UDP handling
2021-08-07 22:55:13 +01:00
Sergey Lyubka
b7ce8213d7
Better multithreading support: remove mg_socketpair, add mg_mkpipe() and mg_rmpipe()
2021-08-07 17:22:47 +01:00
Sergey Lyubka
c2c6ff11ed
Fix #1329 - send MG_EV_WS_OPEN for server connections
2021-08-04 11:38:32 +01:00
Sergey Lyubka
9b18a6350a
Make ws_upgrade() respond with error if request is not and upgrade
2021-08-03 23:37:50 +01:00
Sergey Lyubka
3ea4f1fda8
Merge pull request #1324 from ignacionr/fix/issue-1323
...
allow for in-url colon, when port is not specified
2021-07-31 22:30:04 +01:00
Ignacio Rodriguez
e52a6184c4
test and fix
2021-07-30 12:34:55 -05:00
Sergey Lyubka
b40b1232cc
Enhance packed fs serving
2021-07-30 17:41:23 +01:00
Sergey Lyubka
3a46055e52
Better packed test
2021-07-30 13:19:20 +01:00
Sergey Lyubka
c2176f969b
Implement FS virtualization
2021-07-29 14:21:20 +01:00
Sergey Lyubka
9346122c29
Add FS API layer
2021-07-28 21:11:07 +01:00
Sergey Lyubka
55d102e450
Enable mg_fopen_packed in newlib
2021-07-27 09:50:11 +01:00
Sergey Lyubka
bdb747f9de
Fix mg_prefix test
2021-07-26 09:15:17 +01:00
Sergey Lyubka
299075c930
Add test for fopen_packed()
2021-07-26 09:05:34 +01:00
Sergey Lyubka
d6dbf831f7
Remove mg_stat
2021-07-24 10:35:48 +01:00
Sergey Lyubka
32406b678b
Increase sntp test timeout
2021-07-22 23:03:20 +01:00
Sergey Lyubka
a771d6a19d
Add unicode filename
2021-07-22 20:16:50 +01:00
Sergey Lyubka
0d5d7bb26f
Keep directory listing compile-time option
2021-07-21 11:05:27 +01:00
Sergey Lyubka
8fc94e12af
Add enable_dirlist to mg_http_serve_opts
2021-07-20 17:22:41 +01:00
Sergey Lyubka
655f9a9f79
Add Content-Type header to the SSI files
2021-07-20 11:33:38 +01:00
Sergey Lyubka
5e466f9037
Fix #1294 - add more common mime types
2021-07-13 19:24:46 +01:00
cpq
3deafaea7f
Extend mg_mqtt_{pub,sub} by adding qos and retain
2021-06-10 19:27:19 +01:00
cpq
886a29d659
Fix #1292 - allow requests with missing protocol version, responses with no reason fields
2021-05-29 10:07:05 +01:00
cpq
736b8ad7b7
Fix #1285 - __builtin___snprintf_chk warning. Tighten test flags and refactor the code to squash all warnings
2021-05-28 18:30:42 +01:00
cpq
79aad7fabf
Put Range support back
2021-04-29 11:00:57 +01:00
cpq
e9d122f231
Stricter checks for mg_url_*()
2021-03-24 15:49:35 +00:00
cpq
912dd518bf
Tests for mg_to64()
2021-03-21 16:18:44 +00:00
cpq
4dbb2da78f
Add form-upload example
2021-03-17 13:28:36 +00:00
cpq
cd36708b6d
Fix tests
2021-03-17 07:46:39 +00:00
cpq
5bd22cb5e4
Add mg_http_next_multipart()
2021-03-17 07:43:29 +00:00
cpq
4528cc28ef
Add sizep param to mg_file_read()
2021-03-15 09:16:34 +00:00
cpq
6366c832b0
Add struct mg_http_serve_opts::extra_headers
2021-03-10 07:56:14 +00:00
cpq
e84ea91a4a
Process chunked body before sending MG_EV_HTTP_MSG
2021-03-09 08:21:29 +00:00
cpq
2dcb10ef36
Less verbose test
2021-03-08 15:45:09 +00:00
cpq
1b5cc341a5
Add streaming client support, MG_EV_HTTP_CHUNK
2021-03-08 15:41:16 +00:00
cpq
602c5c0866
Refactor mg_url_encode
2021-02-15 14:42:55 +00:00
cpq
d5a1d5a5e8
Stricter realpath checks
2021-02-11 15:03:22 +00:00
cpq
0a9303bb07
Stricter mg_http_parse()
2021-02-09 21:16:33 +00:00
cpq
6827972f71
Fix #1210 - on win32, open upload file in binary mode
2021-02-02 08:43:56 +00:00
cpq
d327ee9834
Improve SNI
2021-01-30 13:03:11 +00:00
cpq
5118355732
Use 64bit file ops even on 32bit systems
2021-01-26 17:43:31 +00:00
cpq
3c851bcfc3
mg_file_write -> mg_file_printf
2021-01-26 16:30:44 +00:00
cpq
9eabf3fa81
URL decoding URI
2021-01-21 17:14:08 +00:00
cpq
89beadd2ce
Squash warning in unit test
2021-01-21 10:24:49 +00:00
cpq
6ecb6c1500
Fix DNS timeout, add unit test
2021-01-21 10:00:18 +00:00
cpq
ae6fd6aa35
Add extra headers param to mg_ws_upgrade()
2021-01-16 22:48:43 +00:00
cpq
c7e09bd7b4
Add SSI include file=, include virtual=
2021-01-02 17:57:51 +00:00
cpq
86824795a0
Pass opts structure to mg_http_serve_dir()
2021-01-02 12:30:09 +00:00
cpq
749326c83a
Add more mg_http_parse unit tests
2020-12-24 14:33:23 +00:00
cpq
e0a1feafe0
Fix localhost resolution
2020-12-23 10:15:09 +00:00
cpq
c3aae185df
Add ipv6 server test
2020-12-22 10:16:31 +00:00
cpq
2e87783246
Add IPv6 client test
2020-12-22 09:44:59 +00:00
cpq
b93456f512
Do not create socket until resolved
2020-12-21 12:26:44 +00:00
cpq
1052ee0766
Fix openssl build, and add openssl test
2020-12-20 21:45:58 +00:00
cpq
29534218d7
IPv6 related refactoring
2020-12-20 16:55:33 +00:00
cpq
82a378e519
Add extra param to http_reply()
2020-12-17 22:47:55 +00:00
cpq
29d31ba919
More boundary checks for mg_dns_parse()
2020-12-17 19:14:17 +00:00
cpq
f176e1ae59
Handle more mime types
2020-12-15 11:58:30 +00:00
cpq
348c579521
Add dns test case
2020-12-14 09:31:23 +00:00
cpq
09beadb98a
Fix c++ fuzzer build
2020-12-13 16:56:30 +00:00
cpq
c5a4a1c6f2
Remove debug leftover
2020-12-13 00:37:04 +00:00
cpq
88ada54045
More tests
2020-12-12 20:38:09 +00:00
cpq
f3f397f31e
Add MQTT client example
2020-12-12 10:03:19 +00:00
cpq
d806ed5d5f
Better coverage
2020-12-11 22:58:50 +00:00
cpq
90686ee5c9
Add ws examples
2020-12-11 17:35:58 +00:00
cpq
85c5577955
mg_dns_parse_name() recursion protection
2020-12-11 14:02:52 +00:00
cpq
30d4a1ad0f
Fix mg_sntp_parse()
2020-12-11 13:16:51 +00:00
cpq
1b551741b8
Fix mg_url_decode fuzz
2020-12-11 09:35:50 +00:00
cpq
cf62702f08
Switch to hivemq
2020-12-10 16:36:24 +00:00
cpq
7ea3293aba
More tests
2020-12-07 08:54:58 +00:00
cpq
cb7743fa39
Move tests -> test
2020-12-06 23:19:56 +00:00
cpq
f2fba1d200
7.0 refactor
2020-12-05 11:26:32 +00:00
Deomid Ryabkov
be64f81eee
Add mg_next_query_string_entry_n() and mg_url_decode_n()
...
Move to mg_util.h so encode and decode are next ot each other.
Pull out mg_next_list_entry_n() for advanced use cases.
Add unit tests.
2020-10-24 22:53:50 +01:00
Deomid Ryabkov
b0a1cd7b0d
Sync src with amalgamated versions
...
Now src contains exactly what's embedded in mongoose.c and .h, nothing more.
Added `tools/amalgam.sh` to aamlgamate both files at once.
There are no functional changes to mongoose.c, .h in this PR, only slight filename changes.
2020-07-08 02:08:49 +01:00
Sergey Lyubka
f778d22eac
Make it possible to override default FS update algorithm
...
PUBLISHED_FROM=774a111548da97bd9d195e177b5fb66b0fd66135
2020-06-11 18:27:48 +01:00
Sergey Lyubka
3aa76dcaec
Subst CREDPARAMS
...
PUBLISHED_FROM=545e8dff4ea0bef061c893252c613e3429f56184
2020-06-11 18:27:46 +01:00
Deomid "rojer" Ryabkov
95fcb261eb
Fix processing of keep-alive requests when chunks are consumed
...
PUBLISHED_FROM=136ce2ed4f143d7ee246e5fd1078c431e205bb3a
2020-05-22 23:07:38 +00:00
Deomid Ryabkov
10b11b03a8
Add mg_dns_encode_name_s for non-NUL terminated strings
...
PUBLISHED_FROM=012e2939021d1b275a39632fd2982891d2c98c4e
2019-12-29 19:33:41 +00:00
Deomid Ryabkov
e5910da300
Deliver EV_CLOSE to the last endpoint handler
...
CL: mg: Deliver EV_CLOSE to the last endpoint handler
PUBLISHED_FROM=02ee2c6627ed9ee1d35022244f71dfe1877ce2c0
2019-03-19 13:15:41 +00:00
Sergey Lyubka
23533b83a4
Allow NULL handler for mg_bind and mg_connect
...
CL: Allow NULL handler for mg_bind and mg_connect
PUBLISHED_FROM=4963d5c022c2c57dd03101d9c7e72ca910c3bb61
2019-03-06 12:33:24 +00:00
Deomid Ryabkov
1e9fabe1ca
Fix handling of WS handshake error response
...
Check response code, make sure it's 101.
Pass http_message to the client to keep it appraised.
This represents a slight change in the API -
in case of an error MG_EV_WEBSOCKET_HANDSHAKE_DONE will now be delivered where previosuly connection would just hang.
Clients that do not examine the argument may for a moment think handshake has succeeded but in fact connection will be closed immediately.
CL: mg: Fix handling of WS handshake error response
PUBLISHED_FROM=645a43d9e5bee216e54411f85827c9b974e9a7d1
2019-02-14 21:19:34 +00:00
Deomid Ryabkov
86ffa3a3ea
Properly support MQTT wildcards when matching topics
...
CL: mg: Properly support MQTT wildcards when matching topics
PUBLISHED_FROM=aa60a71d488f4b56dff0951886c8a9a4066fd4f2
2019-01-22 12:19:04 +00:00
Бобби
c431904b56
Send extra options with OPTIONS
...
CL: Send extra options with OPTIONS. Integrate https://github.com/cesanta/mongoose/pull/657
PUBLISHED_FROM=6ee609a92febd8d908f7713f94fb73657443a09a
2019-01-16 11:33:57 +00:00
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