From 6941a14f564f899cb4206289f86ee8eded343a6d Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Tue, 28 Jun 2022 15:38:36 +0200 Subject: [PATCH] cbsp: Avoid encoding CBSP message if link is down Change-Id: I25c8681d2ee987ac6ebfce42ee409926eb88301d --- src/osmo-bsc/cbsp_link.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/osmo-bsc/cbsp_link.c b/src/osmo-bsc/cbsp_link.c index 39798dfb4..d8c32ecf9 100644 --- a/src/osmo-bsc/cbsp_link.c +++ b/src/osmo-bsc/cbsp_link.c @@ -300,6 +300,13 @@ int cbsp_tx_decoded(struct bsc_cbc_link *cbc, struct osmo_cbsp_decoded *cbsp) { struct msgb *msg; + if (!cbc->client.cli && !cbc->server.srv) { + LOGP(DCBS, LOGL_ERROR, "Discarding Tx CBSP Message Type %s, link is down\n", + get_value_string(cbsp_msg_type_names, cbsp->msg_type)); + talloc_free(cbsp); + return 0; + } + msg = osmo_cbsp_encode(cbc, cbsp); if (!msg) { LOGP(DCBS, LOGL_ERROR, "Unable to encode CBSP Message Type %s: %s\n", @@ -311,10 +318,6 @@ int cbsp_tx_decoded(struct bsc_cbc_link *cbc, struct osmo_cbsp_decoded *cbsp) osmo_stream_cli_send(cbc->client.cli, msg); else if (cbc->server.srv) osmo_stream_srv_send(cbc->server.srv, msg); - else { - LOGP(DCBS, LOGL_ERROR, "Discarding CBSP Message, link is down: %s\n", msgb_hexdump(msg)); - msgb_free(msg); - } talloc_free(cbsp); return 0;