From 8cd75e9424369c930a1f77fe2fbecf6611ffc404 Mon Sep 17 00:00:00 2001
From: reinaortega <miguelangel.reinaortega@etsi.org>
Date: Thu, 28 Feb 2019 10:45:33 +0100
Subject: [PATCH] Correction for deregistration within
 f_cse_postamble_deleteResourcesCSE

Signed-off-by: reinaortega <miguelangel.reinaortega@etsi.org>
---
 LibOneM2M/OneM2M_Functions.ttcn | 30 ++++++++++++++++--------------
 1 file changed, 16 insertions(+), 14 deletions(-)

diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn
index 763e59c..9aacee0 100644
--- a/LibOneM2M/OneM2M_Functions.ttcn
+++ b/LibOneM2M/OneM2M_Functions.ttcn
@@ -1062,20 +1062,22 @@ module OneM2M_Functions {
 						}
 							
 						if(not(v_deregistrationPerformed)) {
-							//Deregistration by Registree (IUT) - Send trigger message for deregistration
-							v_utRequest.requestPrimitive.to_ := f_getLocalResourceAddress(vc_localRemoteCseIndex);
-							f_sendUtPrimitive(v_utRequest, v_action & f_getLocalResourceAddress(vc_localRemoteCseIndex));	
-							
-							tc_ac.start;
-							alt {
-								[] mccPortIn.receive(mw_request(mw_delete(f_getLocalResourceAddress(vc_localRemoteCseIndex)))) -> value vc_request {
-									tc_ac.stop;
-									f_processDeleteRequestPrimitive(vc_request.primitive.requestPrimitive);
-									mccPortIn.send(f_getMsgOutPrimitive(m_response(vc_response.primitive.responsePrimitive)));
-									log(__SCOPE__&": INFO: Deregistration performed successfully");
-								}
-								[] tc_ac.timeout {
-									log(__SCOPE__&": INFO: No deregistration performed");
+							if(vc_localRemoteCseIndex != -1) {
+								//Deregistration by Registree (IUT) - Send trigger message for deregistration
+								v_utRequest.requestPrimitive.to_ := f_getLocalResourceAddress(vc_localRemoteCseIndex);
+								f_sendUtPrimitive(v_utRequest, v_action & f_getLocalResourceAddress(vc_localRemoteCseIndex));	
+								
+								tc_ac.start;
+								alt {
+									[] mccPortIn.receive(mw_request(mw_delete(f_getLocalResourceAddress(vc_localRemoteCseIndex)))) -> value vc_request {
+										tc_ac.stop;
+										f_processDeleteRequestPrimitive(vc_request.primitive.requestPrimitive);
+										mccPortIn.send(f_getMsgOutPrimitive(m_response(vc_response.primitive.responsePrimitive)));
+										log(__SCOPE__&": INFO: Deregistration performed successfully");
+									}
+									[] tc_ac.timeout {
+										log(__SCOPE__&": INFO: No deregistration performed");
+									}
 								}
 							}
 						}
-- 
GitLab