diff options
author | Max <msuraev@sysmocom.de> | 2017-09-06 18:20:36 +0200 |
---|---|---|
committer | Max <msuraev@sysmocom.de> | 2017-09-23 10:13:55 +0000 |
commit | dc10ce90b29d42557f3d8c9499a320ffcc3a91c8 (patch) | |
tree | 2fda03fe73794a4862a825f1ccf8c3c875dbcabf /src/libbsc/abis_rsl.c | |
parent | 53daffbd994a47259868dee8f808123a31be9082 (diff) |
Wrap channel state assignment in macro
Previously we've used function so debug print always pointed to the same
place which is not very useful. Wrap it with macro so proper
file:line is printed. Also, make sure that we always change state only
through this wrapper and log only when the state has changed.
Change-Id: I21789f8021290965b61a54a2b23177ccbbfe8321
Diffstat (limited to 'src/libbsc/abis_rsl.c')
-rw-r--r-- | src/libbsc/abis_rsl.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/libbsc/abis_rsl.c b/src/libbsc/abis_rsl.c index 09fb14b79..996860285 100644 --- a/src/libbsc/abis_rsl.c +++ b/src/libbsc/abis_rsl.c @@ -1225,11 +1225,12 @@ int rsl_lchan_mark_broken(struct gsm_lchan *lchan, const char *reason) return 0; } -int rsl_lchan_set_state(struct gsm_lchan *lchan, int state) +int rsl_lchan_set_state_with_log(struct gsm_lchan *lchan, enum gsm_lchan_state state, const char *file, unsigned line) { - DEBUGP(DRSL, "%s state %s -> %s\n", - gsm_lchan_name(lchan), gsm_lchans_name(lchan->state), - gsm_lchans_name(state)); + if (lchan->state != state) + LOGPSRC(DRSL, LOGL_DEBUG, file, line, "%s state %s -> %s\n", + gsm_lchan_name(lchan), gsm_lchans_name(lchan->state), gsm_lchans_name(state)); + lchan->state = state; return 0; } |