pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/41880?usp=email )
Change subject: Avoid accessing struct log_target members directly ......................................................................
Avoid accessing struct log_target members directly
Use newly available APIs instead.
Depends: libosmocore.git Change-Id Ie48e7e635feb91509b9c034394df4fb16cb931a3
Change-Id: I81020f368c7e0e7b8dcd92917301bf3844157705 --- M src/libvlr/vlr.c M src/osmo-msc/msc_main.c 2 files changed, 14 insertions(+), 12 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/80/41880/1
diff --git a/src/libvlr/vlr.c b/src/libvlr/vlr.c index 919def3..26ab35b 100644 --- a/src/libvlr/vlr.c +++ b/src/libvlr/vlr.c @@ -1733,21 +1733,23 @@ void log_set_filter_vlr_subscr(struct log_target *target, struct vlr_subscr *vlr_subscr) { - struct vlr_subscr **fsub = (void*)&target->filter_data[LOG_FLT_VLR_SUBSCR]; - const char *use = "logfilter"; + struct vlr_subscr *fsub = log_get_filter_data(target, LOG_FLT_VLR_SUBSCR); + static const char *use = "logfilter";
/* free the old data */ - if (*fsub) { - vlr_subscr_put(*fsub, use); - *fsub = NULL; + if (fsub) { + log_set_filter_data(target, LOG_FLT_VLR_SUBSCR, NULL); + vlr_subscr_put(fsub, use); }
if (vlr_subscr) { - target->filter_map |= (1 << LOG_FLT_VLR_SUBSCR); vlr_subscr_get(vlr_subscr, use); - *fsub = vlr_subscr; - } else - target->filter_map &= ~(1 << LOG_FLT_VLR_SUBSCR); + log_set_filter_data(target, LOG_FLT_VLR_SUBSCR, vlr_subscr); + log_set_filter(target, LOG_FLT_VLR_SUBSCR, true); + } else { + log_set_filter_data(target, LOG_FLT_VLR_SUBSCR, NULL); + log_set_filter(target, LOG_FLT_VLR_SUBSCR, false); + } }
int g_vlr_log_cat[_OSMO_VLR_LOGC_MAX]; diff --git a/src/osmo-msc/msc_main.c b/src/osmo-msc/msc_main.c index 3c09742..ae4745b 100644 --- a/src/osmo-msc/msc_main.c +++ b/src/osmo-msc/msc_main.c @@ -540,10 +540,10 @@
static int filter_fn(const struct log_context *ctx, struct log_target *tar) { - const struct vlr_subscr *vsub = ctx->ctx[LOG_CTX_VLR_SUBSCR]; + const struct vlr_subscr *vsub = log_get_context(ctx, LOG_CTX_VLR_SUBSCR);
- if ((tar->filter_map & (1 << LOG_FLT_VLR_SUBSCR)) != 0 - && vsub && vsub == tar->filter_data[LOG_FLT_VLR_SUBSCR]) + if (log_get_filter(tar, LOG_FLT_VLR_SUBSCR) && + vsub && vsub == log_get_filter_data(tar, LOG_FLT_VLR_SUBSCR)) return 1;
return 0;