diff options
author | Holger Freyther <zecke@selfish.org> | 2009-06-02 02:55:17 +0000 |
---|---|---|
committer | Holger Freyther <zecke@selfish.org> | 2009-06-02 02:55:17 +0000 |
commit | f7b2a0ec7f35244850fcd02755f87b4e91d46206 (patch) | |
tree | d20bc987387d5b079e87be931da3df62d237312c /src | |
parent | 4f584c3d4b2ec3b9770880899b94d1683d5ce2ee (diff) |
[rsl] Change logging of handling reason 0x18 in rsl_rx_conn_fail (Andreas Eversberg)
Release the channel when it is not used, otherwise claim it
is still in use...
Diffstat (limited to 'src')
-rw-r--r-- | src/abis_rsl.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/abis_rsl.c b/src/abis_rsl.c index d9a39b8b4..fcadcb8b7 100644 --- a/src/abis_rsl.c +++ b/src/abis_rsl.c @@ -680,12 +680,14 @@ static int rsl_rx_conn_fail(struct msgb *msg) if (TLVP_PRESENT(&tp, RSL_IE_CAUSE) && TLVP_LEN(&tp, RSL_IE_CAUSE) >= 1 && *TLVP_VAL(&tp, RSL_IE_CAUSE) == 0x18) { - DEBUGPC(DRSL, "IGNORING\n"); - return 0; + if (msg->lchan->use_count > 0) { + DEBUGPC(DRSL, "Cause 0x18 IGNORING, lchan in use! (%d times)\n", msg->lchan->use_count); + return 0; + } } } - DEBUGPC(DRSL, "\n"); + DEBUGPC(DRSL, "RELEASING.\n"); /* FIXME: only free it after channel release ACK */ return rsl_chan_release(msg->lchan); |