Amendments on November 11, 2022
Amendments on November 8, 2022
Amendments on November 7, 2022
serial: Fix maximum input length calculation when reading serial data
This looks like it was copied from somewhere else since 'n' was never
getting used to affect 'len', so len could be a very large number of
outstanding bytes from the serial port (such as during a ZModem
transfer) which would then cause FSRead to write too much data to
ibuf, trashing the session object and possibly other malloc'd data.
Take the smaller of the serial port outstanding count, and the number
of bytes left in ibuf, when reading from the serial port.
Also enable printing of serial port errors since it's useful to see
overruns when the port speed is too high.
Amendments on November 6, 2022
folder: Only yield every other SHA1 chunk read
Our reads are relatively small, so this will speed up calculation
without affecting other users/threads too heavily.
Also move around some lines of code that made more sense while
debugging the ZModem issue.
zmodem: Make our own copy of upload path in ZCreateReceiver
We were not owning this string, so in ZDestroy we were free()ing a
pointer behind the caller's back.
Amendments on October 26, 2022
serial: Add failsafe to avoid sending more than sizeof(obuf)
Some bug is causing obuflen to be more than sizeof(obuf), maybe
somewhere in the ZModem code.
Amendments on October 5, 2022
serial: Switch to async writes, fully reset driver between calls
Doing a synchronous write with PBWrite can cause the entire system
to block if the remote modem has sent an XOFF. Switch to an async
write and then poll for its completion, or timeout and kill the IO
if it's beyond our timeout. We busy loop during polling, but if it's
beyond 30 ticks we uthread_yield.
Also, if the remote has sent an XOFF, when we reset the modem, it
won't accept our new commands even after an ATZ and a SerReset.
Between calls, fully reset the driver by closing it and doing
Amendments on October 4, 2022
Amendments on October 3, 2022
Amendments on October 1, 2022
logger: There will only be one, stop passing object around
This also helps at shutdown to know when we can no longer log.
Amendments on September 27, 2022