net: lwm2m: Fix how payload offset is calculated
Instead of manually computing payload offset, let the CoAP library do the work, and use the payload pointer returned by the `coap_packet_get_payload()` function instead. Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
This commit is contained in:
parent
0bc4e7619b
commit
b369156e28
3 changed files with 11 additions and 5 deletions
|
@ -3653,6 +3653,7 @@ static int handle_request(struct coap_packet *request,
|
|||
uint16_t payload_len = 0U;
|
||||
bool last_block = false;
|
||||
bool ignore = false;
|
||||
const uint8_t *payload_start;
|
||||
|
||||
/* set CoAP request / message */
|
||||
msg->in.in_cpkt = request;
|
||||
|
@ -3823,8 +3824,12 @@ static int handle_request(struct coap_packet *request,
|
|||
}
|
||||
|
||||
/* setup incoming data */
|
||||
msg->in.offset = msg->in.in_cpkt->hdr_len + msg->in.in_cpkt->opt_len;
|
||||
coap_packet_get_payload(msg->in.in_cpkt, &payload_len);
|
||||
payload_start = coap_packet_get_payload(msg->in.in_cpkt, &payload_len);
|
||||
if (payload_len > 0) {
|
||||
msg->in.offset = payload_start - msg->in.in_cpkt->data;
|
||||
} else {
|
||||
msg->in.offset = msg->in.in_cpkt->offset;
|
||||
}
|
||||
|
||||
/* Check for block transfer */
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue