When a TLS connection is closed by the server it usually sends a
notice. We see this incoming byte with lwip_ioctl and try to read
it. The read returns 0 but we keep trying anyway. Now, we quit
trying when we get zero back. If the connection was still alive
it'd either read a byte or delay until a byte could be read.
While trying to debug #3572, I noticed that I would frequently break in
the midst of gettimeofday and that the routine get_adjusted_boot_time
had to take and release locks. Furthermore, we don't want "adjusted"
boot time, which could go forwards or backwards depending on the
adjustment (such as setting the clock used by gettimeofday() to the network
time)
Before, there were two problems:
* Even if a pulsein was never constructed, supervisor_disable_tick
would occur during restart. This could cancel out a supervisor_enable_tick
from someplace else, with unexpected results.
* If two or more pulseins were constructed, each one would enable ticks,
but only the last one deinited (or the reset routine) would disable,
leaving ticks running indefinitely.
In my testing, it seemed that this led to the board sometimes stopping when
it should have auto-reloaded.
This re-points the submodule to my personal fork of esp-idf.
Users may need to `git submodule sync` in their existing trees when
this change occurs.
Adds just the following commit in esp-idf:
> esp_crt_bundle: Allow verify_callback to correct BADCERT_BAD_MD
* Initialize the EPaper display on the MagTag at start.
* Tweak the display send to take a const buffer.
* Correct Luma math
* Multiply the blue component, not add.
* Add all of the components together before dividing. This
reduces the impact of truncated division.
Closes#3688
With this change, I don't get the ESP_ERROR_CHECK failed repeatedly
running code that imports wifi. (I'm not getting a successful connection
but that's probably my own fault, such as a secrets problem)