Add logs to license-manager-agent 73/119573/1
authorBartlomiej Grzelewski <b.grzelewski@samsung.com>
Fri, 17 Mar 2017 08:39:58 +0000 (09:39 +0100)
committerBartlomiej Grzelewski <b.grzelewski@samsung.com>
Fri, 17 Mar 2017 09:40:19 +0000 (10:40 +0100)
Change-Id: I7f5709f98d3ba448e0ec39f9f5b4cfc419eef187

src/license-manager/agent/CMakeLists.txt
src/license-manager/agent/agent_logic.cpp [new file with mode: 0644]
src/license-manager/agent/agent_logic.h

index 8eade268e349e9928cee4d4e9a0fa5d61df0d765..3368bc9722f04e387f44eaaaea251b6205c67dfd 100644 (file)
@@ -27,11 +27,13 @@ PKG_CHECK_MODULES(AGENT_DEP
 
 SET(AGENT_SOURCES
     ${LM_DIR}/agent/agent.cpp
+    ${LM_DIR}/agent/agent_logic.cpp
     ${LM_DIR}/agent/alog.cpp
     ${LM_DIR}/agent/main.cpp
     )
 
 INCLUDE_DIRECTORIES(
+    ${PROJECT_SOURCE_DIR}/src/include
     ${LM_DIR}/common
     ${LM_DIR}/agent
     SYSTEM
@@ -44,7 +46,7 @@ LINK_DIRECTORIES(${AGENT_DEP_LIBRARY_DIRS})
 
 ADD_EXECUTABLE(${TARGET_LM_AGENT} ${AGENT_SOURCES})
 
-TARGET_LINK_LIBRARIES(${TARGET_LM_AGENT} ${AGENT_DEP_LIBRARIES})
+TARGET_LINK_LIBRARIES(${TARGET_LM_AGENT} ${AGENT_DEP_LIBRARIES} ${TARGET_CLIENT})
 
 INSTALL(TARGETS ${TARGET_LM_AGENT} DESTINATION ${BIN_INSTALL_DIR})
 
diff --git a/src/license-manager/agent/agent_logic.cpp b/src/license-manager/agent/agent_logic.cpp
new file mode 100644 (file)
index 0000000..7fe77c8
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ *  Copyright (c) 2017 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License
+ */
+/**
+ * @file        src/license-manager/agent/agent_logic.cpp
+ * @author      Bartlomiej Grzelewski <b.grzelewski@samsung.com>
+ * @brief       This is the place where verification should take place
+ */
+#include <sstream>
+#include <string>
+
+#include <alog.h>
+
+#include <agent_logic.h>
+#include <app-runtime.h>
+
+namespace LicenseManager {
+
+std::string AgentLogic::process(const std::string &data) {
+    std::stringstream ss(data);
+    std::string smack, privilege;
+    int uid;
+    ss >> smack >> uid >> privilege;
+    char *pkgId = nullptr, *appId = nullptr;
+
+    security_manager_identify_privilege_provider(
+            privilege.c_str(),
+            uid,
+            &pkgId,
+            &appId);
+
+    ALOGD("App: %s Uid: %d Priv: %s", smack.c_str(), uid, privilege.c_str());
+    ALOGD("Privilege: %s is Provided by: %s/%s", privilege.c_str(), appId, pkgId);
+    free(pkgId);
+    free(appId);
+
+    std::stringstream out;
+    out << 1;
+    return out.str();
+}
+
+} // namespace LicenseManager
+
index 1eff4b9a492e13dc155ad36e875c43e95cb9ec34..a44d5fae6f8fbb33bdef74290c0b8e2cf11feabb 100644 (file)
  * @brief       This is the place where verification should take place
  */
 #pragma once
-#include <sstream>
 #include <string>
 
-#include <alog.h>
-
 namespace LicenseManager {
 
 struct AgentLogic {
     AgentLogic() {}
 
-    std::string process(const std::string &data) {
-        std::stringstream ss(data);
-        std::string smack, privilege;
-        int uid;
-        ss >> smack >> uid >> privilege;
-
-        ALOGD("App: %s Uid: %d Priv: %s", smack.c_str(), uid, privilege.c_str());
-
-        std::stringstream out;
-        out << 1;
-        return out.str();
-    }
+    std::string process(const std::string &data);
 
     virtual ~AgentLogic(){}
 };