net.c: dynamically grow PDU size for TCP

This change was provided by Jean-Claude Michelou to fix issue #123 [1].
It dynamically grows a partial TCP PDU during read.

[1] https://github.com/obgm/libcoap/issues/123
This commit is contained in:
Olaf Bergmann committed 2017-12-22 13:56:48 +01:00
1 parent d3b5535960
commit 8e011ec500
1 file changed
+4
+4
View File
@@ -1160,6 +1160,10 @@ coap_read_session(coap_context_t *ctx, coap_session_t *session, coap_tick_t now)
bytes_read = -1;
break;
}
if (session->partial_pdu->alloc_size < size && !coap_pdu_resize(session->partial_pdu, size)) {
bytes_read = -1;
break;
}
session->partial_pdu->hdr_size = (uint8_t)hdr_size;
session->partial_pdu->used_size = size;
memcpy(session->partial_pdu->token - hdr_size, session->read_header, hdr_size);