refactoring: remove tslog-related functions from "internal" 01/202901/5
authorAdrian Szyndela <adrian.s@samsung.com>
Fri, 5 Apr 2019 09:32:44 +0000 (11:32 +0200)
committerAdrian Szyndela <adrian.s@samsung.com>
Thu, 11 Apr 2019 15:16:45 +0000 (17:16 +0200)
This removes tslog-related functions from internal.{cpp,h}.
Needed functionality is moved to tslog, the rest is eliminated,
as obsolete.

Additionally, RAII object LogLock is provided to make it look
prettier in places where transaction_guard for __internal_enter and
__internal_exit was used.

Change-Id: I48e5b9c5bf352eb03c50b2a4b4c109c2df0c11bc

20 files changed:
src/internal/internal.cpp
src/internal/internal.h
src/internal/serializer.cpp
src/internal/tslog.cpp
src/internal/tslog.hpp
src/libdbuspolicy1.cpp
src/stest_load_perf.cpp
src/stest_performance.cpp
src/test-libdbuspolicy1-access-deny-gdi.cpp
src/test-libdbuspolicy1-access-deny.cpp
src/test-libdbuspolicy1-method-gdi.cpp
src/test-libdbuspolicy1-method.cpp
src/test-libdbuspolicy1-ownership-deny-gdi.cpp
src/test-libdbuspolicy1-ownership-deny.cpp
src/test-libdbuspolicy1-ownership-gdi.cpp
src/test-libdbuspolicy1-ownership.cpp
src/test-libdbuspolicy1-send_destination_prefix-deny-gdi.cpp
src/test-libdbuspolicy1-send_destination_prefix-deny.cpp
src/test-libdbuspolicy1-signal-gdi.cpp
src/test-libdbuspolicy1-signal.cpp

index 8020199..c0bea31 100644 (file)
@@ -36,7 +36,7 @@ int __internal_init_serialized(BusType bus_type, const char *config_name, const
 
        auto ok = policy_checker(bus_type).initDb(config_name, serialized_filename);
        if (tslog::enabled())
-               memory_dump(bus_type);
+               policy_checker(bus_type).printContent();
        return ok ? 0 : -1;
 }
 
@@ -49,35 +49,3 @@ int __internal_init_auto_serialized(BusType bus_type, const char *config_name)
 {
        return __internal_init_serialized(bus_type, config_name, std::string(config_name).append(".serialized").c_str());
 }
-
-pthread_mutex_t g_mutex = PTHREAD_MUTEX_INITIALIZER;
-
-void memory_dump(BusType bus_type)
-{
-       policy_checker(bus_type).printContent();
-}
-
-void __internal_init_once()
-{
-       tslog::init();
-}
-
-void __internal_init_flush_logs()
-{
-       if (tslog::enabled()) {
-               pthread_mutex_lock(&g_mutex);
-               std::cout << std::flush;
-               pthread_mutex_unlock(&g_mutex);
-       }
-}
-
-void __internal_enter()
-{
-       if (tslog::enabled())
-               pthread_mutex_lock(&g_mutex);
-}
-void __internal_exit()
-{
-       if (tslog::enabled())
-               pthread_mutex_unlock(&g_mutex);
-}
index 3a91c7a..11302f3 100644 (file)
@@ -61,19 +61,4 @@ int __internal_init_serialized(BusType bus_type,
  */
 int __internal_init_auto_serialized(BusType bus_type, const char* const config_name);
 
-/** Inits tslog.  */
-void __internal_init_once(void);
-
-/** Dumps memory */
-void memory_dump(BusType bus_type);
-
-/** Flushes logs. */
-void __internal_init_flush_logs(void);
-
-/** Enables logger mutex */
-void __internal_enter(void);
-
-/** Disables logger mutex */
-void __internal_exit(void);
-
 #endif
index 3cc7f41..5d438c8 100644 (file)
@@ -18,7 +18,7 @@
 #include "internal.h"
 #include "naive_policy_checker.hpp"
 #include "serializer.hpp"
-#include <fstream>
+#include "tslog.hpp"
 #include <iostream>
 #include <string>
 
@@ -117,7 +117,7 @@ uint8_t* Serializer::serialize(const ldp_xml::StorageBackendXML &db, size_t &siz
 
 uint8_t* Serializer::serialize(const std::string config_path, size_t &size) {
        // SYSTEM_BUS here because something had to be choosen
-       __internal_init_once();
+       tslog::init();
        ldp_xml::StorageBackendXML xmlStorage;
 
        if (!xmlStorage.init(config_path.c_str())) {
index 6e3a03e..aa5a5f9 100644 (file)
 #include <cstring>
 
 namespace tslog {
-int8_t g_verbosity;
-}
 
-bool tslog::get_log_env(char const *name) {
+int8_t g_verbosity{-1};
+pthread_mutex_t g_mutex = PTHREAD_MUTEX_INITIALIZER;
+
+bool get_log_env(char const *name) {
        char const *ldp_log_mode = getenv(name);
        return ldp_log_mode && '0' != *ldp_log_mode;
 }
 
-void tslog::init() {
+void init() {
        g_verbosity = get_log_env("LDP_LOG") ? get_log_env("LDP_VERBOSE") : -1;
 }
 
-bool tslog::enabled() { return g_verbosity >= 0; }
-bool tslog::verbose() { return g_verbosity > 0; }
+bool enabled() { return g_verbosity >= 0; }
+bool verbose() { return g_verbosity > 0; }
+
+void flush() {
+       if (tslog::enabled()) {
+               pthread_mutex_lock(&g_mutex);
+               std::cout << std::flush;
+               pthread_mutex_unlock(&g_mutex);
+       }
+}
 
-void tslog::logError(const std::string &error)
+void logError(const std::string &error)
 {
        log(error, "\n");
        LOGE("%s", error.c_str());
 }
 
-void tslog::logWarning(const std::string &warning)
+void logWarning(const std::string &warning)
 {
        log(warning, "\n");
        LOGW("%s", warning.c_str());
 }
 
-namespace tslog {
-       std::ostream &operator<<(std::ostream &stream, const print_errno &p) {
-               char buf[256];
-               return stream << strerror_r(p.err, buf, sizeof(buf));
-       }
+std::ostream &operator<<(std::ostream &stream, const print_errno &p) {
+       char buf[256];
+       return stream << strerror_r(p.err, buf, sizeof(buf));
+}
+
+LogLock::LogLock() {
+       locked = tslog::enabled();
+       if (locked)
+               pthread_mutex_lock(&g_mutex);
 }
+
+LogLock::~LogLock() {
+       if (locked)
+               pthread_mutex_unlock(&g_mutex);
+}
+
+} // namespace tslog
index c216d8b..bcf6cf6 100644 (file)
@@ -41,6 +41,8 @@ namespace tslog
        /** Checks if verbosity is enabled */
        bool verbose();
 
+       void flush();
+
        void logError(const std::string &error);
        void logWarning(const std::string &warning);
 
@@ -61,6 +63,16 @@ namespace tslog
        };
 
        std::ostream &operator<<(std::ostream &stream, const print_errno &p);
+
+       /* Use this class to ensure that logs from a given function are not interlaced
+        * with logs from another function
+        */
+       class LogLock {
+               bool locked;
+       public:
+               LogLock();
+               ~LogLock();
+       };
 }
 
 #endif
index a6a767d..e85fdd5 100644 (file)
@@ -16,8 +16,8 @@
 
 
 #include "internal/internal.h"
-#include "internal/transaction_guard.hpp"
 #include "internal/naive_policy_checker.hpp"
+#include "internal/tslog.hpp"
 #include "kdbus.h"
 #include "libdbuspolicy1-private.h"
 
@@ -88,7 +88,7 @@ static void dbuspolicy_init_once_locked(void)
        g_udesc.gid = getgid();
        snprintf(g_udesc.label, r + 1 /* additional byte for \0 */, "%s", buf);
 
-       __internal_init_once();
+       tslog::init();
 }
 
 static std::shared_ptr<const char> bus_type_from_path(const char *bus_path, BusType &bus_type)
@@ -244,7 +244,7 @@ DBUSPOLICY1_EXPORT void* dbuspolicy1_init_shared(const char *bus_path, int fd)
                }
        }
 
-       __internal_init_flush_logs();
+       tslog::flush();
 
        return result;
 }
@@ -308,9 +308,7 @@ DBUSPOLICY1_EXPORT int dbuspolicy1_check_out(void* configuration,
        if (message_type == DBUSPOLICY_MESSAGE_TYPE_SIGNAL && !destination)
                return 1;
 
-       __internal_enter();
-       auto internal_enter_guard = transaction_guard::makeGuard([] () { __internal_exit(); });
-
+       tslog::LogLock log_lock;
        auto kconn = KCONN(configuration);
        KdbusConnectionInfo destinationInfo(kconn->conn);
        int r;
@@ -356,9 +354,7 @@ DBUSPOLICY1_EXPORT int dbuspolicy1_check_in(void* configuration,
                                                                                        int         /*reply_serial*/,
                                                                                        int         /*requested_reply*/)
 {
-       __internal_enter();
-       auto internal_enter_guard = transaction_guard::makeGuard([] () { __internal_exit(); });
-
+       tslog::LogLock log_lock;
        auto kconn = KCONN(configuration);
        KdbusConnectionInfo info(kconn->conn);
        int r;
@@ -389,11 +385,8 @@ DBUSPOLICY1_EXPORT int dbuspolicy1_check_in(void* configuration,
 
 DBUSPOLICY1_EXPORT int dbuspolicy1_can_own(void* configuration, const char* const service)
 {
+       tslog::LogLock log_lock;
        auto kconn = KCONN(configuration);
-
-       __internal_enter();
-       auto internal_enter_guard = transaction_guard::makeGuard([] () { __internal_exit(); });
-
        return decisionToRetCode(policy_checker(kconn->bus_type).check(g_udesc.uid,
                                                                                                                                   g_udesc.gid,
                                                                                                                                   g_udesc.label,
index 44485e0..2193f7a 100644 (file)
@@ -5,6 +5,7 @@
 #include "internal/serializer.hpp"
 #include "internal/storage_backend_serialized.hpp"
 #include "internal/storage_backend_serialized.hpp"
+#include "internal/tslog.hpp"
 #include "libdbuspolicy1-private.h"
 #include <dbuspolicy1/libdbuspolicy1.h>
 #include <getopt.h>
@@ -162,7 +163,7 @@ int main(int argc, char *argv[])
                return 1;
        }
 
-       __internal_init_once();
+       tslog::init();
        run_tests(input_filename.c_str(), binary_file.c_str(), count, choice, verify);
 
        return 0;
index 4c3265e..9b2e7ba 100644 (file)
@@ -5,6 +5,7 @@
 #include "internal/serializer.hpp"
 #include "internal/storage_backend_serialized.hpp"
 #include "internal/storage_backend_serialized.hpp"
+#include "internal/tslog.hpp"
 #include "libdbuspolicy1-private.h"
 #include <dbuspolicy1/libdbuspolicy1.h>
 #include <getopt.h>
@@ -253,7 +254,7 @@ int main(int argc, char *argv[])
                return 1;
        }
 
-       __internal_init_once();
+       tslog::init();
        run_tests(input_filename.c_str(), verify, count);
 
        return 0;
index 75acec7..d391b8f 100644 (file)
@@ -5,6 +5,7 @@
 #include "internal/serializer.hpp"
 #include "internal/storage_backend_serialized.hpp"
 #include "internal/storage_backend_xml.hpp"
+#include "internal/tslog.hpp"
 #include <dbuspolicy1/libdbuspolicy1.h>
 #include <map>
 #include <string>
@@ -186,7 +187,7 @@ bool run_tests() {
 }
 
 int main() {
-       __internal_init_once();
+       tslog::init();
        if (!run_tests())
                return -1;
        return 0;
index e1aa8b2..5f3d377 100644 (file)
@@ -1,5 +1,6 @@
 #include "internal/internal.h"
 #include "internal/naive_policy_checker.hpp"
+#include "internal/tslog.hpp"
 #include <dbuspolicy1/libdbuspolicy1.h>
 #include <map>
 #include <string>
@@ -115,7 +116,7 @@ bool run_access_tests() {
 }
 
 int main() {
-       __internal_init_once();
+       tslog::init();
        if (!run_access_tests())
                return -1;
        return 0;
index 6a10e64..1f5d0fa 100644 (file)
@@ -5,11 +5,8 @@
 #include "internal/serializer.hpp"
 #include "internal/storage_backend_serialized.hpp"
 #include "internal/storage_backend_xml.hpp"
-#include <dbuspolicy1/libdbuspolicy1.h>
-#include <iostream>
+#include "internal/tslog.hpp"
 #include <map>
-#include <string>
-#include <sys/types.h>
 
 using namespace ldp_xml_parser;
 using namespace ldp_serialized;
@@ -150,7 +147,7 @@ bool run_tests() {
 }
 
 int main() {
-       __internal_init_once();
+       tslog::init();
        if (!run_tests())
                return -1;
 return 0;
index f55316c..1fe7753 100644 (file)
@@ -6,6 +6,7 @@
 #include "internal/internal.h"
 #include "internal/naive_policy_checker.hpp"
 #include "internal/policy.hpp"
+#include "internal/tslog.hpp"
 
 using namespace ldp_xml_parser;
 
@@ -115,7 +116,7 @@ bool method_test() {
 }
 
 int main() {
-       __internal_init_once();
+       tslog::init();
        if (!method_test())
                return -1;
        return 0;
index 6c5cd8f..8b2ade9 100644 (file)
@@ -5,9 +5,8 @@
 #include "internal/serializer.hpp"
 #include "internal/storage_backend_serialized.hpp"
 #include "internal/storage_backend_xml.hpp"
-#include <dbuspolicy1/libdbuspolicy1.h>
+#include "internal/tslog.hpp"
 #include <map>
-#include <string>
 
 using namespace ldp_xml_parser;
 using namespace ldp_serialized;
@@ -202,7 +201,7 @@ bool run_tests() {
 }
 
 int main() {
-       __internal_init_once();
+       tslog::init();
        if (!run_tests())
                return -1;
 return 0;
index 9e8a33a..3d949db 100644 (file)
@@ -1,5 +1,6 @@
 #include "internal/internal.h"
 #include "internal/naive_policy_checker.hpp"
+#include "internal/tslog.hpp"
 
 using ldp_xml_parser::MatchItemOwn;
 using ldp_xml_parser::DecisionResult;
@@ -155,7 +156,7 @@ bool ownership_test() {
 }
 
 int main() {
-       __internal_init_once();
+       tslog::init();
        if (!ownership_test())
                return -1;
 return 0;
index 75654cc..582d11b 100644 (file)
@@ -5,11 +5,8 @@
 #include "internal/serializer.hpp"
 #include "internal/storage_backend_serialized.hpp"
 #include "internal/storage_backend_serialized.hpp"
-#include <dbuspolicy1/libdbuspolicy1.h>
-#include <iostream>
+#include "internal/tslog.hpp"
 #include <map>
-#include <string>
-#include <sys/types.h>
 
 using namespace ldp_xml_parser;
 using namespace ldp_serialized;
@@ -128,8 +125,8 @@ bool run_tests() {
 }
 
 int main() {
-       __internal_init_once();
+       tslog::init();
        if (!run_tests())
                return -1;
-return 0;
+       return 0;
 }
index a00e942..18d2a34 100644 (file)
@@ -1,5 +1,6 @@
 #include "internal/internal.h"
 #include "internal/naive_policy_checker.hpp"
+#include "internal/tslog.hpp"
 
 using ldp_xml_parser::MatchItemOwn;
 using ldp_xml_parser::DecisionResult;
@@ -77,7 +78,7 @@ bool ownership_test() {
 }
 
 int main() {
-       __internal_init_once();
+       tslog::init();
        if (!ownership_test())
                return -1;
 return 0;
index 760ae6f..1e10157 100644 (file)
@@ -5,11 +5,8 @@
 #include "internal/serializer.hpp"
 #include "internal/storage_backend_serialized.hpp"
 #include "internal/storage_backend_serialized.hpp"
-#include <dbuspolicy1/libdbuspolicy1.h>
-#include <iostream>
+#include "internal/tslog.hpp"
 #include <map>
-#include <string>
-#include <sys/types.h>
 
 using namespace ldp_xml_parser;
 using namespace ldp_serialized;
@@ -213,7 +210,7 @@ bool run_tests() {
 
 int main()
 {
-       __internal_init_once();
+       tslog::init();
        if (!run_tests())
                return -1;
        return 0;
index 3e3f335..fca35a8 100644 (file)
@@ -1,6 +1,7 @@
 #include "internal/internal.h"
 #include "internal/naive_policy_checker.hpp"
 #include "internal/policy.hpp"
+#include "internal/tslog.hpp"
 #include "libdbuspolicy1-private.h"
 #include <dbuspolicy1/libdbuspolicy1.h>
 #include <string>
@@ -173,7 +174,7 @@ bool test()
 
 int main()
 {
-       __internal_init_once();
+       tslog::init();
        if (!test())
                return -1;
        return 0;
index 95f158d..ba01c58 100644 (file)
@@ -5,11 +5,8 @@
 #include "internal/serializer.hpp"
 #include "internal/storage_backend_serialized.hpp"
 #include "internal/storage_backend_serialized.hpp"
-#include <dbuspolicy1/libdbuspolicy1.h>
-#include <iostream>
+#include "internal/tslog.hpp"
 #include <map>
-#include <string>
-#include <sys/types.h>
 
 using namespace ldp_xml_parser;
 using namespace ldp_serialized;
@@ -107,7 +104,7 @@ bool run_tests() {
 }
 
 int main() {
-       __internal_init_once();
+       tslog::init();
        if (!run_tests())
                return -1;
 return 0;
index 94e4cee..6fc36f1 100644 (file)
@@ -1,6 +1,6 @@
 #include "internal/internal.h"
 #include "internal/naive_policy_checker.hpp"
-#include <sys/types.h>
+#include "internal/tslog.hpp"
 
 using ldp_xml_parser::MatchItemSend;
 using ldp_xml_parser::DecisionResult;
@@ -62,8 +62,8 @@ bool signal_test() {
 }
 
 int main() {
-       __internal_init_once();
+       tslog::init();
        if (!signal_test())
                return -1;
-return 0;
+       return 0;
 }