summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/common/command-id.h4
-rw-r--r--src/service/logic.cpp7
-rw-r--r--src/service/logic.h2
-rw-r--r--src/service/ocsp-service.cpp11
4 files changed, 17 insertions, 7 deletions
diff --git a/src/common/command-id.h b/src/common/command-id.h
index e154e1a..1657e27 100644
--- a/src/common/command-id.h
+++ b/src/common/command-id.h
@@ -25,7 +25,9 @@ namespace CCHECKER {
enum class CommandId : int {
CC_OCSP_SYN = 0x01,
- CC_OCSP_ACK = 0x02
+ CC_OCSP_ACK = 0x02,
+
+ CC_OCSP_ERR = -0x01
};
} // namespace CCHECKER
diff --git a/src/service/logic.cpp b/src/service/logic.cpp
index 538c2e7..a7d8fdf 100644
--- a/src/service/logic.cpp
+++ b/src/service/logic.cpp
@@ -233,10 +233,13 @@ error_t Logic::setup()
LogDebug("Register package event handler success");
+ return NO_ERROR;
+}
+
+void Logic::run()
+{
LogDebug("Running the main loop");
g_main_loop_run(m_loop);
-
- return NO_ERROR;
}
int Logic::pkgmgrinfo_event_handler_static(
diff --git a/src/service/logic.h b/src/service/logic.h
index 7d48124..834e172 100644
--- a/src/service/logic.h
+++ b/src/service/logic.h
@@ -66,6 +66,7 @@ class Logic {
Logic(void);
virtual ~Logic(void);
error_t setup(void);
+ void run(void);
virtual void clean(void);
static void connman_callback(GDBusProxy *proxy,
@@ -133,7 +134,6 @@ class Logic {
bool call_ui(const app_t &app);
-
// main event loop data type
GMainLoop *m_loop;
diff --git a/src/service/ocsp-service.cpp b/src/service/ocsp-service.cpp
index 63a3c0a..a028048 100644
--- a/src/service/ocsp-service.cpp
+++ b/src/service/ocsp-service.cpp
@@ -42,8 +42,8 @@ void OcspService::onMessageProcess(const ConnShPtr &connection)
auto in = connection->receive();
connection->send(this->process(connection, in));
- if (m_logic.setup() != NO_ERROR)
- throw std::logic_error("Cannot setup logic.");
+ // Run gmainloop for event listening.
+ m_logic.run();
LogDebug("Finish processing message on ocsp service.");
}
@@ -59,7 +59,12 @@ RawBuffer OcspService::process(const ConnShPtr &, RawBuffer &data)
LogInfo("Request dispatch on ocsp-service.");
switch (cid) {
case CommandId::CC_OCSP_SYN: {
- LogDebug("Success to get SYN cmd. reply ACK cmd.");
+ if (m_logic.setup() != NO_ERROR) {
+ BinaryQueue::Serialize(CommandId::CC_OCSP_ERR).pop();
+ throw std::logic_error("Cannot setup logic.");
+ }
+
+ LogDebug("Success to receive SYN and setup. reply ACK cmd.");
return BinaryQueue::Serialize(CommandId::CC_OCSP_ACK).pop();
}
case CommandId::CC_OCSP_ACK: