From: Adam Malinowski Date: Mon, 3 Nov 2014 13:49:59 +0000 (+0100) Subject: Handle cancel request X-Git-Tag: submit/R4/20141115.054144~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3fbc0c58ea63228686da510af345d3d893d4f8db;p=platform%2Fcore%2Fsecurity%2Fcynara.git Handle cancel request This patch implements handling cancel request from client. Change-Id: I2b5537ef8b481f3a3160702d0a549945b8a11622 --- diff --git a/src/service/logic/Logic.cpp b/src/service/logic/Logic.cpp index dfb968a..037deb8 100644 --- a/src/service/logic/Logic.cpp +++ b/src/service/logic/Logic.cpp @@ -92,7 +92,21 @@ void Logic::execute(RequestContextPtr context, AgentRegisterRequestPtr request) } void Logic::execute(RequestContextPtr context, CancelRequestPtr request) { - // MOCKUP + CheckContextPtr checkContextPtr = m_checkRequestManager.getContext(context->responseQueue(), + request->sequenceNumber()); + if (!checkContextPtr) { + LOGD("Cancel request id: [%" PRIu16 "] with no matching request in progress.", + request->sequenceNumber()); + return; + } + + if (checkContextPtr->cancelled()) + return; + + checkContextPtr->cancel(); + checkContextPtr->m_agentTalker->cancel(); + + LOGD("Returning response for cancel request id: [%" PRIu16 "].", request->sequenceNumber()); context->returnResponse(context, std::make_shared(request->sequenceNumber())); } diff --git a/src/service/logic/Logic.h b/src/service/logic/Logic.h index a90c08c..dbbc7d6 100644 --- a/src/service/logic/Logic.h +++ b/src/service/logic/Logic.h @@ -84,6 +84,7 @@ private: ProtocolFrameSequenceNumber checkId, PolicyResult &result); bool pluginCheck(const RequestContextPtr &context, const PolicyKey &key, ProtocolFrameSequenceNumber checkId, PolicyResult &result); + void onPoliciesChanged(void); };