* added getAvailableVersion(), moved _httpClientTimeout and _followRedirects to protected, added enum HTTPUpdateError
* auto numbering of HTTPUpdateError enum
* added getAvailableVersion(), debug output current current Sketch MD5
* Revert "added getAvailableVersion(), debug output current current Sketch MD5"
This reverts commit 60d2c7762e7fb1fed7fae37fa99be149e12f125c.
* Revert "auto numbering of HTTPUpdateError enum"
This reverts commit 61785b27da3f2d42f8f95316d78ce22e5b00103a.
* Revert "added getAvailableVersion(), moved _httpClientTimeout and _followRedirects to protected, added enum HTTPUpdateError"
This reverts commit cec84ed17ab149d3e48082293f9e2723246b7d0b.
* add redirect function
* enhanced redirect() by cache control and client stop
* updated redirect() comment
* replaced redirect() API calls in examples
* server.client().stop() not needed, redirect() does this
- split workflows into separate files to trigger by path
this should help out documentation and boards / eboot / pkg files
updates, since those *wont* trigger usual build stuff anymore
- build*.sh whatever merged into just common.sh and build.sh
trigger different parity builds, mod % rem and allow to set .ino list
through the environment variable
- removes unnecessary temporary files, try to use more pipes
move remaining ones into cache dir instead of PWD
- remove legacy TRAVIS env vars, use ESP8266_ARDUINO prefix for config
- remove Windows path workarounds
- hardware/ and ide/ directories are set through envionment
do not force specific paths, simplify builds on local machine
- sketch list is set through environment. expicit paths for Windows and
macOS builders. platformio also gets a real shuffled list instead of
mod and rem magic numbers
- detect root of the repo through git cli, not base{name,dir} or relative paths
* Initialize SoftAP DhcpServer object on demand
Remove dependency on global ctor, and just construct the object when
someone asks us to do it. Only dependency right now is netif_git, which
is expected to be initialized by the lwip code some time before
dhcps_start happens.
Removing ip_info from begin(), since we never reference later on.
Also removing the specific check for netif id and simplify the ctors.
Update tests and recover old nonos-sdk dhcps functions that were not implemented.
* nonos helpers have a separate header
* wifi ap needs this anyway, simplify sketch includes
* missing example
* existing name :/
* trying to fix header dependency
* restyle
* not a c header
* no need to init
* move dhcp server getter to WiFi
more... arduino'ish? we ahve object as namespace, plus everything else
related to softAP is there
redundant includes, redundant mock impl (out-of-scope here to fix)
* ...move things back, still expose as WiFi method
* review fix
* include -nonos header in wifi lib though
* no more lwip include
* style
* need mock dhcpserver instance
The key functions added are:
`bool enableForwarder(const String &domainName=emptyString, const IPAddress &dns=uint32_t)0)`
If specified, `enableForwarder` will update the `domainName` that is used to match DNS request to this AP's IP Address. A non-matching request will be forwarded to the DNS server specified by `dns`.
Returns `true` on success.
Returns `false`,
* when forwarding `dns` is not set, or
* unable to allocate resources for managing the DNS forward function.
`void disableForwarder(const String &domainName=emptyString, bool freeResources=false)`
`disableForwarder` will stop forwarding DNS requests. If specified, updates the `domainName` that is matched for returning this AP's IP Address.
Optionally, resources used for the DNS forward function can be freed.
* Deprecate SPIFFS, move examples to LittleFS
SPIFFS has been a great filesystem, but it has significant problems in
many cases (and it's also pretty slow). Development seems to have
slowed/stopped on the upstream version, and we're not able to provide
support or fix the known issues with it as-is.
Deprecate SPIFFS variable.
Update all examples to use LittleFS instead of SPIFFS.
Also, minor cleanup on very old examples which has obsolete delays
waiting for the Serial port to come up, or which were stuck at 9600 baud
because of their ancient AVR heritage.
Fixes#7095
* Remove leftover debug code
* Clean up comments in some examples
* Update documentation on SPIFFS deprecation
* Fix host tests to avoid deprecation warnings
* Fix cut-n-paste error
* Restore SpeedTest.ino, adjust to allow custom FSes
Co-authored-by: Develo <deveyes@gmail.com>
Added meta viewport element for better mobile device viewing.
For example CaptivePortalAdvanced, increased size of ssid and password array
to hold maximums 32 and 64 charcter strings. Added missing HTML elments
to main splash and wifi config. They should now pass an HTML checker.
Also added meta viewport element for better mobile device viewing.
Use the proper api (::clear(), isEmpty()) instead of doing
comparisons/assignments of empty strings. Also fix mixture
of tabs and spaces in the source code.
* Add support for newer mobile OS changes.
Took me quite a while to figure this out, but according to this issue (https://github.com/espressif/arduino-esp32/issues/1037), in order to get a captive notification to show or the popup to open, the DNS server must resolve to a public IP. It will not work with a pivate one (e.g. 192.168.4.1).
On Android, a notification ("Register with Network") is displayed in top left notification bar.
On IOS, the login popup is displayed.
* Add support for newer mobile OS changes.
Took me quite a while to figure this out, but according to this issue (espressif/arduino-esp32#1037), in order to get a captive notification to show or the popup to open, the DNS server must resolve to a public IP. It will not work with a pivate one (e.g. 192.168.4.1).
On Android, a notification ("Register with Network") is displayed in top left notification bar.
On IOS, the login popup is displayed.
Android refuses to show page with missing Content-Length header.
Prepare page data to String and send it with server.send
Moved respose strings to PROGMEM
* DNSServer: Handle examplewww.com correctly
Just replacing 'www.' with the empty string when we assign the
domainname will remove all occurrences of 'www.', not just those
at the start of the string.
Change this to a startsWith check so that only "www." at the
beginning of the string is removed.
* DNSServer: Rework request handling
Rewrite the request handling in the DNSServer code to address the
following issues:
Compatibility with EDNS #1:
RFC6891 says that
"Responders that choose not to implement the protocol
extensions defined in this document MUST respond with a
return code (RCODE) of FORMERR to messages containing an
OPT record in the additional section and MUST NOT include an
OPT record in the response"
If we have any additional records in the request, then we need
to return a FORMERR, and not whatever custom error code the user
may have set.
Compatibility with EDNS #2:
If we're returning an error, we need to explicitly zero all of
the record counters. In the existing code, if there is an
additional record present in the request, we return an ARCOUNT
of 1 in the response, despite including no additional records
in the payload.
Don't answer non-A requests
If we receive an AAAA request (or any other non-A record)
requests, we shouldn't respond to it with an A record.
Don't answer non-IN requests
If we receive a request for a non-IN type, don't answer it
(it's unlikely that we'd see this in the real world)
Don't read off the end of malformed packets
If a packet claims to have a query, but then doesn't include
one, or includes a query with malformed labels, don't read off
the end of the allocated data structure.
* DNSServer: Clarify and tidy writing the answer record
Modify the code used to write the answer record back to the server
so that it is clearer that we are writing network byte order
16-bit quantities, and to clarify what's happening with the pointer
used at the start of the answer.
* WIP compile examples on host with 'make examples'
* WIP bufferize tcp input
* WIP Makefile
* WIP network to rework, tcp/udp to factorize, udp addresses broken
* minor changes to the core
* WIP basic udp working
* WIP mdns
* WIP mcast receiving, not sending
* WIP mdns OK
* beta version
* SSL + doc
* update travis host test command
* licenses
* typo
* doc: arduino builder is not around: declare functions before calling them
* fix with latest SSL PR, compile in 32 bits mode
* fix make clean
* make -m32 optional
* 32bits compiler ability tester
* WIP
* WIP (fix 1 vtable error, still another one to hunt with using spiffs)
* example astyle
* fix os_printf_plus
* load / save mock spiffs
* fix style
* fix using spiffs/mock
* don't mess ram
* update doc
* remove leftover
* optimization -Os except for CI, rename ARCH32 to FORCE32
* revert useless cast (not even compiled)
* remove unused function
* use proper type for pointer arithmetics
* makefile: sketch object and cpp file moved to bin/ directories
easier to clean, and IDE don't like them
* changes for review
* make use of %zd
* less verbose makefile by default (option)
* update readme
Use platform.local.txt to add -Werror to GCC for the build of all
code. Any warnings on a submitted patch will cause an error.
Several examples and libraries had warnings/errors (missing returns
on functions, types, etc.). Clean those up with this commit as well.
This example serves a "hello world" on a WLAN and a SoftAP at the same
time.
The SoftAP allow you to configure WLAN parameters at run time. They are
not setup in the sketch but saved on EEPROM.
This is a captive portal because through the softAP it will redirect any
http request to http://192.168.4.1/, served by the ESP8266 itself