mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 00:27:45 +00:00
LibTLS: Add segmentation to the application buffer to avoid memcpy churn
We were previously doing a *lot* of unnecessary memcpy work when transferring large files. This patch addresses the issue by introducing a simple segmented buffer with no additional work when appending new data, or when transfering out of the buffer.
This commit is contained in:
parent
40f87f0954
commit
27a294547d
3 changed files with 42 additions and 4 deletions
|
@ -498,7 +498,7 @@ ssize_t TLSv12::handle_message(ReadonlyBytes buffer)
|
|||
} else {
|
||||
dbgln_if(TLS_DEBUG, "application data message of size {}", plain.size());
|
||||
|
||||
if (m_context.application_buffer.try_append(plain.data(), plain.size()).is_error()) {
|
||||
if (m_context.application_buffer.try_append(plain).is_error()) {
|
||||
payload_res = (i8)Error::DecryptionFailed;
|
||||
auto packet = build_alert(true, (u8)AlertDescription::DECRYPTION_FAILED_RESERVED);
|
||||
write_packet(packet);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue