Review at  https://gerrit.osmocom.org/7604

use osmo_init_logging2() with proper talloc ctx

There is a duality of initialization: early_init() in bts.cpp wants to init
logging even before static instances get initialized. Make sure that
tall_pcu_ctx is initialized during early_init() as well. There is a build
context that does not seem to include bts.cpp (osmo-pcu-remote), so to be sure,
init tall_pcu_ctx as NULL and both in early_init() as well as pcu_main.cpp,
init both tall_pcu_ctx and logging if it is still NULL.

Change-Id: I2199b62d0270bd35dec2283e8f5b364b7c63915b
---
M src/bts.cpp
M src/pcu_main.cpp
M tests/alloc/AllocTest.cpp
M tests/alloc/MslotTest.cpp
M tests/bitcomp/BitcompTest.cpp
M tests/codel/codel_test.c
M tests/edge/EdgeTest.cpp
M tests/emu/pcu_emu.cpp
M tests/fn/FnTest.cpp
M tests/llc/LlcTest.cpp
M tests/ms/MsTest.cpp
M tests/rlcmac/RLCMACTest.cpp
M tests/tbf/TbfTest.cpp
M tests/types/TypesTest.cpp
14 files changed, 28 insertions(+), 22 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/04/7604/1

diff --git a/src/bts.cpp b/src/bts.cpp
index 47607df..b6d0d0c 100644
--- a/src/bts.cpp
+++ b/src/bts.cpp
@@ -59,7 +59,10 @@
         * require logging already to be initialized. */
        __attribute__((constructor)) static void early_init(void)
        {
-               osmo_init_logging(&gprs_log_info);
+               if (!tall_pcu_ctx) {
+                       tall_pcu_ctx = talloc_named_const(NULL, 1, "Osmo-PCU 
context");
+                       osmo_init_logging2(tall_pcu_ctx, &gprs_log_info);
+               }
        }
 }
 
diff --git a/src/pcu_main.cpp b/src/pcu_main.cpp
index 84ade6f..5b1b1be 100644
--- a/src/pcu_main.cpp
+++ b/src/pcu_main.cpp
@@ -56,7 +56,7 @@
 static int config_given = 0;
 static char *config_file = strdup("osmo-pcu.cfg");
 extern struct vty_app_info pcu_vty_info;
-void *tall_pcu_ctx;
+void *tall_pcu_ctx = NULL;
 extern void *bv_tall_ctx;
 static int quit = 0;
 static int rt_prio = -1;
@@ -181,9 +181,13 @@
        struct gprs_rlcmac_bts *bts;
        int rc;
 
-       tall_pcu_ctx = talloc_named_const(NULL, 1, "Osmo-PCU context");
-       if (!tall_pcu_ctx)
-               return -ENOMEM;
+       /* tall_pcu_ctx may already have been initialized in bts.cpp during 
early_init(). */
+       if (!tall_pcu_ctx) {
+               tall_pcu_ctx = talloc_named_const(NULL, 1, "Osmo-PCU context");
+               if (!tall_pcu_ctx)
+                       return -ENOMEM;
+               osmo_init_logging2(tall_pcu_ctx, &gprs_log_info);
+       }
 
        bts = bts_main_data();
        bts->fc_interval = 1;
@@ -259,7 +263,6 @@
 
        msgb_talloc_ctx_init(tall_pcu_ctx, 0);
 
-       osmo_init_logging(&gprs_log_info);
        osmo_stats_init(tall_pcu_ctx);
        rate_ctr_init(tall_pcu_ctx);
        gprs_ns_set_log_ss(DNS);
diff --git a/tests/alloc/AllocTest.cpp b/tests/alloc/AllocTest.cpp
index 9f6e6c4..64d6a50 100644
--- a/tests/alloc/AllocTest.cpp
+++ b/tests/alloc/AllocTest.cpp
@@ -797,7 +797,7 @@
                abort();
 
        msgb_talloc_ctx_init(tall_pcu_ctx, 0);
-       osmo_init_logging(&gprs_log_info);
+       osmo_init_logging2(tall_pcu_ctx, &gprs_log_info);
        log_set_use_color(osmo_stderr_target, 0);
        log_set_print_filename(osmo_stderr_target, 0);
        if (getenv("LOGL_DEBUG"))
diff --git a/tests/alloc/MslotTest.cpp b/tests/alloc/MslotTest.cpp
index ebe04ca..8910e52 100644
--- a/tests/alloc/MslotTest.cpp
+++ b/tests/alloc/MslotTest.cpp
@@ -155,7 +155,7 @@
 
        msgb_talloc_ctx_init(tall_pcu_ctx, 0);
 
-       osmo_init_logging(&gprs_log_info);
+       osmo_init_logging2(tall_pcu_ctx, &gprs_log_info);
        log_set_use_color(osmo_stderr_target, 0);
        log_set_print_filename(osmo_stderr_target, 0);
        log_set_log_level(osmo_stderr_target, LOGL_DEBUG);
diff --git a/tests/bitcomp/BitcompTest.cpp b/tests/bitcomp/BitcompTest.cpp
index 8dd4534..98bb2cc 100644
--- a/tests/bitcomp/BitcompTest.cpp
+++ b/tests/bitcomp/BitcompTest.cpp
@@ -188,15 +188,15 @@
 
 int main(int argc, char **argv)
 {
-       osmo_init_logging(&gprs_log_info);
-       log_set_use_color(osmo_stderr_target, 0);
-       log_set_print_filename(osmo_stderr_target, 0);
-       log_parse_category_mask(osmo_stderr_target, "DRLCMACUL,1");
-
        tall_pcu_ctx = talloc_named_const(NULL, 1, "moiji-mobile bitcompTest 
context");
        if (!tall_pcu_ctx)
                abort();
 
+       osmo_init_logging2(tall_pcu_ctx, &gprs_log_info);
+       log_set_use_color(osmo_stderr_target, 0);
+       log_set_print_filename(osmo_stderr_target, 0);
+       log_parse_category_mask(osmo_stderr_target, "DRLCMACUL,1");
+
        test_EPDAN_decode_tree();
 
        if (getenv("TALLOC_REPORT_FULL"))
diff --git a/tests/codel/codel_test.c b/tests/codel/codel_test.c
index 91bad13..2ce2429 100644
--- a/tests/codel/codel_test.c
+++ b/tests/codel/codel_test.c
@@ -134,7 +134,7 @@
 
 int main(int argc, char **argv)
 {
-       osmo_init_logging(&info);
+       osmo_init_logging2(NULL, &info);
        log_set_use_color(osmo_stderr_target, 0);
        log_set_print_filename(osmo_stderr_target, 0);
        log_set_log_level(osmo_stderr_target, LOGL_INFO);
diff --git a/tests/edge/EdgeTest.cpp b/tests/edge/EdgeTest.cpp
index cd80c05..98ca206 100644
--- a/tests/edge/EdgeTest.cpp
+++ b/tests/edge/EdgeTest.cpp
@@ -1402,7 +1402,7 @@
                abort();
 
        msgb_talloc_ctx_init(tall_pcu_ctx, 0);
-       osmo_init_logging(&gprs_log_info);
+       osmo_init_logging2(tall_pcu_ctx, &gprs_log_info);
        log_set_use_color(osmo_stderr_target, 0);
        log_set_print_filename(osmo_stderr_target, 0);
 
diff --git a/tests/emu/pcu_emu.cpp b/tests/emu/pcu_emu.cpp
index 4cc37f3..354a328 100644
--- a/tests/emu/pcu_emu.cpp
+++ b/tests/emu/pcu_emu.cpp
@@ -112,7 +112,7 @@
                abort();
 
        msgb_talloc_ctx_init(tall_pcu_ctx, 0);
-       osmo_init_logging(&gprs_log_info);
+       osmo_init_logging2(tall_pcu_ctx, &gprs_log_info);
        vty_init(&pcu_vty_info);
        pcu_vty_init(&gprs_log_info);
 
diff --git a/tests/fn/FnTest.cpp b/tests/fn/FnTest.cpp
index 1e3ff11..35249f5 100644
--- a/tests/fn/FnTest.cpp
+++ b/tests/fn/FnTest.cpp
@@ -149,7 +149,7 @@
                abort();
 
        msgb_talloc_ctx_init(tall_pcu_ctx, 0);
-       osmo_init_logging(&gprs_log_info);
+       osmo_init_logging2(tall_pcu_ctx, &gprs_log_info);
        log_set_use_color(osmo_stderr_target, 0);
        log_set_print_filename(osmo_stderr_target, 0);
        log_set_log_level(osmo_stderr_target, LOGL_DEBUG);
diff --git a/tests/llc/LlcTest.cpp b/tests/llc/LlcTest.cpp
index eb693f5..3083644 100644
--- a/tests/llc/LlcTest.cpp
+++ b/tests/llc/LlcTest.cpp
@@ -225,7 +225,7 @@
                abort();
 
        msgb_talloc_ctx_init(tall_pcu_ctx, 0);
-       osmo_init_logging(&gprs_log_info);
+       osmo_init_logging2(tall_pcu_ctx, &gprs_log_info);
        log_set_use_color(osmo_stderr_target, 0);
        log_set_print_filename(osmo_stderr_target, 0);
        log_set_log_level(osmo_stderr_target, LOGL_INFO);
diff --git a/tests/ms/MsTest.cpp b/tests/ms/MsTest.cpp
index 4601504..728daf6 100644
--- a/tests/ms/MsTest.cpp
+++ b/tests/ms/MsTest.cpp
@@ -524,7 +524,7 @@
                abort();
 
        msgb_talloc_ctx_init(tall_pcu_ctx, 0);
-       osmo_init_logging(&gprs_log_info);
+       osmo_init_logging2(tall_pcu_ctx, &gprs_log_info);
        log_set_use_color(osmo_stderr_target, 0);
        log_set_print_filename(osmo_stderr_target, 0);
        log_set_log_level(osmo_stderr_target, LOGL_INFO);
diff --git a/tests/rlcmac/RLCMACTest.cpp b/tests/rlcmac/RLCMACTest.cpp
index 9155809..3de4fac 100644
--- a/tests/rlcmac/RLCMACTest.cpp
+++ b/tests/rlcmac/RLCMACTest.cpp
@@ -230,7 +230,7 @@
 int main(int argc, char *argv[])
 {
        void *ctx = talloc_named_const(NULL, 1, "RLCMACTest");
-       osmo_init_logging(&gprs_log_info);
+       osmo_init_logging2(ctx, &gprs_log_info);
 
        //printSizeofRLCMAC();
        testRlcMacDownlink(ctx);
diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp
index 662708a..dfed79e 100644
--- a/tests/tbf/TbfTest.cpp
+++ b/tests/tbf/TbfTest.cpp
@@ -3233,7 +3233,7 @@
                abort();
 
        msgb_talloc_ctx_init(tall_pcu_ctx, 0);
-       osmo_init_logging(&gprs_log_info);
+       osmo_init_logging2(tall_pcu_ctx, &gprs_log_info);
        log_set_use_color(osmo_stderr_target, 0);
        log_set_print_filename(osmo_stderr_target, 0);
        bssgp_set_log_ss(DBSSGP);
diff --git a/tests/types/TypesTest.cpp b/tests/types/TypesTest.cpp
index 3a43897..1bc911f 100644
--- a/tests/types/TypesTest.cpp
+++ b/tests/types/TypesTest.cpp
@@ -487,7 +487,7 @@
                abort();
 
        msgb_talloc_ctx_init(tall_pcu_ctx, 0);
-       osmo_init_logging(&gprs_log_info);
+       osmo_init_logging2(tall_pcu_ctx, &gprs_log_info);
        log_set_use_color(osmo_stderr_target, 0);
        log_set_print_filename(osmo_stderr_target, 0);
 

-- 
To view, visit https://gerrit.osmocom.org/7604
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I2199b62d0270bd35dec2283e8f5b364b7c63915b
Gerrit-PatchSet: 1
Gerrit-Project: osmo-pcu
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr <nhofm...@sysmocom.de>

Reply via email to