52 #define LOG_MODULE "coap" 53 #define LOG_LEVEL LOG_LEVEL_COAP 80 uint8_t *target,
size_t *len,
size_t max_len)
82 const uint8_t *payload = 0;
83 int pay_len = coap_get_payload(request, &payload);
85 if(!pay_len || !payload) {
86 coap_status_code = BAD_REQUEST_4_00;
87 coap_error_message =
"NoPayload";
91 if(request->block1_offset + pay_len > max_len) {
92 coap_status_code = REQUEST_ENTITY_TOO_LARGE_4_13;
93 coap_error_message =
"Message to big";
98 memcpy(target + request->block1_offset, payload, pay_len);
99 *len = request->block1_offset + pay_len;
102 if(coap_is_option(request, COAP_OPTION_BLOCK1)) {
103 LOG_DBG(
"Blockwise: block 1 request: Num: %"PRIu32
104 ", More: %u, Size: %u, Offset: %"PRIu32
"\n",
106 request->block1_more,
107 request->block1_size,
108 request->block1_offset);
110 coap_set_header_block1(response, request->block1_num, request->block1_more, request->block1_size);
111 if(request->block1_more) {
112 coap_set_status_code(response, CONTINUE_2_31);
CoAP module for block 1 handling
An implementation of the Constrained Application Protocol (RFC 7252).
int coap_block1_handler(coap_message_t *request, coap_message_t *response, uint8_t *target, size_t *len, size_t max_len)
Block 1 support within a coap-ressource.