85 uint8_t *target,
size_t *len,
size_t max_len)
87 const uint8_t *payload = 0;
88 int pay_len = coap_get_payload(request, &payload);
90 if(!pay_len || !payload) {
91 coap_status_code = BAD_REQUEST_4_00;
92#if COAP_MESSAGE_ON_ERROR
93 coap_error_message =
"NoPayload";
98 if(request->block1_offset + pay_len > max_len) {
99 coap_status_code = REQUEST_ENTITY_TOO_LARGE_4_13;
100#if COAP_MESSAGE_ON_ERROR
101 coap_error_message =
"Message to big";
107 memcpy(target + request->block1_offset, payload, pay_len);
108 *len = request->block1_offset + pay_len;
111 if(coap_is_option(request, COAP_OPTION_BLOCK1)) {
112 LOG_DBG(
"Blockwise: block 1 request: Num: %"PRIu32
113 ", More: %u, Size: %u, Offset: %"PRIu32
"\n",
115 request->block1_more,
116 request->block1_size,
117 request->block1_offset);
119 coap_set_header_block1(response, request->block1_num,
120 request->block1_more, request->block1_size);
121 if(request->block1_more) {
122 coap_set_status_code(response, CONTINUE_2_31);
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 resource.