diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn index 763e59ce5d93fac52ddf1a2c8816d9382dcaa8d0..9aacee0b86d21cc4c3fb5b739cfbd2717cfdb5d1 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"); + } } } }