* mqtt: expose "connfail" callback via :on()
This makes it just like all the other callbacks in the module and is a
revision of behavior called out in
https://github.com/nodemcu/nodemcu-firmware/pull/2967
* mqtt: clarify when puback callback fires
* mqtt: Don't reference stack buffers from the heap
The confusingly-named "mqtt_connection_t" object is just a triple of
- a serialized mqtt message pointer and length
- a buffer pointer (to which the above can be written)
- a message identifier
The last of these must be passed around the mqtt state machine, but the
first two are very local and the buffer is always sourced from the C
stack. Unfortunately, because the entire structure is persisted in the
heap, some callers assume that they can always use the structure without
reinitialization (see mqtt_socket_close), which will trash the C stack.
Sever the pairing between message id and local state, punt the local
state entirely out of the heap, and rename things to be less confusing.
Here `conn` is net.socket instance, so it should be called as one.
Otherwise request is very likely to end up with crash and PANIC.
nwf edited in light of bcb669a4a0
* Add missing globals from luacheck config
* Fix luacheck warnings in all lua files
* Re-enable luacheck in Travis
* Speed up Travis by using preinstalled LuaRocks
* Fix more luacheck warnings in httpserver lua module
* Fix DCC module and add appropriate definitions to luacheck config.
* Change inline comments from ignoring block to only ignore specific line
* Add Luacheck for Windows and enable it for both Windows and Linux
* Change luacheck exceptions and fix errors from 1st round of polishing
* Add retry and timeout params to wget
* Remove stale putative MD2 support
This hasn't worked in a while, presumably since one of our upstream
merges. Don't bother making it work, since MD2 is generally considered
insecure.
* Land mbedtls 2.16.3-77-gf02988e57
* TLS: remove some dead code from espconn_mbedtls
There was some... frankly kind of scary buffer and data shuffling if
ESP8266_PLATFORM was defined. Since we don't, in fact, define that
preprocessor symbol, just drop the code lest anyone (possibly future-me)
be scared.
* TLS: espconn_mbedtls: run through astyle
No functional changes
* TLS: espconn_mbedtls: put the file_params on the stack
There's no need to malloc a structure that's used only locally.
* TLS: Further minor tidying of mbedtls glue
What an absolute shitshow this is. mbedtls should absolutely not
be mentioned inside sys/socket.h and app/mbedtls/app/lwIPSocket.c is not
so much glue as it as a complete copy of a random subset of lwIP; it
should go, but we aren't there yet.
Get rid of the mysterious "mbedlts_record" struct, which housed merely a
length of bytes sent solely for gating the "record sent" callback.
Remove spurious __attribute__((weak)) from symbols not otherwise
defined and rename them to emphasize that they are not actually part of
mbedtls proper.
* TLS: Rampage esp mbedtls glue and delete unused code
This at least makes the shitshow smaller
* TLS: lwip: fix some memp definitions
I presume these also need the new arguments
* TLS: Remove more non-NodeMCU code from our mbedtls
* TLS: drop support for 1.1
Depending on who you ask it's either EOL already or EOL soon, so
we may as well get rid of it now.
* Remove app/include/netif/wlan_lwip_if.h
This file appears to be unused in our tree.
* New `net.if.info` call to show LwIP information
This is a generalization of `wifi.sta`'s and `wifi.ap`'s `getip` and
`getmac` calls. I don't propose to deprecate those, but perhaps we
should, in the documentation, point users at this function instead.
The direct motivation is to permit continued use of DHCP-provided NTP
servers in a future where
https://github.com/nodemcu/nodemcu-firmware/pull/2819 has landed, now
that https://github.com/nodemcu/nodemcu-firmware/pull/2709 is in the
tree. But rather than exposing just that information, a more general
interface seems useful.
The internal implementation already preferentially forwards to the
encoder module, so we should just remove these functions as they confuse
people into thinking that we don't have their inverses (see the feature
request https://github.com/nodemcu/nodemcu-firmware/issues/2907).
Update the docs to refer to the encoder version and add deprecation
warnings to the runtime implementations.
We just don't have the memory to be a real TLS client on the 8266. Put
that in a big box and point at it from the http and mqtt modules; others
may also wish to give reference.
* list_ref can become LUA_REFNIL, because that's what rawgeti returns
for LUA_NOREF. Defensively guard for this, rather than falling into
the sntp_dolookups loop with nil on the stack.
* set_repeat_mode should not call itself, but should rather always do
what it's going to do and then optionally do the rest if directed.
* sntp_sync should not try to special case the single string argument:
we should be queueing that name for DNS resolution, too. Towards that
end, if we are given a single string, build a table and make that the
list_ref and call off to sntp_dolookups, just like we otherwise do.
FIXES: #2699