mirror of
https://github.com/obgm/libcoap.git
synced 2026-11-09 10:32:53 +03:00
Merge pull request #665 from mrdeep1/observe_non_2xx
Observe: Make sure Observe option is not in non 2.xx response
This commit is contained in:
2 files changed
+8
No files matched your search
@@ -2830,6 +2830,11 @@ skip_handler:
|
||||
respond = no_response(pdu, response, session);
|
||||
if (respond != RESPONSE_DROP) {
|
||||
coap_mid_t mid = pdu->mid;
|
||||
if (COAP_RESPONSE_CLASS(response->code) != 2) {
|
||||
if (observe) {
|
||||
coap_remove_option(response, COAP_OPTION_OBSERVE);
|
||||
}
|
||||
}
|
||||
if (COAP_RESPONSE_CLASS(response->code) > 2) {
|
||||
if (observe)
|
||||
coap_delete_observer(resource, session, &token);
|
||||
|
||||
@@ -931,6 +931,9 @@ coap_notify_observers(coap_context_t *context, coap_resource_t *r,
|
||||
h(r, obs->session, NULL, obs->query, response);
|
||||
/* Check if lg_xmit generated and update PDU code if so */
|
||||
coap_check_code_lg_xmit(obs->session, response, r, obs->query);
|
||||
if (COAP_RESPONSE_CLASS(response->code) != 2) {
|
||||
coap_remove_option(response, COAP_OPTION_OBSERVE);
|
||||
}
|
||||
if (COAP_RESPONSE_CLASS(response->code) > 2) {
|
||||
coap_delete_observer(r, obs->session, &token);
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user