Move init of SmackAuditLog to security-server.
authorBartlomiej Grzelewski <b.grzelewski@samsung.com>
Mon, 25 Nov 2013 10:24:46 +0000 (11:24 +0100)
committerBartlomiej Grzelewski <b.grzelewski@samsung.com>
Thu, 6 Feb 2014 16:13:23 +0000 (17:13 +0100)
In old implementation SmackAuditLog was always added to provider list
and it cause problem inside security-server-client library because
process that loaded this library was not allowed to access smack log
files.

[Issue#]      N/A
[Problem/Bug] Lots of SMACK deny logs in audit files.
[Cause]       Unecessary initialization of SmackAuditLog inside client-library.
[Solution]    Remove SmackAuditLog from client.

[Verification] Build, run tests.

Change-Id: I08b5bcfe0a539d73f8c38b0fe234476b5c679631

src/server/dpl/log/src/log.cpp
src/server/main/server2-main.cpp

index a91cdb2..ef67fb2 100644 (file)
@@ -125,13 +125,6 @@ LogSystem::LogSystem() :
 #else // BUILD_TYPE_DEBUG
     AddProvider(new DLOGLogProvider());
 #endif // BUILD_TYPE_DEBUG
-
-    AuditSmackLog * smackLog = new AuditSmackLog();
-    if (smackLog->Fail()) {
-        delete smackLog;
-    } else {
-        AddProvider(smackLog);
-    }
 }
 
 LogSystem::~LogSystem()
index afc18a9..8171078 100644 (file)
@@ -25,6 +25,7 @@
 #include <signal.h>
 
 #include <dpl/log/log.h>
+#include <dpl/log/audit-smack-log.h>
 #include <dpl/singleton.h>
 #include <dpl/singleton_safe_impl.h>
 
@@ -47,6 +48,15 @@ int main(void) {
     {
         SecurityServer::Singleton<SecurityServer::Log::LogSystem>::Instance().SetTag("SECURITY_SERVER");
 
+        // This provider may be used in security-server only.
+        // If we add it inside LogSystem constructor it also
+        // will be used by security-server-client library.
+        SecurityServer::Log::AuditSmackLog *smackLog = new SecurityServer::Log::AuditSmackLog;
+        if (smackLog->Fail())
+            delete smackLog;
+        else
+            SecurityServer::Singleton<SecurityServer::Log::LogSystem>::Instance().AddProvider(smackLog);
+
         sigset_t mask;
         sigemptyset(&mask);
         sigaddset(&mask, SIGTERM);