mirror of
https://github.com/oliverschmidt/contiki.git
synced 2024-12-21 19:29:18 +00:00
Made Block1 support dependent on resource handlers.\nAdded flags and target for minimal-net.
This commit is contained in:
parent
3a3d457a57
commit
e794088d19
@ -153,7 +153,14 @@ handle_incoming_data(void)
|
||||
if (coap_error_code==NO_ERROR)
|
||||
{
|
||||
/* Apply blockwise transfers. */
|
||||
if ( IS_OPTION(message, COAP_OPTION_BLOCK2) )
|
||||
if ( IS_OPTION(message, COAP_OPTION_BLOCK1) && response->code<BAD_REQUEST_4_00 && !IS_OPTION(response, COAP_OPTION_BLOCK1) )
|
||||
{
|
||||
PRINTF("Block1 NOT IMPLEMENTED\n");
|
||||
|
||||
coap_error_code = NOT_IMPLEMENTED_5_01;
|
||||
coap_error_message = "NoBlock1Support";
|
||||
}
|
||||
else if ( IS_OPTION(message, COAP_OPTION_BLOCK2) )
|
||||
{
|
||||
/* unchanged new_offset indicates that resource is unaware of blockwise transfer */
|
||||
if (new_offset==block_offset)
|
||||
@ -207,8 +214,8 @@ handle_incoming_data(void)
|
||||
} /* if (service callback) */
|
||||
|
||||
} else {
|
||||
coap_error_code = MEMORY_ALLOCATION_ERROR;
|
||||
coap_error_message = "Transaction buffer allocation failed";
|
||||
coap_error_code = SERVICE_UNAVAILABLE_5_03;
|
||||
coap_error_message = "NoFreeTraBuffer";
|
||||
} /* if (transaction buffer) */
|
||||
}
|
||||
else
|
||||
|
@ -697,10 +697,12 @@ coap_parse_message(void *packet, uint8_t *data, uint16_t data_len)
|
||||
PRINTF("Block2 [%lu%s (%u B/blk)]\n", coap_pkt->block2_num, coap_pkt->block2_more ? "+" : "", coap_pkt->block2_size);
|
||||
break;
|
||||
case COAP_OPTION_BLOCK1:
|
||||
PRINTF("Block1 NOT IMPLEMENTED\n");
|
||||
/*TODO implement */
|
||||
coap_error_message = "Blockwise POST/PUT not supported";
|
||||
return NOT_IMPLEMENTED_5_01;
|
||||
coap_pkt->block1_num = parse_int_option(current_option, option_len);
|
||||
coap_pkt->block1_more = (coap_pkt->block1_num & 0x08)>>3;
|
||||
coap_pkt->block1_size = 16 << (coap_pkt->block1_num & 0x07);
|
||||
coap_pkt->block1_offset = (coap_pkt->block1_num & ~0x0000000F)<<(coap_pkt->block1_num & 0x07);
|
||||
coap_pkt->block1_num >>= 4;
|
||||
PRINTF("Block1 [%lu%s (%u B/blk)]\n", coap_pkt->block1_num, coap_pkt->block1_more ? "+" : "", coap_pkt->block1_size);
|
||||
break;
|
||||
case COAP_OPTION_IF_NONE_MATCH:
|
||||
coap_pkt->if_none_match = 1;
|
||||
@ -779,7 +781,11 @@ coap_set_status_code(void *packet, unsigned int code)
|
||||
unsigned int
|
||||
coap_get_header_content_type(void *packet)
|
||||
{
|
||||
return ((coap_packet_t *)packet)->content_type;
|
||||
coap_packet_t *const coap_pkt = (coap_packet_t *) packet;
|
||||
|
||||
if (!IS_OPTION(coap_pkt, COAP_OPTION_CONTENT_TYPE)) return -1;
|
||||
|
||||
return coap_pkt->content_type;
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -1,4 +1,4 @@
|
||||
all: rest-server-example coap-client-example
|
||||
all: rest-server-example coap-client-example plugtest-server
|
||||
|
||||
CONTIKI=../..
|
||||
CFLAGS += -DPROJECT_CONF_H=\"project-conf.h\"
|
||||
@ -25,6 +25,8 @@ else
|
||||
${info INFO: compiling without RPL}
|
||||
UIP_CONF_RPL=0
|
||||
CFLAGS += -DUIP_CONF_ND6_DEF_MAXDADNS=0
|
||||
CFLAGS += -DHARD_CODED_ADDRESS=\"fdfd::10\"
|
||||
CFLAGS += -DUIP_CONF_BUFFER_SIZE=1280
|
||||
endif
|
||||
|
||||
# linker optimizations
|
||||
@ -78,3 +80,6 @@ connect-router: $(CONTIKI)/tools/tunslip6
|
||||
|
||||
connect-router-cooja: $(CONTIKI)/tools/tunslip6
|
||||
sudo $(CONTIKI)/tools/tunslip6 -a 127.0.0.1 aaaa::1/64
|
||||
|
||||
tap0up:
|
||||
sudo ip address add fdfd::1/64 dev tap0
|
||||
|
Loading…
Reference in New Issue
Block a user