Commit Graph

736 Commits

Author SHA1 Message Date
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
af3a0f6af0 Add realpath() for Win32 2021-12-22 18:04:27 +00:00
Sergey Lyubka
ce6164ca20 Fail stat() if S_ISDIR is not defined 2021-12-22 18:04:16 +00:00
Sergey Lyubka
25a1a24890 Fallback to time(0) in mg_millis() 2021-12-21 22:04:03 +00:00
Sergey Lyubka
2126b49ab3
Merge pull request #1433 from ryuukk/patch-2
Remove debugging left over
2021-12-21 21:56:41 +00:00
Sergey Lyubka
ae6767b1d2 Use int64_t for timers and mg_millis() 2021-12-21 21:50:18 +00:00
ryuukk
133629dbee
Remove debugging left over 2021-12-21 21:28:22 +01:00
Sergey Lyubka
fb0a9bc7e3 Fix build 2021-12-21 18:16:12 +00:00
Sergey Lyubka
2a3492766f Remove mg_time() and mg_usleep() 2021-12-21 17:44:34 +00:00
Sergey Lyubka
2ec7e5653e Merge branch 'master' of github.com:cesanta/mongoose 2021-12-21 17:40:04 +00:00
Sergey Lyubka
30bfb245f5 Make mongoose more bare-metal Keil friendly. Declare settings after arch. Introduce MG_ENABLE_FILE 2021-12-21 17:39:55 +00:00
ryuukk
7f55fabfec
Closed WS connection is not an error for the logger 2021-12-21 01:34:48 +01:00
Sergey Lyubka
9d38e26b81 Add MG_HTTP_INDEX build var 2021-12-17 13:54:01 +00:00
Sergey Lyubka
4e75a0c81e 7.4 -> 7.5 2021-12-17 13:34:32 +00:00
Sergey Lyubka
d0a6c111cb Call MG_EV_ERROR with c->is_closing set 2021-12-15 11:31:42 +00:00
Sergey Lyubka
aa6d8b4662 Remove TLS custom_init() API 2021-12-15 11:04:43 +00:00
Sergey Lyubka
3f5fd89fd7 Pass more args to custom TLS init 2021-12-14 13:21:59 +00:00
Sergey Lyubka
f43a5a005c Introduce custom TLS init function 2021-12-14 13:04:11 +00:00
Sergey Lyubka
755bf3c412 Split TLS files and introduce MG_ENABLE_CUSTOM_TLS 2021-12-14 12:42:41 +00:00
Sergey Lyubka
84f3fb0ba5 Move EXTERN_C to util.h 2021-12-14 12:11:05 +00:00
Sergey Lyubka
5ca9062d45 Less verbose serve_dir 2021-12-07 15:23:02 +00:00
Sergey Lyubka
9731a51dae Recognise :PORT as a valid URL 2021-11-29 13:57:33 +00:00
Sergey Lyubka
81220fa590 Remove noisy debug 2021-11-26 16:23:06 +00:00
Sergey Lyubka
922e1ce529 Make captive portal work on Linux 2021-11-23 17:52:54 +00:00
Sergey Lyubka
90c67e4226 Reformatting for better readability 2021-11-06 11:29:56 +00:00
Sergey Lyubka
093cd6a6a3 Fix FD_CLOEXEC setting 2021-11-05 13:30:12 +00:00
Sergey Lyubka
05b44204d5 Set FD_CLOEXEC properly 2021-11-04 18:28:32 +00:00
Sergey Lyubka
a6efd0b335 Merge branch 'master' into dec 2021-11-02 22:43:59 +00:00
Sergey Lyubka
ba02937ec6 Squash warnings 2021-11-02 16:40:25 +00:00
Sergey Lyubka
3d78b14deb Fix #1396 - JS sorting code for dir listing 2021-11-02 16:01:06 +00:00
Sergey Lyubka
f558551d1d Fix #1395 - show decoded URI in dir listing 2021-11-02 15:11:56 +00:00
Sergey Lyubka
12fe66370f Fix #1393 - cleanup mime types 2021-11-01 20:31:45 +00:00
Sergey Lyubka
423aaa492c Fix #1394 - mg_mqtt_sub(). Add MG_EV_OPEN, too. 2021-11-01 16:20:00 +00:00
Sergey Lyubka
52be84f04e Add user and pass to struct mg_mqtt_opts 2021-10-31 12:48:32 +00:00
Sergey Lyubka
03d187b147 Fix #1375 - change event processing order 2021-10-31 12:40:56 +00:00
Sergey Lyubka
3329047579 More explicit check on hm->uri.len 2021-10-31 12:37:40 +00:00
Sergey Lyubka
86c70e5abb Fix #1391 - make remove_double_dots less aggressive 2021-10-31 12:36:34 +00:00
Sergey Lyubka
b17f4108ea Change MG_PATH_MAX for ESP8266 2021-10-30 19:34:53 +01:00
Sergey Lyubka
f1bfe0760f Optimise TLS read 2021-10-27 19:18:44 +01:00
Sergey Lyubka
6ac09966ba Fix #1374 - fix ESP32 build 2021-10-22 22:06:10 +01:00
Sergey Lyubka
af9a7617f5
Merge pull request #1381 from ptsolakos/master
Certificate revocation checking when using mbedtls
2021-10-22 20:30:47 +01:00
Sergey Lyubka
42c89732c8 Remove private.h 2021-10-22 19:41:26 +01:00
Sergey Lyubka
054475ddbf Fix #1376 - handle comma for unquoted header vars 2021-10-22 14:33:51 +01:00
Sergey Lyubka
126d556d6a
Merge pull request #1380 from jameshilliard/fix-time
util: Actually return uptime on OSX/Linux for mg_millis
2021-10-22 14:06:44 +01:00
Sergey Lyubka
529a302e77
Merge pull request #1379 from jameshilliard/fix-sntp
sntp: Don't set Leap Indicator in client messages.
2021-10-22 14:04:54 +01:00
Sergey Lyubka
90b22716ea
Merge branch 'master' into undef 2021-10-22 14:03:25 +01:00
Sergey Lyubka
fb90c504a6 Remove private.h 2021-10-22 14:00:31 +01:00
Sergey Lyubka
4fb49b011e
Merge pull request #1377 from jameshilliard/missing-prototypes
Make private functions static and add missing prototypes.
2021-10-22 13:16:06 +01:00
Sergey Lyubka
54590aaf26 Use UDP sendto() on win32 only 2021-10-22 09:14:18 +01:00
Sergey Lyubka
7c5e67b272 Fix #1382 - use sendto for UDP send 2021-10-22 08:56:45 +01:00
Sergey Lyubka
c62c8ea4dd Correct licensing URL 2021-10-20 10:04:49 +01:00
Panagiotis Tsolakos
383653d608 mbedtls CRL support
Certificate revocation checking when using mbedtls
2021-10-14 17:56:31 +02:00
James Hilliard
001dc3f33d util: Actually return uptime on OSX/Linux for mg_millis
The documentation for mg_millis indicates it will:
Return current uptime in milliseconds.

