Skip to content

Commit c71b5ae

Browse files
committed
nanocoap: implement coap_reply_simple() using coap_build_reply_header()
1 parent 158c1b8 commit c71b5ae

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

sys/net/application_layer/nanocoap/nanocoap.c

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -607,23 +607,23 @@ ssize_t coap_reply_simple(coap_pkt_t *pkt,
607607
unsigned ct,
608608
const void *payload, size_t payload_len)
609609
{
610-
uint8_t *payload_start = buf + coap_get_total_hdr_len(pkt);
611-
uint8_t *bufpos = payload_start;
610+
void *payload_start;
611+
size_t payload_len_max;
612612

613-
if (payload_len) {
614-
bufpos += coap_put_option_ct(bufpos, 0, ct);
615-
*bufpos++ = 0xff;
613+
ssize_t header_len = coap_build_reply_header(pkt, code, buf, len, ct,
614+
payload ? &payload_start : NULL,
615+
&payload_len_max);
616+
if (payload == NULL || header_len <= 0) {
617+
return header_len;
616618
}
617619

618-
ssize_t res = coap_build_reply(pkt, code, buf, len,
619-
bufpos - payload_start + payload_len);
620-
621-
if (payload_len && (res > 0)) {
622-
assert(payload);
623-
memcpy(bufpos, payload, payload_len);
620+
if (payload_len > payload_len_max) {
621+
return -ENOBUFS;
624622
}
625623

626-
return res;
624+
memcpy(payload_start, payload, payload_len);
625+
626+
return header_len + payload_len;
627627
}
628628

629629
ssize_t coap_build_reply(coap_pkt_t *pkt, unsigned code,

0 commit comments

Comments
 (0)