log: improve for rsl_lchan_mark_broken()
In rsl_lchan_mark_broken(), call rsl_lchan_set_state() so the state transition
gets logged in the debug log.
Remove logging for the broken channel at the callers, instead log the error
actually in rsl_lchan_mark_broken() itself, with the reason message passed by
the caller anyway. (Removes code dup and ensures it's always logged.)
Change-Id: I54ae9bbd3f193bae7b1bda1fef3e33e62b353bf5
diff --git a/openbsc/src/libbsc/abis_rsl.c b/openbsc/src/libbsc/abis_rsl.c
index 5a53d19..d9ca550 100644
--- a/openbsc/src/libbsc/abis_rsl.c
+++ b/openbsc/src/libbsc/abis_rsl.c
@@ -179,10 +179,6 @@
{
struct gsm_lchan *lchan = data;
- LOGP(DRSL, LOGL_ERROR,
- "%s Timeout during activation. Marked as broken.\n",
- gsm_lchan_name(lchan));
-
rsl_lchan_mark_broken(lchan, "activation timeout");
lchan_free(lchan);
}
@@ -191,10 +187,6 @@
{
struct gsm_lchan *lchan = data;
- LOGP(DRSL, LOGL_ERROR,
- "%s Timeout during deactivation! Marked as broken.\n",
- gsm_lchan_name(lchan));
-
rsl_lchan_mark_broken(lchan, "de-activation timeout");
lchan_free(lchan);
}
@@ -1121,7 +1113,9 @@
int rsl_lchan_mark_broken(struct gsm_lchan *lchan, const char *reason)
{
- lchan->state = LCHAN_S_BROKEN;
+ LOGP(DRSL, LOGL_ERROR, "%s %s lchan broken: %s\n",
+ gsm_lchan_name(lchan), gsm_lchant_name(lchan->type), reason);
+ rsl_lchan_set_state(lchan, LCHAN_S_BROKEN);
lchan->broken_reason = reason;
return 0;
}