* Make kr_{send,recv} report status via return code instaed of errno
* Move mg_if_* recv and connect callback invocation out of LWIP
callbacks: these can be nested and we don't want that to happen
to our callbacks. Instead, we post events for the event manager to
process during next poll.
PUBLISHED_FROM=9b3c1de796fae381dea1641807e51d7a897a398e
LWIP part has been finally fully split from the ESP part, and ESP
platform defs reduced to bare minimum. It is now possible to use LWIP
in either low-level or socket mode without any ESP dependencies,
and NXP Kinetis platform is the first to make use of it.
PUBLISHED_FROM=4a9055897609c812296bdab5b4943ffde641ced2
Possible values:
MG_NET_IF_SOCKET (1) - traditional BSD socket API
MG_NET_IF_SIMPLELINK (2) - TI's SimpleLink socket interface
MG_NET_IF_LWIP_LOW_LEVEL - a net_if implementation that uses LWIP's
low-level API, when LWIP_SOCKET is not available.
PUBLISHED_FROM=a5c0aebb7b6bdb1f1f4cb3210763d16f3ab5e133
Factor out SSI and WS code from http.c
HTTP + WS are enabled by default, but MQTT is built without HTTP
support as a compilation test.
PUBLISHED_FROM=925ed9a55abb193ed7deac1c9675a0e5b35dca50
"#if FOO" still works with simple -DFOO, but gives more flexibility.
Specifically, if user expressed no preference (FOO is not defined),
we can apply reasonable defaults (this is the legitimate use of ifdef).
In short, from now on, please use
#if MG_ENABLE_FOO
instead of
#ifdef MG_ENABLE_FOO
Since we are all used to #ifdef, this change also adds a precommit check
to police this. Specifically, in *.h and *.c files that are Copyright Cesanta,
"ifdef" and "if defined()" are not allowed to be used with macros that contain
ENABLE or DISABLE, unless the like also contains "ifdef-ok".
Hence, if you are sure you want to use ifdef, use this:
#ifdef MG_ENABLE_FOO /* ifdef-ok */
PUBLISHED_FROM=9be829448f53cff575d6cae8b9945fb12531c15a
esp_mg_net_if was a rat's nest of mongoose net_if and event manager
implementaions and the event loop task for the ESP8266 miot port.
From that, pieces that are related to LWIP support have been pulled out,
separated into net_if and event manager files, and event loop task
has been moved under the miot esp8266 dirrectory.
This is done to facilitate LWIP code reuse. This may not be the end of
it, but it's a start.
Note: custom retransmit logic has been removed for now. Can be
reintroduced later is necessary.
PUBLISHED_FROM=fd5bbf75714583ce95776d4c76b6c5b5dc535364
This is the variant of MG_EV_SSI_CALL with context of the SSI call being
processed in addition to the tag argument. Specifically, call handler
now gets access to the HTTP request and the name of the file being processed.
MG_EV_SSI_CALL is preserved for backward compatibility.
PUBLISHED_FROM=eeea7487c062505abdb23b6f64994ff7a6b60ff8
Make paths embedded in amalgamated files nice and relative.
This facilitates subsequent clean un- and re-amalgamation.
PUBLISHED_FROM=d83e6000617c54ceaeb78b80c25814996043fe66
On my way, fixed a couple of cases where we had `()` in the header, and
non-empty argument list in the source file.
PUBLISHED_FROM=5519526cf84e2bbd425a726fcc112fea1a95cbf1
It was observed that sl_Send can return SL_EAGAIN, despite the fact that
we only call write_to_socket if it was reported as writeable.
PUBLISHED_FROM=e4cbacb3f16bb7abb479222d7dcbfbe113a39161
Complete rewrite of the C Clubby implementation: it is now modeled after
the Go implementation, with a slight difference that codec and channel
are the same object (something we should probably do in Go as well, as
we only have a single type of channel so far, which is used with all
types of codecs).
This implementation also comes with a new external API,
which is hopefully cleaner and easier to use (see mg_clubby.h).
In this PR I am not adding any new types of channels, but a UART channel
as well as websocket listener channel will be added after this lands.
PUBLISHED_FROM=d545d4bb6434e2a02ad159f9e4b64e594a4797e7
So that socket/connection/whatever is really closed by the time user code is run.
Speed up test_http_endpoints by using appropriate wait conditions.
PUBLISHED_FROM=5fc8a772cc2a9c3b8c9dbddde9f99b41ce4d334c
Do not use CA bundle on CC3200, it doesn't work.
Make ssl_ca_cert = "*" mean "no verification" and make sure
SSL is enabled on the connection when it's required, even w/o verification.
PUBLISHED_FROM=c8710a5d24ecfe174ef45b7f81c114d41faf5c12
Newlib implements rename as _link and _unlink, not _rename.
There is no _link on either SLFS or SPIFFS, so override rename directly.
PUBLISHED_FROM=ebb54664f8a3c8664ecab1fac021bef286a0e230
SimpleLink restart invalidates all sockets.
Listeners are restarted, outgoing connections are closed.
PUBLISHED_FROM=15567dfb822bffbd44d39ba0e69a7ac64fd7a1c8
Domain name verification feature was added in NWP service pack
(reported version: 2.6.0.5). Older versions do not support it.
There's not much we can do about it, so we just ignore the error.
PUBLISHED_FROM=9495250de1945aae4f2bdf7dddcd7bf1248e24c2
SimpleLink sockets are suffciently different from BSD that all the
ifdefs have become too messy to warrant a separate net_if
implementation. As part of this we also implement proper async connect
support.
Added MG_F_SSL to identify SSL-enabled connections in a generic way,
since SSL state can be different depending on the implementation.
PUBLISHED_FROM=9cdb8c880b90683e4a26b972cf439d47d6f60917
SL requires cert and key to be separate files in DER format.
Date verification is disabled for now.
PUBLISHED_FROM=7d76150ed356140728a1e5fd82d8a0456347b7dc
Make restful_server and netcat examples compilation tests:
- netcat doesn't use HTTP, compile it with MG_DISABLE_HTTP
- restful_server doesn't use websocket, compile it with
MG_DISABLE_HTTP_WEBSOCKET
h/t @labourcier, cesanta/mongoose#665
PUBLISHED_FROM=4494ac3cbd81e8314beb557ab301b4b44c4afb89
`v7_mk_undefined()` and `v7_mk_null()` are left unchanged, but marked
deprecated, and `V7_UNDEFINED` and `V7_NULL` are public now.
Xtensa code size with instrumentation: 590400 -> 590432, i.e. 32 bytes.
Xtensa code size without instrumentation: 530848 -> 531760, i.e. 912
bytes.
As objdump reveals, inside v7.c, `v7_mk_number` and others are inlined,
so the extra v7 argument is eliminated; outside of v7.c it's obviously
not inlined.
----
Also, v7_get_int() is added, which currently just casts stored double
value to int
PUBLISHED_FROM=e984b7308faf2380b3de388f238e0fae0aea545d
We used to declare these functions twice: in plaform_windows.h
and cs_dirent.h. Removed decl from platform_windows.h and moved
cs_dirent.h to be privately included by mongoose.c
PUBLISHED_FROM=ab62370409e29e3c62a8b8eab0f75795b5d7ed0f
1) It's broken; most likely in more ways than one
2) It doesn't make much sense as long as we maintain MG_EV_POLL and
have to traverse the list of connections anyway.
3) In Mongoose, simplicity trumps performance.
PUBLISHED_FROM=61d2aeee4f74678bc186063c0977e720a8a414cb
Part of general drive to use mg_str instead of pointer + length.
Adda unit test for mg_match_prefix.
PUBLISHED_FROM=1402506769b0941c6dbe6ae06e03e41df32d6008
And use stdout for CC3200 demo because
(1) an apparent bug which causes output sent to stderr to be
printed v-e-r-y s-l-o-w-l-y (yes, it is really like that;
https://e2e.ti.com/support/development_tools/code_composer_studio/f/81/t/501881)
(2) in CCS it is printed in BLOOD RED, which is annoying
PUBLISHED_FROM=36a86744bc8ea193e99e98670dadc7f3ab6ed53e
Thinks that mg_ws_random_mask does not return a value.
Help the poor, mentally challenged compiler.
PUBLISHED_FROM=e7c0c47dd2fcbb4e847515892939d69c7a573c2e
Moved filesystem-related code out of SJS and into common.
Made it possible to have one, both or no filesystems enabled.
FailFS is now SimpleLinkFS, SLFS (ahem).
Example just serves a "Hello, world!" index page for now.
PUBLISHED_FROM=0e98ee4b8d95782c10791522c42eae5a7ba314f9
The url parser had two bugs:
- `http://example.com` -> `GET // HTTP/1.1`
- `foo://bar/baz` -> path is `"baz"` instead of `"/baz"`
Now the path returned by `mg_http_common_url_parse` always
starts with `/`.
Closescesanta/mongoose#631
PUBLISHED_FROM=f56ed97361ca14ee31d6ed26cf7afe5cd11e0dc5
Timers/intervals are now implemented on top of Mongoose.
Got rid of all the platform-specific code (yay!)
Added interval support and ability to clear previously added timeouts.
PUBLISHED_FROM=93866dd80b95b0fa6e137d87f86138330e720154
Identifiers starting with _ are reserved, fix those.
Wrote a tool to do it and applied it globally, why not.
PUBLISHED_FROM=db0fa27c90cbfb06ed06469406f9867c5a5bd3c4
Remove Krypton TODO: SSL{,_CTX}_set_cipher_list have been added
(but these ciphers are not supported).
Fixescesanta/dev#2975
PUBLISHED_FROM=25bf330b785f0a61e18ba409069ebccbd50dcf65