Closed etakata closed 2 years ago
Approved :+1: Can you please prepare a PR?
CC @pennam might be worth to integrate this change over at the ArduinoIoTCloud stack.
@aentinger
Thank you:)
I opened the pull request.-->https://github.com/arduino-libraries/ArduinoBearSSL/pull/61
Closing, due to merge of #61.
Hello team,
I failed to send a long data(> 512bytes), using BearSSLClient::write(const uint8_t *buf, size_t size)
Suppose that buf stored 600 bytes data and
br_sslio_write()
could send 512 bytes at maximum each call.Call
write(buf, 600)
Expected behavior
write()
sends 600 bytes and returns 600Current behavior
write()
sends 1024 bytes and returns 1024Detail:
write(buf, 600)
while
loopbr_sslio_write()
sends 512 bytes from&buf[0]
and returns 512, buf points at &buf[512], written = 512written < size
is truewhile
loopbr_sslio_write()
sends 512 bytes from&buf[512]
and returns 512, buf points at &buf[1024], written = 1024written < size
is false and escaping from the loopwrite()
returns 1024To fix this issue, I'd like to change here from:
int result = br_sslio_write(&_ioc, buf, size);
to:int result = br_sslio_write(&_ioc, buf, size - written);