Return Truncate error instead of looping forever on udp send. #3804
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue
If the udpsocket send methods are given a buffer larger than the udp payload buffer the methods loop await forever trying to send and getting
BufferFull
.Fix
Check and early-return if udp::send methods receive a buffer too large to ever be sent.
Details
smoltcp used to distinguish these but stopped here. I'm not sure why. You can still the the remnant in the now invalid comment for
smoltcp::socket::udp::Socket::send
mentioningTruncate
. I don't know if it would be preferred to update smoltcp or leave the fix here inembassy-net
.