pespin has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/osmo-bts/+/41882?usp=email )


Change subject: Avoid accessing struct log_target members directly
......................................................................

Avoid accessing struct log_target members directly

Use newly available APIs instead.

Change-Id: Icd48874cf51d6af78305a30faeae48ba518e46b3
Depends: libosmocore.git Change-Id Ie48e7e635feb91509b9c034394df4fb16cb931a3
---
M TODO-RELEASE
M src/common/logging.c
M src/common/vty.c
3 files changed, 23 insertions(+), 16 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/82/41882/1

diff --git a/TODO-RELEASE b/TODO-RELEASE
index 0ed7189..fb115da 100644
--- a/TODO-RELEASE
+++ b/TODO-RELEASE
@@ -7,3 +7,4 @@
 # If any interfaces have been added since the last public release: c:r:a + 1.
 # If any interfaces have been removed or changed since the last public 
release: c:r:0.
 #library       what                    description / commit summary line
+libosmocore >1.12.0 log_get_context(), log_{get,set}_filter(_data)()
diff --git a/src/common/logging.c b/src/common/logging.c
index 15c126a..cbc4a19 100644
--- a/src/common/logging.c
+++ b/src/common/logging.c
@@ -136,12 +136,12 @@

 static int osmo_bts_filter_fn(const struct log_context *ctx, struct log_target 
*tgt)
 {
-       uint8_t *sapi = ctx->ctx[LOG_CTX_L1_SAPI];
-       uint16_t *sapi_mask = tgt->filter_data[LOG_FLT_L1_SAPI];
+       uint8_t *sapi = log_get_context(ctx, LOG_CTX_L1_SAPI);
+       uint16_t *sapi_mask = log_get_filter_data(tgt, LOG_FLT_L1_SAPI);

-       if ((tgt->filter_map & (1 << LOG_FLT_L1_SAPI)) != 0
-           && sapi_mask && sapi
-           && (*sapi_mask & (1 << *sapi)) != 0)
+       if (log_get_filter(tgt, LOG_FLT_L1_SAPI) &&
+           sapi_mask && sapi &&
+           (*sapi_mask & (1 << *sapi)) != 0)
                return 1;

        return 0;
diff --git a/src/common/vty.c b/src/common/vty.c
index d169342..62ebff2 100644
--- a/src/common/vty.c
+++ b/src/common/vty.c
@@ -2663,20 +2663,21 @@
 {
        int sapi = get_string_value(l1sap_common_sapi_names, argv[0]);
        struct log_target *tgt = osmo_log_vty2tgt(vty);
-       uint16_t **sapi_mask;
+       uint16_t *sapi_mask;

        OSMO_ASSERT(sapi >= 0);
+       OSMO_ASSERT(sapi <= 31);
        if (!tgt)
                return CMD_WARNING;

-       sapi_mask = (uint16_t **)&tgt->filter_data[LOG_FLT_L1_SAPI];
+       sapi_mask = log_get_filter_data(tgt, LOG_FLT_L1_SAPI);

-       if (!*sapi_mask)
-               *sapi_mask = talloc(tgt, uint16_t);
+       if (!sapi_mask)
+               sapi_mask = talloc_zero(tgt, uint16_t);

-       OSMO_ASSERT(sapi <= 31);
-       **sapi_mask |= (1 << sapi);
-       tgt->filter_map |= (1 << LOG_FLT_L1_SAPI);
+       *sapi_mask |= (1 << sapi);
+       log_set_filter_data(tgt, LOG_FLT_L1_SAPI, sapi_mask);
+       log_set_filter(tgt, LOG_FLT_L1_SAPI, true);

        return CMD_SUCCESS;
 }
@@ -2688,15 +2689,20 @@
        uint16_t *sapi_mask;

        OSMO_ASSERT(sapi >= 0);
+       OSMO_ASSERT(sapi <= 31);
        if (!tgt)
                return CMD_WARNING;
-       if (!tgt->filter_data[LOG_FLT_L1_SAPI])
+       sapi_mask = (uint16_t *)log_get_filter_data(tgt, LOG_FLT_L1_SAPI);
+       if (!sapi_mask)
                return CMD_SUCCESS;
-
-       OSMO_ASSERT(sapi <= 31);
-       sapi_mask = (uint16_t *)tgt->filter_data[LOG_FLT_L1_SAPI];
        *sapi_mask &= ~(1 << sapi);

+       if (*sapi_mask == 0x0000) {
+               log_set_filter_data(tgt, LOG_FLT_L1_SAPI, NULL);
+               log_set_filter(tgt, LOG_FLT_L1_SAPI, false);
+               talloc_free(sapi_mask);
+       }
+
        return CMD_SUCCESS;
 }


--
To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/41882?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings?usp=email

Gerrit-MessageType: newchange
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: Icd48874cf51d6af78305a30faeae48ba518e46b3
Gerrit-Change-Number: 41882
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <[email protected]>

Reply via email to