So we should use API's that actually return uptime.

Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
2021-10-13 17:06:18 -06:00
James Hilliard
37d45b3fbb sntp: Don't set Leap Indicator in client messages.
Per RFC4330:
This field is significant only in server messages

Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
2021-10-13 16:48:33 -06:00
James Hilliard
f72b8c6034 Fix some undefined macro warnings.
Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
2021-10-13 13:06:00 -06:00
James Hilliard
c11e5a9383 Make private functions static and add missing prototypes.
Fixes:
mongoose/mongoose.c:180:8: warning: no previous prototype for ‘mg_dns_parse_name’ [-Wmissing-prototypes]
  180 | size_t mg_dns_parse_name(const uint8_t *s, size_t n, size_t ofs, char *dst,
      |        ^~~~~~~~~~~~~~~~~
mongoose/mongoose.c:306:6: warning: no previous prototype for ‘mg_dns_send’ [-Wmissing-prototypes]
  306 | void mg_dns_send(struct mg_connection *c, const struct mg_str *name,
      |      ^~~~~~~~~~~
mongoose/mongoose.c:925:6: warning: no previous prototype for ‘mg_http_parse_headers’ [-Wmissing-prototypes]
  925 | void mg_http_parse_headers(const char *s, const char *end,
      |      ^~~~~~~~~~~~~~~~~~~~~
mongoose/mongoose.c:1125:7: warning: no previous prototype for ‘mg_http_etag’ [-Wmissing-prototypes]
 1125 | char *mg_http_etag(char *buf, size_t len, size_t size, time_t mtime) {
      |       ^~~~~~~~~~~~
mongoose/mongoose.c:2578:6: warning: no previous prototype for ‘mg_sha1_transform’ [-Wmissing-prototypes]
 2578 | void mg_sha1_transform(uint32_t state[5], const unsigned char buffer[64]) {
      |      ^~~~~~~~~~~~~~~~~
mongoose/mongoose.c:2976:8: warning: no previous prototype for ‘mg_open_listener’ [-Wmissing-prototypes]
 2976 | SOCKET mg_open_listener(const char *url, struct mg_addr *addr) {
      |        ^~~~~~~~~~~~~~~~

Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
2021-10-12 20:18:11 -06:00
Sergey Lyubka
3771f2c088 Merge branch 'master' of github.com:cesanta/mongoose 2021-10-04 19:47:34 +01:00
Sergey Lyubka
6d398bd5c7 Fix mg_random() for ESP32 2021-10-04 19:47:24 +01:00
Sergey Lyubka
693863a51e
Merge pull request #1366 from zudwalex/fix_rtos_lwip
Add missed include for FreeRTOS/LwIP arch
2021-10-02 22:45:08 +01:00
Sergey Lyubka
f08d280429 Version 7.4 2021-09-30 13:35:44 +01:00
Sergey Lyubka
6fbb749431 7.4 -> 7.5 2021-09-30 13:34:55 +01:00
Alex Alashkin
bc7178e5f7 Add missed include 2021-09-29 12:25:25 +03:00
Sergey Lyubka
ea85f93e37 Merge branch 'master' of github.com:cesanta/mongoose 2021-09-27 13:52:59 +01:00
Sergey Lyubka
46029c501a Fix #1359 - add conditional for MSVC, _DEBUG and strdup 2021-09-27 13:52:39 +01:00
Sergey Lyubka
9af6f4b02e
Merge pull request #1360 from zudwalex/azure_basics
Add AzureRTOS basic support
2021-09-27 08:39:15 +01:00
Alex Alashkin
d86ceecd8c Add AzureRTOS basic support 2021-09-26 10:25:44 +03:00
Sergey Lyubka
c490ff8ae7 Fix typo 2021-09-22 20:38:28 +01:00
Sergey Lyubka
f73ebbf689 Fix #1354 - report correct errno in mg_open_listener() 2021-09-22 18:52:42 +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
8652006aea Remove dead code 2021-09-20 12:26:09 +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
c7bd63ef53 Fix #1351 - squash warning 2021-09-17 11:07:20 +01:00
Sergey Lyubka
40b3382023 Enable WS data size check 2021-09-17 10:56:58 +01:00
Sergey Lyubka
409fdaec59 Rename posix_* -> p_* to avoid build conflict on linux 2021-09-16 11:16:10 +01:00
Sergey Lyubka
894a168833 Get rid of fs->realpath 2021-09-15 07:43:48 +01:00
Sergey Lyubka
df848973dc Fix unamalgamated target 2021-09-14 12:27:02 +01:00
Sergey Lyubka
f37e5ecc38 WS frame len sanity check 2021-09-14 10:26:03 +01:00
Sergey Lyubka
6316609a5f Show log level 2021-09-13 13:48:02 +01:00
Sergey Lyubka
acf58972f7 Fix posix_open() 2021-09-02 10:20:55 +01:00
Sergey Lyubka
5bf5516b29 struct iobuf doc 2021-08-30 13:06:45 +01:00
Sergey Lyubka
40b99e3751 Print openssl error on TLS error 2021-08-30 11:45:30 +01:00
Sergey Lyubka
28a56370d4 Fix zeromem() call in mg_iobuf_del() 2021-08-30 11:39:19 +01:00
Sergey Lyubka
e3589577ed Update OpenSSL handshake error codepath 2021-08-29 16:54:24 +01:00
Sergey Lyubka
477e48bf54 mg_iobuf_append -> mg_iobuf_add 2021-08-28 08:08:54 +01:00
Sergey Lyubka
913e730ec2 mg_iobuf_delete -> mg_iobuf_del 2021-08-28 07:16:38 +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
4d07a99ee2 Fix bug in long HTTP chunk handling
Due to a copy/paste error, the start of the payload in the latest parsed
chunk was compared to chunk-length of the terminating chunk (5 chars).
So only chunks were parsed as expected, which also had a single hex
digit length.
2021-08-23 08:50:58 +02:00
Sergey Lyubka
07568a8f06 Docs nits 2021-08-22 10:51:40 +01:00
Alex Alashkin
453d4be4d0 Update FREERTOS + LWIP support 2021-08-12 13:54:43 +03: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
76865cbe14 Fix STM32 build 2021-08-07 17:52:51 +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
86f43cd8d6 Refactor mg_socketpair and document MG_ENABLE_NATIVE_SOCKETPAIR 2021-08-06 10:23:08 +01:00
Sergey Lyubka
47ce072af7 Fix #1331 - add comment about order of operations in conn_close() 2021-08-05 10:39:24 +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
a36050ab4b Fix #1326 - spelling errors 2021-08-02 00:23:01 +01:00
Sergey Lyubka
568484f079 Fix #920 - add MQTT over Websocket client example 2021-08-01 14:10:21 +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
Sergey Lyubka
5366844581 Fix #1325 - squash gcc 10 warning, and optimise casts 2021-07-31 22:26:43 +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
2d585474c1 Add riscv target, enhance arm target 2021-07-26 11:00:37 +01:00
Sergey Lyubka
53ee984eb7 Fix mg_prefix test 2021-07-26 09:26:52 +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
df2ffd1187 Refactor serve dir even more 2021-07-24 22:00:37 +01:00
Sergey Lyubka
b378082ec4 Refactor mg_http_serve_dir() 2021-07-24 21:48:19 +01:00
Sergey Lyubka
fb4fae9174 Optimise file serving path 2021-07-24 21:23:52 +01:00
Sergey Lyubka
cddff2b1b8 Cleanup on riscv baremetal build 2021-07-24 11:40:52 +01:00
Sergey Lyubka
d6dbf831f7 Remove mg_stat 2021-07-24 10:35:48 +01:00
Sergey Lyubka
2a2c17a232 Remove MG_ENABLE_STDIO and cleanup 2021-07-24 03:44:00 +01:00
Sergey Lyubka
d130c6f42d Remove leftovers 2021-07-24 02:44:25 +01:00
Sergey Lyubka
a09238debd Place config.h before arch*.h 2021-07-23 20:48:48 +01:00
Sergey Lyubka
328a87b02a Remove mg_file_size() 2021-07-23 20:18:34 +01:00
Sergey Lyubka
529faa1172 MG_ENABLE_FS -> MG_ENABLE_STDIO 2021-07-23 19:47:26 +01:00
Sergey Lyubka
8e5efd4804 7.3 -> 7.4 2021-07-23 12:17:05 +01:00
Sergey Lyubka
55e2077a46 Use mg_fopen only on win32 2021-07-22 22:46:33 +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
3982e065c8 Fix #1315, fix #1317 - use #ifndef instead of #pragma once for compilers that do not support #pragma once 2021-07-19 09:04:18 +01:00
Sergey Lyubka
497b8027f5 Fix #1314 - expose local port for listeners 2021-07-19 08:47:38 +01:00
Sergey Lyubka
89757388c7 Disable SSL v1.1 2021-07-16 12:10:48 +01:00
Sergey Lyubka
77fae5c562 Fix #1298 - shadowing struct mg_str constructor 2021-07-15 02:18:32 +01:00
Sergey Lyubka
80fcba91c8 Fix #1297 - %p warning 2021-07-14 04:00:27 +01:00
Sergey Lyubka
39d64be581 Fix FD_CLOEXEC setting 2021-07-13 22:49:36 +01:00
Sergey Lyubka
db11897d71 Fix #1302 - set FD_CLOEXEC on sockets 2021-07-13 19:32:31 +01:00
Sergey Lyubka
5e466f9037 Fix #1294 - add more common mime types 2021-07-13 19:24:46 +01:00
Sergey Lyubka
6b2698a503 Squash warning in mg_random() 2021-07-13 18:07:38 +01:00
Sergey Lyubka
4788db7e00 Fix #1301 - use correct openssl version conditional for SSL_use_certificate_chain_file() 2021-07-13 18:05:57 +01:00
Sergey Lyubka
d9680df510 Support mbedtls 3.x.x 2021-07-13 17:28:07 +01:00
cpq
302bf865f9 Fix #1310 - wrap _CRT_SECURE_NO_WARNINGS into #ifndef 2021-07-13 07:13:06 +01:00
cpq
015586950f Fix #1305 - add #ifdef __cplusplus for C++ linkage 2021-07-13 06:58:34 +01:00
cpq
f46453f80f Squash warnings 2021-06-10 19:37:03 +01:00
cpq
3deafaea7f Extend mg_mqtt_{pub,sub} by adding qos and retain 2021-06-10 19:27:19 +01:00
cpq
a15d518571 Add mg_mqtt_pubex 2021-06-10 19:15:50 +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
e69de57def Optimise mg_iobuf_append() 2021-05-29 09:46:50 +01:00
cpq
9d68e20dcc Fix #1288 - better mg_iobuf_append allocation strategy 2021-05-29 09:44:07 +01:00
cpq
c0a8546330 Add MG_ARCH_FREERTOS_LWIP 2021-05-28 23:49:26 +01:00
cpq
7c37d75bf4 Squash even more warnings 2021-05-28 18:57:47 +01:00
cpq
838b0bcd27 Squash more warnings 2021-05-28 18:45:35 +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
7c0d126edc Build with -DMG_ENABLE_FS=1 2021-05-19 08:10:38 +01:00
cpq
dbc2356768 FreeRTOS-Plus-TCP fixes 2021-05-19 00:00:32 +01:00
cpq
47e5e984df stm32f7 example starts on real h/w, with plus-TCP driver 2021-05-17 17:36:57 +01:00
cpq
72f0489ec2 Using nucleo-f746zg. Moved 3party libs to test/. Using headers from ST 2021-05-13 14:56:14 +01:00
cpq
5369fb0376 Remove low-level lwip stubs 2021-05-12 11:06:19 +01:00
cpq
5fe34fd6c3 Remove MG_ENABLE_MGOS 2021-05-12 11:05:05 +01:00
cpq
a98e980c8f Nits to have tests pass 2021-05-12 09:25:21 +01:00
cpq
0de3f0d985 f1 build works 2021-05-12 08:43:34 +01:00
cpq
d6852f5e74 First stab 2021-05-11 09:12:06 +01:00
cpq
79aad7fabf Put Range support back 2021-04-29 11:00:57 +01:00
cpq
7851930ac3 Fix #1256 2021-04-29 09:50:33 +01:00
cpq
758572872d Fix #1255 2021-04-29 09:26:37 +01:00
cpq
111551477a Integrate #1266 2021-04-29 09:17:24 +01:00
cpq
31c9e3fb7e Make mg_random() weak, see #1269 2021-04-29 09:09:21 +01:00
cpq
7061b7202f Integrate 1265 2021-04-29 08:49:23 +01:00
cpq
35a8b8e8e8 TLS nits, more DNS logging 2021-04-22 15:21:16 +01:00
cpq
1b8624f135 Better log trace 2021-04-13 21:02:05 +01:00
cpq
e217066bf6 Squash warning 2021-04-13 19:42:47 +01:00
cpq
5430408218 Merge branch 'master' of github.com:cesanta/mongoose 2021-04-09 16:55:16 +01:00
cpq
d2744063a0 Remove unused MG_SWAPxx macros 2021-04-09 16:55:12 +01:00
Mark Cottrell
6ce2e48dd3 fixed msvc errors around VLAs 2021-04-09 08:11:16 -07:00
cpq
e9d122f231 Stricter checks for mg_url_*() 2021-03-24 15:49:35 +00:00
cpq
ab1c924388 Better check in mg_iobuf_resize() 2021-03-22 11:30:29 +00:00
cpq
05050eba38 Squash warning in mg_random 2021-03-22 11:29:59 +00:00
cpq
0051f23e12 Even stricted check in mg_to64() 2021-03-21 16:14:44 +00:00
cpq
9009cbc528 Adjust recv.len after stripping chunked body 2021-03-19 13:13:24 +00:00
panosto
5036a71334 mbedtls parse cert and key from buffer 2021-03-17 15:23:45 +01:00
cpq
531c47b47c mg_to64 overflow protection 2021-03-17 13:46:50 +00:00
cpq
4dbb2da78f Add form-upload example 2021-03-17 13:28:36 +00:00
cpq
41c1e0f08d Squash truncation warning 2021-03-17 12:22:19 +00:00
cpq
5bd22cb5e4 Add mg_http_next_multipart() 2021-03-17 07:43:29 +00:00
cpq
bc00d5159a Add mg_http_next_part 2021-03-15 13:20:53 +00:00
cpq
4528cc28ef Add sizep param to mg_file_read() 2021-03-15 09:16:34 +00:00
cpq
381d7cce54 Do not call setsockopts() on a listening connection 2021-03-13 12:36:00 +00:00
cpq
2594e7b37a Stricter MG_ARCH_CUSTOM and type conversions in sock.c 2021-03-13 12:34:26 +00:00
cpq
e788853156 Fix typos 2021-03-11 13:15:53 +00:00
cpq
6366c832b0 Add struct mg_http_serve_opts::extra_headers 2021-03-10 07:56:14 +00:00
cpq
5b272c2b5c Bump HEAD to 7.3 2021-03-09 11:38:37 +00:00
cpq
452bcc68a4 Add mg_mqtt_next_unsub() signature 2021-03-09 11:29:53 +00:00
cpq
829827d46f Add mg_mqtt_next_unsub 2021-03-09 09:54:02 +00:00
cpq
ff9d0e462e Tiny refactor in walkchunks() 2021-03-09 08:22:52 +00:00
cpq
e84ea91a4a Process chunked body before sending MG_EV_HTTP_MSG 2021-03-09 08:21:29 +00:00
cpq
1b5cc341a5 Add streaming client support, MG_EV_HTTP_CHUNK 2021-03-08 15:41:16 +00:00
cpq
d50dc288cd Add mg_crc32 2021-03-08 15:40:39 +00:00
cpq
060bb29cdc Restore mg_mqtt_{ping,pong,disconnect} 2021-03-07 12:21:59 +00:00
cpq
366426e8bb Avoid extra allocation for static HTTP handling 2021-03-07 11:56:20 +00:00
cpq
e710df4c80 Define WEAK to nothing on Cygwin 2021-03-04 14:25:50 +00:00
cpq
79e5841483 Fix QNX build 2021-03-04 11:09:57 +00:00
cpq
374ab4ecf0 Add struct mg_mgr::userdata 2021-02-28 16:40:27 +00:00
cpq
56980be48c Do not reveal full root dir path 2021-02-17 16:07:18 +00:00
cpq
602c5c0866 Refactor mg_url_encode 2021-02-15 14:42:55 +00:00
cpq
7ce5009de1 Remove reduntant code 2021-02-15 14:42:22 +00:00
cpq
d5a1d5a5e8 Stricter realpath checks 2021-02-11 15:03:22 +00:00
cpq
ae5f6c0920 Increase conn label size 32 -> 50 2021-02-10 11:09:13 +00:00
cpq
0a9303bb07 Stricter mg_http_parse() 2021-02-09 21:16:33 +00:00
cpq
42bc7b1f47 Add "struct mg_http_message::head" attr 2021-02-09 13:27:17 +00:00
cpq
4844ed60bd Remove fflush in logging 2021-02-09 00:16:13 +00:00
cpq
41f5daeb47 Fix mg_random 2021-02-08 19:43:01 +00:00
cpq
a3f8f33d50 Allow mbedtls CA being inline PEM 2021-02-08 17:50:00 +00:00
cpq
fd8db5c53a Better unicode handling on win32 2021-02-07 22:43:49 +00:00
cpq
ed1a98c381 Remove debug logs 2021-02-03 02:19:17 +00:00
cpq
457d76b049 Fix #1211 - adjust ESP32 example to serve FS 2021-02-03 02:13:05 +00:00
cpq
6827972f71 Fix #1210 - on win32, open upload file in binary mode 2021-02-02 08:43:56 +00:00
cpq
582fde5c6e Fix #1209 2021-01-31 19:54:42 +00:00
cpq
d327ee9834 Improve SNI 2021-01-30 13:03:11 +00:00
cpq
86b1053678 Add error check for iobuf allocation 2021-01-29 12:32:34 +00:00
cpq
6678e36278 Use openssl/ssl.h 2021-01-28 08:45:24 +00:00
cpq
5118355732 Use 64bit file ops even on 32bit systems 2021-01-26 17:43:31 +00:00
cpq
5b4b7f7dc5 Fix test 2021-01-26 17:01:43 +00:00
cpq
7614a8101f Wrap util funcs that use FILE into MG_ENABLE_FS 2021-01-26 16:34:42 +00:00
cpq
3c851bcfc3 mg_file_write -> mg_file_printf 2021-01-26 16:30:44 +00:00
cpq
01691dafa0 Released 7.1, move HEAD to 7.2 2021-01-26 13:07:42 +00:00
cpq
8e52075636 Handle calloc failures 2021-01-26 12:16:58 +00:00
cpq
eecf3d854b Show accepted IPv6 peer corrently 2021-01-25 10:35:45 +00:00
cpq
66287ad6c1 TLS nits 2 2021-01-25 10:08:15 +00:00
cpq
9a19485454 TLS nits 2021-01-24 13:57:40 +00:00
cpq
7d67d578fd TLS krypton compat 2021-01-23 17:47:51 +00:00
cpq
9eabf3fa81 URL decoding URI 2021-01-21 17:14:08 +00:00
cpq
6ecb6c1500 Fix DNS timeout, add unit test 2021-01-21 10:00:18 +00:00
cpq
51bc5f70c5 Disable native socketpair by default, fix multithreaded win32 example 2021-01-21 09:12:49 +00:00
cpq
161c34384d Enable SO_EXCLUSIVEADDRUSE on Win32. Better listdir response. 2021-01-20 11:10:02 +00:00
cpq
d83e547fa9 Make mg_url_port() return 80 for ws:// 2021-01-18 18:39:22 +00:00
cpq
12c32d09fb Pass mg_http_message to MG_EV_WS_OPEN 2021-01-17 11:16:19 +00:00
cpq
ae6fd6aa35 Add extra headers param to mg_ws_upgrade() 2021-01-16 22:48:43 +00:00
cpq
72d3a49352 Restore SO_EXCLUSIVEADDRUSE 2021-01-13 03:47:11 +00:00
cpq
6c93446a1f Better reuseaddr handling on Win32 2021-01-13 03:08:11 +00:00
cpq
facb2846fd Bump version 2021-01-13 03:07:38 +00:00
cpq
b7a79a556a Add extra headers param to mg_http_serve_file 2021-01-07 12:48:20 +00:00
Hakaba Hitoyo
c78ad0b574 Supress error: cast from ‘void*’ to ‘int’ loses precision [-fpermissive] 2021-01-04 16:25:06 +09:00
cpq
117aeaa15d Fix fd leak for cached static files 2021-01-03 09:39:46 +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
1b0636c2d2 More checks in mg_ws_send 2021-01-02 12:20:08 +00:00
cpq
bdef3d6afd Fix win98 test 2020-12-28 06:32:55 +00:00
cpq
a882aab30e Add captive dns server example 2020-12-28 05:25:29 +00:00
cpq
71a22adc06 Add ESP8266 example 2020-12-27 01:29:42 +00:00
cpq
55f5f74658 Add mingw gcc and g++ tests 2020-12-25 19:24:51 +00:00
cpq
e1fd82bc46 Remove unused code 2020-12-25 15:04:43 +00:00
cpq
49b8480bfb Add http-reverse-proxy example 2020-12-25 04:32:56 +00:00
cpq
b2ab484883 Fix #954 2020-12-24 19:10:54 +00:00
cpq
4c3b97be7d Squash -DMG_ENABLE_FS=0 build warning 2020-12-24 18:48:28 +00:00
cpq
60e1b64455 Fix https://github.com/cesanta/mongoose/issues/1030 2020-12-24 17:01:49 +00:00
cpq
66f302a613 Make DNS debug log less verbose 2020-12-24 16:52:33 +00:00
cpq
c8826e8f9c Refactor mg_ntoa and mg_straddr 2020-12-24 08:05:54 +00:00
cpq
25bc13ef1e Squash some warnings under mingw crosscompiler 2020-12-24 07:26:50 +00:00
cpq
4d123a15f9 Drop deprecated register keyword 2020-12-23 21:20:48 +00:00
cpq
2cf1b09767 Workaround for WIN32 C++ snprintf/vsnprintf/strdup calls 2020-12-23 21:05:46 +00:00
cpq
abfd81cb9d Fix WS frame length encoding for len 0xffff 2020-12-23 16:18:49 +00:00
cpq
3895678bee Use MG_EV_WS_CTL for WS control messages 2020-12-23 11:58:08 +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
d7abd53062 Always send MG_EV_CONNECT on TCP connect 2020-12-18 15:13:19 +00:00
cpq
aede72fa37 Refactor HTTP client 2020-12-18 14:29:30 +00:00
cpq
d3ebcaf5d2 Remove unneeded defines that break vc2015 build 2020-12-18 09:48:28 +00:00
cpq
0abb8322d9 Disable noisy debug 2020-12-18 09:48:05 +00:00
cpq
04450ec659 Update http server example to showcase SSL 2020-12-18 09:01:14 +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
4519ea568d Add conditional for SSL_use_certificate_chain_file() 2020-12-17 12:12:46 +00:00
cpq
d9551c75b1 Refactor MQTT parsing 2020-12-16 10:14:00 +00:00
cpq
8d45cf6972 Add mqtt-server example 2020-12-15 20:29:47 +00:00
cpq
f176e1ae59 Handle more mime types 2020-12-15 11:58:30 +00:00
cpq
88ada54045 More tests 2020-12-12 20:38:09 +00:00
cpq
c5b1c08d05 Use MSG_NONBLOCKING for recv/send 2020-12-12 16:48:47 +00:00
cpq
d806ed5d5f Better coverage 2020-12-11 22:58:50 +00:00
cpq
7ad6a08002 Fix C++ build error 2020-12-11 18:21:29 +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
369f44adfa Add version.h 2020-12-10 17:46:26 +00:00
cpq
42d7865e14 Pre-built desktop server 2020-12-10 17:39:40 +00:00
cpq
94d2e86b60 More docs 2020-12-08 16:26:17 +00:00
cpq
d1b8f9e01f Fuzz-test mg_http_var and base64 2020-12-07 18:52:40 +00:00
cpq
228acefa36 Fix native socketpair call 2020-12-07 10:55:50 +00:00
cpq
d1d8a77bf6 Use socketpair syscall when available 2020-12-07 10:25:28 +00:00
cpq
7ea3293aba More tests 2020-12-07 08:54:58 +00:00
cpq
866c987409 Tuning test 2020-12-07 05:46:47 +00:00
cpq
1d0e65d17a Tuning test 2020-12-07 05:39:07 +00:00
cpq
0ce49b5c71 Tuning test 2020-12-07 05:08:21 +00:00
cpq
490ad3834b Tuning test 2020-12-07 05:00:27 +00:00
cpq
bcc62c96c8 Tuning test 2020-12-07 04:56:50 +00:00
cpq
15d6cb3065 Tuning test 2020-12-07 04:44:23 +00:00
cpq
d7a02d13e4 Add test++ linx++ 2020-12-07 03:47:37 +00:00
cpq
47b6060910 Add docs 2020-12-06 21:12:05 +00:00
cpq
6691a2fdad Add badges 2020-12-05 11:46:12 +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
a4b6d58b24 Add cs_log_{lock,unlock}
In implementatiosn that have preemptive scheduelrs these can be implemented
to ensure logging from different threads is properly serialized.
2020-08-28 20:29:13 +01:00
Sergey Lyubka
86f391c701
Merge pull request #1139 from rojer/warns
Fix warnings and sync line numbers of unamalgamated sources
2020-08-20 00:45:02 +01:00
Deomid Ryabkov
a308872c88 Fix warnings and sync line numbers of unamalgamated sources 2020-08-19 22:02:50 +01:00
Deomid Ryabkov
a369160296 Add missing range check in mg_get_http_header()
h/t BushraAloraini

Fixes https://github.com/cesanta/mongoose/issues/1135
2020-08-19 21:48:45 +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
d22ff2fce7 Really revert 4880069 2020-06-11 19:08:55 +01:00
Sergey Lyubka
d6693ed360 Revert 4880069 2020-06-11 19:04:24 +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
4680573a6b Fixes for -pedantic build mode
PUBLISHED_FROM=d0a15356cf047e579c74869ce3e8fe813752e8c7
2020-05-23 15:55:27 +00: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
Sergey Lyubka
3d53ed17fb Allow OpenSSL session reuse on 2-way SSL, integrate https://github.com/cesanta/mongoose/pull/877
PUBLISHED_FROM=6e2568b963869d062dd51b590f8e536d043c4ca2
2020-05-21 16:17:14 +01:00
Sergey Lyubka
ca11f5ab49 Fix OpenSSL error issue
PUBLISHED_FROM=a3bcdb68f48a4de4a4f55b4399792fdd5211c88d
2020-05-02 11:19:29 +00:00
Sergey Lyubka
ef92f2e9c5 Integrate cesanta/dev#1062 - Fix dereferencing in mg_http_free_proto_data_endpoints
PUBLISHED_FROM=47fd1a4de07d2c53c994d29c88ac1d3a7f61c1a0
2020-02-21 14:30:21 +00:00
Sergey Lyubka
4e89eac8dd Integrate cesanta/dev#1074 - Fix typedef bool for MSC
PUBLISHED_FROM=f52fe15edd617d9f1ba2aa4051c116e79671554d
2020-02-21 14:24:50 +00:00
Sergey Lyubka
b015e33ea5 Integrate https://github.com/cesanta/mongoose/pull/1096 - dir listing nits
PUBLISHED_FROM=a343bd61f98cbcc0f8cab02a62b912e494c27601
2020-02-14 08:30:56 +00:00
Sergey Lyubka
517ef216c1 6.16 -> 6.17
PUBLISHED_FROM=c0cbd13faf84fdac1f4566be02b596a232b68713
2020-02-11 11:54:54 +00:00
Sergey Lyubka
734c13cdf5 Squash win32 warnings
PUBLISHED_FROM=3819e74efb9ac8ff84a68105107afcacaeeab92a
2020-02-11 11:52:07 +00:00
Deomid "rojer" Ryabkov
1bf3ad2426 MQTT ping fixes
* Actually drop the connection when no response to ping arrives within the next interval.
 * Avoid sending immediate ping when wall time is adjusted, it's usually spurious.

PUBLISHED_FROM=8049280b58edfb94dd0fcb6a1e89ffefe69bcea1
2020-02-11 08:04:02 +00:00
Deomid "rojer" Ryabkov
884b9a4813 Add Content-Encoding: gzip when serving .gz files
If file ends with .gz and has known "secondary extnesion", i.e. test.html.gz,
its content type is determined by the secondary extension and content-encoding is set to gzip.

PUBLISHED_FROM=a238763b4424bafabec2e58ccae4522cacdd7c78
2020-02-01 08:33:49 +00:00
Deomid "rojer" Ryabkov
7153690016 Keep the size of the structure the same in non-SSL build
PUBLISHED_FROM=8f93bee72bc18efff64354203ee6268f4f8e8768
2020-01-31 11:01:35 +00:00
Deomid "rojer" Ryabkov
f00b3a2b3a Move ssl_if_data to the end of mg_connection
PUBLISHED_FROM=4fb65477b03bedc3206ac286e8236f0f9536f20e
2020-01-31 09:48:30 +00:00
Deomid "rojer" Ryabkov
c2b5e4f3b8 Fix a leak when CA certificate file is invalid
Also free up some RAM by not allocating ca_cert when `MBEDTLS_X509_CA_CHAIN_ON_DISK` is enabled.

PUBLISHED_FROM=5e5f4103707de98c929973d2aed0aaedf0bb60da
2020-01-22 10:03:30 +00:00
Deomid "rojer" Ryabkov
bc15e9ce9a Fix value of MG_MQTT_DUP
PUBLISHED_FROM=de1772bd6ea01f3dc467ceebb3b2af5cbe8eb240
2020-01-20 09:33:25 +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
Sergey Lyubka
cb602f178c Fix int overflow in parse_mqtt()
PUBLISHED_FROM=f9106d2f746c67ae004aeab12685eaf9cd558cd8
2019-12-23 11:13:41 +00:00
Sergey Lyubka
464113c5ae Sync mongoose changes
PUBLISHED_FROM=8b6ebf46728aca40f916dde88e372b4540ed6ea4
2019-12-19 11:12:57 +00:00
Deomid Ryabkov
c34f6c54e7 Fix ota-shadow logic
PUBLISHED_FROM=68a57c967f8864946244893c71a397ab4e27d75d
2019-12-07 09:03:26 +00:00
Sergey Lyubka
8fb58ebbca Lsm
PUBLISHED_FROM=5f465d245bb9ada5202cdd23ddc5b9856df26951
2019-11-04 13:48:28 +00:00
Sergey Lyubka
1a38e91042 Next
PUBLISHED_FROM=6fa0be81ce429b8db9e3ed572cb4a876b6fb2693
2019-07-12 09:33:26 +00:00
Sergey Lyubka
b6196371bb Lsm
PUBLISHED_FROM=18d9d1e6411db84788c527d1c34ad2adc846df00
2019-06-26 10:33:24 +00:00
Sergey Lyubka
19acf23c49 6.14 -> 6.15
PUBLISHED_FROM=69f3a5f14d4ebce0fb89728fc345f90f1e7b1700
2019-06-13 08:49:37 +00:00
Sergey Lyubka
b3e0f780c3 Fix heap-based overflow in parse_mqtt
PUBLISHED_FROM=3306592896298597fff5269634df0c1a1555113b
2019-06-13 08:18:14 +00:00
Sergey Lyubka
2bdbfc27f6 Integrate https://github.com/cesanta/mongoose/issues/1008
PUBLISHED_FROM=1b7bf2d7318568851e6c8f07451cd3982d9498b6
2019-06-13 07:48:28 +00:00
Sergey Lyubka
3fc61a3edc Fix mg_resolve2()
PUBLISHED_FROM=b0df728a75073c6ea9fc1984bb6a6b463f539347
2019-05-24 12:33:25 +00:00
Deomid Ryabkov
1fb9f922b0 Fix mgos compile check
CL: none

PUBLISHED_FROM=a1320658181aa19cd1a269d7ae62e11b3439ef84
2019-05-03 16:36:08 +00:00
Deomid Ryabkov
b93bc02ab0 Delete mos tool and related libraries from dev
Moved to https://github.com/mongoose-os/mos

PUBLISHED_FROM=8a0475678dba38fd6e057b8a530e9d08054ff74f
2019-05-02 12:03:33 +00:00
Deomid Ryabkov
4e8660a21f RS14100 fixes
CL: none

PUBLISHED_FROM=4d5d68f92d6c082b5b0c25ed8935fc097939001f
2019-04-24 19:16:41 +00:00
Deomid Ryabkov
3fe77fa9a6 RS14100: Optimize flash reads
CL: none

PUBLISHED_FROM=49d4f4a3c83520fd6ec9714b74333f75f3a2aa1c
2019-04-24 16:18:28 +00:00
Deomid Ryabkov
b4fbaf7c13 Fix locking in lwip net_if
Was not being enabled when it should have been.

CL: Fix locking in lwip net_if

PUBLISHED_FROM=4810e73417c7599f0ea08a09812ed320d02f7cae
2019-04-23 20:03:44 +00:00
Deomid Ryabkov
9884241df8 mg_net_if_lwip: Fix invoking callbacks on tcpip thread
tcpip_callback doesn't wait for the callback to run (as was previosuly assumed).

CL: mg_net_if_lwip: Fix invoking callbacks on tcpip thread

PUBLISHED_FROM=930c45f1346f9c3b024e5e684f4a452c762db92b
2019-04-15 16:33:40 +00:00
Deomid Ryabkov
63d7a4fa45 Core dump analysis improvements
* ARM
   * Provide MSP and PSP
   * Provide FreeRTOS task info
   * Profide target specification XML (extra regs and FPU / no FPU Cortex cores)
 * ESP32
   * Use uxTaskGetSystemState instead of uxTaskGetTaskHandles
 * General cleanup and refactoring

CL: Core dump analysis improvements

PUBLISHED_FROM=3297ffb2e6069a3a6a598367273bc2183063cf1e
2019-04-10 19:18:33 +00:00
Deomid Ryabkov
8f4b6c41a2 Make FreeRTOS a library, upgrade to 10.2.0
All the platforms except esp32 (which uses heavily patched 9.0 from IDF) and esp8266 (doesn't use RTOS at all) are using the same version of FreeRTOS now.

CL: Make FreeRTOS a library, upgrade to 10.2.0

PUBLISHED_FROM=a4f7949a9f1546d23fc183412445859830f02d1a
2019-04-01 19:02:26 +00:00