Add a method allowing a user to send in a character string for the
fingerprint, like axTLS supported.
Implements part of PR #4833 from @d-a-v with changes requested in
discussion.
* Revert "Make softAP documentation state the correct min value (0) for the max_connection argument. (#5165)"
This reverts commit 24a1d22730685e20c7f506574d28c90af567c439.
* Revert "Wrong directory for installation?? (#5163)"
This reverts commit d547c4766780f5a9af4a6cbda42cab790de745bc.
* Update README.md
Specify Linux dir for using git
PLEASE REVIEW, I'm not completely sure, but on Linux there's no `hardware` directory inside `Java`, and it doesn't seem to make sense that there should be on MacOS. There is, instead, a `hardware` directory in the parent.
The BearSSL second stack, once allocated, was never deallocated. The
reference count of the stack pointer never hit 0 due to the initial
creation counting as one. Now, check to see if there is only one use_count
and if so then delete the stack.
SSL Sessions enable most of the SSL handshake to be skipped when both
client and server agree to use them. Add a BearSSLSession class and
an optional setting to the SSL client to enable this.
Note that SSL sessions are unrelated to HTTP sessions. They are
ephemeral and only relate to the SSL parameters, not anything at
the HTTP protocol level.
The cipher list count/pointer was cleared separately in the three
constructors available. Move this reset to _clear() to reduce code
duplication and keep the semantics.
Pull in latest BearSSL head (0.6 + minor additions) release and add AES_CCM
modes to the encryption options. Enable the aes_ccm initialization in client/server
The EC mul20 and square20 code was identical in two different files,
but because these copies were static, we ended up with an extra 6k of
duplicated code. Updated BearSSL to make them shared, saving 6KB.
The cipher list values were not initialized to NULL appropriately for the
BearSSL::WiFiClientSecure() constructor called by the Server object.
This caused a crash as a random value was free'd when conecting to the
SSL server object.
ClientContext::_wait_for_sent() could dereference a TCP's _pcb after
the connection was dropped by the OS, resulting in a crash.
Move the connection dropped check to catch this case, and replace
a fixed millisecond delay() with a yield and timeout value to minimize
wasted time when transmission completes.
* - Add assert in HelloMesh.ino for invalid transmission status.
- Make uint64ToString and stringToUint64 methods into stand-alone type conversion functions.
- Add getters and setters for requestHandler and responseHandler.
- Polish HelloMesh.ino code by adding networkIndex as networkFilter loop variable and switching networkFilter definition position.
- Add initial WiFi.disconnect() in HelloMesh.ino setup() function to ensure smooth WiFi operation.
- Add latestTransmissionSuccessful() convenience method.
- Change default WiFi mode to WIFI_STA and improve handling of WiFi mode (fixes issue #5071).
- Add checks to methods that change AP properties to avoid unnecessary AP restarts.
- Add getter for ESP8266WiFiMesh SSID and getters and setters for ESP8266WiFiMesh settings related to hidden SSID usage, max station connections allowed per AP and WiFi timeouts.
- Make waitForClientTransmission method use more accurate timekeeping.
- Improve type usage.
- Improve comments.
- Update README.md, keywords.txt and library.properties.
* Make getter and setter order consistent throughout code.
* - Fix active AP getting turned off when calling begin().
- Fix crash bug due to WiFiServer duplication when using the ESP8266WiFiMesh copy constructor with the AP controller as argument, under certain circumstances.
* - Move non performance-sensitive Strings to flash memory to save RAM.
- Add comments explaining F(), FPSTR() and PROGMEM.
- Fix README.md formatting.
* Remove the uint64ToString and stringToUint64 methods from the ESP8266WiFiMesh class since they are now stand-alone functions in the TypeConversionFunctions files.
* Change the minimum valid argument value of the setMaxAPStations method to 0, since this value is also supported by the ESP8266.
* Fix compiler warning.
* Move ICACHE_* to unique sections, local LD script
Similar to PROGMEM changes, make the name of each ICACHE_* variable/fuction
unique to avoid issues with section conflicts.
Also rename the generated LD linker script to avoid issue with older copies
of the eagle.app.v6.common.ld which were generated by the build process
in a global directory before being moved to the {build.path}. The linker
would use the older, generated *.ld file instead of the generated one, which
would lead to runtime failures on some systems and cause the VTABLE location
to not correspond to the IDE menu selection.
Fixes#5115, and is an update to #5117 and #5116.
* Update boards.txt.py and platform.io build
* Add full debug builds for all tests
In order to ensure the -DEBUG builds don't fail with checked-in code, add
two jobs which build even/odd with full debug flags to Travis.
Fixes#5143
* Add in dump of platform.txt to verify build options
* Fix BASH comparison of strings
* Fix debug-mode compile error in ESP8266AVRISP
* Add -Wextra to CI (matches IDE "All" warnings)
* Allow cipher specification for BearSSL
BearSSL has many more ciphers than axTLS, but they are more compute intensive
and slower. Add an option to use only the same, limited security, axTLS ciphers
as well as allow users to specify any suite of ciphers they want using standard
BearSSL formats.
Fixes#5110
* Rename methods to avoid axtls references.
* Allow std::vector to set a list of allowed ciphers
For C++ afficionados, allow std::vectors to be passed in to the setCipher()
routine.
The BearSSL object will now keep a copy of any set ciphers and free on object
destruction. These custom lists should normally only be 1-4 entries long, so it
is not expected to be a memory hog having this extra copy.
* Allow GPIO 9 and 10 for waveform generation
While most ESP8266 modules use quad-io mode for their SPI flash ROM,
there are some which only use dual-io mode. Allow the unused pins
(GPIO 9 and 10) to have waveforms generated on them. Should the user try
this on a quad-io mode board, expect very bad things to happen.
* Add variant for 8285 to init GPIO 9/10
The 8285 only has 2-bit flash IO, so the other two pins can be used as
inputs (9/10). Set them to input to mirror the way other pins are set
up.
* Update waveform gen to only allow 9/10 on 8285
Update the common.h in both generic (remove TODO, it's done!) and the
8285 variant to make isFlashInterfacePin macro correct. Use that macro
to disable pins 9 and 10 in the common, non-8285 case.
As part of the "clear connection configuration for reused objects"
patch, a ::stop would reset the self-signed, trust anchors, etc.
WiFiClient, unfortunately, calls ::stop as part of the connection
process, so all of these settings were lost.
Now only clear the connection settings on ::stop if we've already
been connected.
Also update the github public key which changed yet again.
Fixes#5086
Sphinx 1.8.0 seems to always fail to build the docs due to interactions
with doctest.py. This means no CI builds can pass and no new PRs can be
applied.
Fix the version at 1.7.9 for now until the dependencies get updated to with 1.8.
The error seen is:
File "/home/travis/.local/lib/python2.7/site-packages/sphinx/highlighting.py", line 26, in <module>
from sphinx.ext import doctest
SyntaxError: unqualified exec is not allowed in function 'run' it contains a nested function with free variables (doctest.py, line 97)
The full traceback has been saved in /tmp/sphinx-err-e8JyUQ.log, if you want to report the issue to the developers.
Please also report this if it was a user error, so that a better error message can be provided next time.
A bug report can be filed in the tracker at <https://github.com/sphinx-doc/sphinx/issues>. Thanks!
With the changes in PR #5117, blink and other examples compile but the 8266
gets stuck in a reset loop. Undo the changes from that commit until we can
figure out the root cause and fix it.
boards generator updates:
* simplified mapping description: only flash and spiffs sizes are needed
* some ldscripts are renamed due to autogenerated names
* +2M/0, +2M/512K spiffs, +4M0
* reduce length of hidden strings in boards.txt (#5100, https://github.com/arduino/arduino-builder/issues/284)
* give more details in ldscripts (address, size, +rf-cal, +sdk-wifi-settings)
* Add information about the max_connection constructor argument.
* Correct information about max soft-AP connections.
* Add information about what happens when max_connection is reached.
* Correct terminology
* - Correct the valid range of max_connection to 1 - 8.
- Include reference.
* add stubs for more exception throw calls
Fixes https://github.com/esp8266/Arduino/issues/3358
* libc: make putc_r implementation weak
newlib provides its own implementation of _putc_r, which will call
_write_r (possibly after buffering). Make our implementation weak to
allow using the one from newlib.
Fixes https://github.com/esp8266/Arduino/issues/4630
* libc: fix incorrect return value of _write_r call
Should return number of bytes written, actually returned zero. This
resulted in std::cout going into failed state after the first write.
* tests: add test for output to std::cout