From 28d3a53dc5d875f49e336b54f5733ddbc59531af Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Mon, 1 Aug 2022 20:56:30 +0200 Subject: [PATCH] cbsp/sbcap: Fail if trying to Tx on non-connected (connecting) link This way upper layers know right away that the message could not be transmitted to that peer. Change-Id: I1d2285d18ee064fd78191765e8cb833bf5ee08a4 --- src/cbsp_link.c | 5 +++++ src/sbcap_link.c | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/src/cbsp_link.c b/src/cbsp_link.c index 564df3f..2c31455 100644 --- a/src/cbsp_link.c +++ b/src/cbsp_link.c @@ -331,6 +331,11 @@ int cbc_cbsp_link_tx(struct cbc_cbsp_link *link, struct osmo_cbsp_decoded *cbsp) get_value_string(cbsp_msg_type_names, cbsp->msg_type)); talloc_free(cbsp); return -ENOLINK; + } else if (link->is_client && !osmo_stream_cli_is_connected(link->cli_conn)) { + LOGPCC(link, LOGL_NOTICE, "Cannot transmit %s: reconnecting\n", + get_value_string(cbsp_msg_type_names, cbsp->msg_type)); + talloc_free(cbsp); + return -ENOTCONN; } LOGPCC(link, LOGL_INFO, "Transmitting %s\n", diff --git a/src/sbcap_link.c b/src/sbcap_link.c index 3f5d792..f8d8a09 100644 --- a/src/sbcap_link.c +++ b/src/sbcap_link.c @@ -398,6 +398,11 @@ int cbc_sbcap_link_tx(struct cbc_sbcap_link *link, SBcAP_SBC_AP_PDU_t *pdu) sbcap_pdu_get_name(pdu)); rc = -ENOLINK; goto ret_free; + } else if (link->is_client && !osmo_stream_cli_is_connected(link->cli_conn)) { + LOGPSBCAPC(link, LOGL_NOTICE, "Cannot transmit msg %s: reconnecting\n", + sbcap_pdu_get_name(pdu)); + rc = -ENOTCONN; + goto ret_free; } LOGPSBCAPC(link, LOGL_INFO, "Tx msg %s\n",