* Add FatFs
* enable BUILD_FATFS for all-module build
* push vfs into rest of firmware
* align maximum filename length
* increase timeout for acmd41 during card initialization
* switch from DOS to Unix path semantics chdrive() is substituted by chdir()
* update to fatfs R.012a incl. patches 1-6
* add callback for rtc provisioning in file
* update docs
Due to the hard-close, the status message did not get sent out reliably.
Connection closing logic now reworked to be nicer, while still avoiding
the problem of lots of connections lingering in fin_wait.
Shutting down an espconn server safely is impossible, and currently would
include at least one use-after-free. Even with that patched, at best this
would change things from impossible to "very tricky".
The native LWIP API does not have those issues, and is still quite easy
to work with.
A single bug is fixed, a few features are added and overall the codebase has been worked through.
- Added support for calls to /generate_204 that let's android know that the internet is accessible.
- Added 10 second delay to the shutdown call to allow a final status update to be fetched by the client.
- Added iframe to html to avoid having a form submission change the page.
- Added support for dynamic /status responses.
- Improved HTML appearance by removing AP-list button.
- Improved CSS to center form, even when list of access points have loaded.
- Improved debug prints to contain line numbers and not require lua_State*.
- Fixed broken failure check when calling wifi_station_connect().
- Fixed unguarded malloc().
Fixes:
* Removed spurious \0 bytes being sent to the client in many cases.
* Properly terminated 404 header.
* Now including Content-length: header for index.html (including built-in).
Clients otherwise had to wait for their own timeout before considering
the page load complete, which resulting in an unpleasant sluggish
experience.
* Switched form submission to GET, as iOS sometimes does not include the
body in the same packet as the POST header, which led to the module
not finding the form values.
* Added redirect after form submission to avoid blank-page-in-browser.
* Moved common "enduser_setup" prefix to a lua_pushfstring() to reduce
string literal overhead.
* Replaced cached lua_State* with calls to lua_getstate(), as in other
modules.
* Fixed broken appending of MAC to the SSID.
* Fixed up macro definitions to not break `if` clauses unintentionally.
Enhancements:
* Support for scanning for available WiFi networks, and picking from the list.
* Support for retrieving the current WiFi station status.
* Added "manual" mode, where the module does not (re)configure the AP setup,
nor shut down automatically. Default is still automatic, as before.
* Updated docs for new `enduser_setup.manual()` function.
Module creation & registration now made a lot simpler. In essence,
each module file is now self-contained and only needs a
NODEMCU_MODULE(MYNAME, "myname", myname_map, luaopen_myname);
line to both be automatically recognised by the Lua initialization
as well as honor the LUA_USE_MODULES_MYNAME #define.
As per #810 & #796, only LUA_OPTIMIZE_MEMORY=2 & MIN_OPT_LEVEL=2 are
supported when building. This commit effects that limitation.
With this change modules/auxmods.h no longer needs to be updated for
every new module, nor do module writers need to cater for a hypothetical
LUA_OPTIMIZE_MEMORY < 2 scenario.
The module will start a SoftAP, DNS, HTTP server acting as a captive portal.
The portal will have the SSID SetupGadget and will serve a website where
credentials for the end users WLAN can be submitted.
Once valid credentials have been submitted and used to connect to the
local WLAN this module will stop.
This module requires USE_DNS to enabled in dhcpserver.h