Corrected cancellation request for SubscribeCOV decoding.
This commit is contained in:
+7
-1
@@ -366,6 +366,8 @@ int cov_subscribe_decode_service_request(uint8_t * apdu,
|
|||||||
data->monitoredObjectIdentifier.type = decoded_type;
|
data->monitoredObjectIdentifier.type = decoded_type;
|
||||||
} else
|
} else
|
||||||
return -1;
|
return -1;
|
||||||
|
/* optional parameters - if missing, means cancellation */
|
||||||
|
if (len > apdu_len) {
|
||||||
/* tag 2 - issueConfirmedNotifications - optional */
|
/* tag 2 - issueConfirmedNotifications - optional */
|
||||||
if (decode_is_context_tag(&apdu[len], 2)) {
|
if (decode_is_context_tag(&apdu[len], 2)) {
|
||||||
data->cancellationRequest = false;
|
data->cancellationRequest = false;
|
||||||
@@ -375,8 +377,9 @@ int cov_subscribe_decode_service_request(uint8_t * apdu,
|
|||||||
data->issueConfirmedNotifications =
|
data->issueConfirmedNotifications =
|
||||||
decode_context_boolean(&apdu[len]);
|
decode_context_boolean(&apdu[len]);
|
||||||
len += len_value;
|
len += len_value;
|
||||||
} else
|
} else {
|
||||||
data->cancellationRequest = true;
|
data->cancellationRequest = true;
|
||||||
|
}
|
||||||
/* tag 3 - lifetime - optional */
|
/* tag 3 - lifetime - optional */
|
||||||
if (decode_is_context_tag(&apdu[len], 3)) {
|
if (decode_is_context_tag(&apdu[len], 3)) {
|
||||||
len +=
|
len +=
|
||||||
@@ -386,6 +389,9 @@ int cov_subscribe_decode_service_request(uint8_t * apdu,
|
|||||||
data->lifetime = decoded_value;
|
data->lifetime = decoded_value;
|
||||||
} else
|
} else
|
||||||
data->lifetime = 0;
|
data->lifetime = 0;
|
||||||
|
} else {
|
||||||
|
data->cancellationRequest = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return len;
|
return len;
|
||||||
|
|||||||
Reference in New Issue
Block a user