-
-
Notifications
You must be signed in to change notification settings - Fork 156
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Update blockwise tests to catch edge-cases Updates the blockwise tests to catch the cases where the payload is smaller than 'maxPacket', but the overall packet size after the headers are added exceeds 'maxPacket' which causes an error to be thrown. Also adds checks to ensure that the response code is 2.05 for the tests that require it, so 5.00 errors can't sneak through. * Update automatic blockwise transfer logic Fix for blockwise transfer issues raised in #373 where a coap message could avoid being split into blocks, yet still be larger than the allowable size of 1280 bytes. This applies the recommended maximum payload size from RFC 7252 Section 4.6 of 1024 bytes, and allows it to be reduced in the config parameters as required. The error that this fixes was introduced in d727d43 and this attempts to keep the intent behind that commit, whilst fixing the technical flaws that it introduced. The 'IP_MTU' constant has been renamed to 'MAX_PAYLOAD' to more accurately describe what the it represents. The 'maxPacketSize' parameter has also been renamed to 'maxPayloadSize' for the same reason. Note that the renaming of the parameter is a potentially breaking change. * Perform extra checks on CoAP message size This fixes the logic for checking the maximum CoAP message size. The check is actually performed in the coap-packet repository in a default parameter on the `generate()` function, however the default value is not appropriate for all (if any) cases. The maximum size that a CoAP message can be is the IP MTU, minus the IP header and minus the UDP header. The value is not constant across all IP network stacks, so the CoAP specification recommends a maximum of 1152 bytes for cases where it is not known. The only way to know for sure is MTU path discovery, which is way outside of the scope of the project. This commit creates a parameter that allows the max packet size to be adjusted as a server parameter for cases where (for example) the server is running on a 6LoWPAN/Thread network and needs a lower maximum message size. Note that the logic for enforcing the size is just to throw an error and crash the server. However, since the maximum payload size is enforced a situation like that should never occur.
- Loading branch information
Showing
4 changed files
with
47 additions
and
24 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters