From 4bda3accc3e400b6ec23e887a40d78f42412744c Mon Sep 17 00:00:00 2001 From: Sashi Penta Date: Sat, 15 Nov 2014 09:32:55 -0800 Subject: [PATCH] Support resource type for multicast subscription Change-Id: I001a62601a70dbc7d5e9b3480e1134bdbe3dfde4 Signed-off-by: Sashi Penta --- resource/csdk/occoap/src/occoap.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/resource/csdk/occoap/src/occoap.c b/resource/csdk/occoap/src/occoap.c index 5f3004f..60357ac 100644 --- a/resource/csdk/occoap/src/occoap.c +++ b/resource/csdk/occoap/src/occoap.c @@ -312,7 +312,6 @@ uint32_t GetTime(float afterSeconds) //This function is called back by libcoap when a response is received static void HandleCoAPResponses(struct coap_context_t *ctx, const coap_queue_t * rcvdResponse) { - uint8_t haltResponse = 0; OCResponse * response = NULL; OCCoAPToken rcvdToken; OCClientResponse clientResponse; @@ -516,7 +515,7 @@ static void HandleCoAPResponses(struct coap_context_t *ctx, (const char *)response->cbNode->filterResourceType)!=0) { //Ignore presence callback if resource type does not match filter. - haltResponse = 1; + goto exit; } } } @@ -562,13 +561,22 @@ static void HandleCoAPResponses(struct coap_context_t *ctx, goto exit; } } + + if(resourceTypeName && response->cbNode->filterResourceType) + { + if(strcmp(resourceTypeName, + (const char *)response->cbNode->filterResourceType)!=0) + { + //Ignore presence callback if resource type does not match filter. + goto exit; + } + } + } #endif } - if(!haltResponse) - { - HandleStackResponses(response); - } + + HandleStackResponses(response); } else if(!cbNode && isObserveNotification) { -- 2.7.4