From f83f0358552a56facc11e6ce8e9f9842012c22a2 Mon Sep 17 00:00:00 2001 From: Atis Elsts Date: Sat, 8 Apr 2017 15:02:52 +0100 Subject: [PATCH] Keep CoAP 'observe' option length <= 3 bytes --- apps/er-coap/er-coap-observe.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/apps/er-coap/er-coap-observe.c b/apps/er-coap/er-coap-observe.c index 3f3dc34ec..311f08ac8 100644 --- a/apps/er-coap/er-coap-observe.c +++ b/apps/er-coap/er-coap-observe.c @@ -249,6 +249,8 @@ coap_notify_observers_sub(resource_t *resource, const char *subpath) if(notification->code < BAD_REQUEST_4_00) { coap_set_header_observe(notification, (obs->obs_counter)++); + /* mask out to keep the CoAP observe option length <= 3 bytes */ + obs->obs_counter &= 0xffffff; } coap_set_token(notification, obs->token, obs->token_len); @@ -276,6 +278,8 @@ coap_observe_handler(resource_t *resource, void *request, void *response) coap_req->uri_path, coap_req->uri_path_len); if(obs) { coap_set_header_observe(coap_res, (obs->obs_counter)++); + /* mask out to keep the CoAP observe option length <= 3 bytes */ + obs->obs_counter &= 0xffffff; /* * Following payload is for demonstration purposes only. * A subscription should return the same representation as a normal GET.