pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/28532 )
Change subject: Improve error handling when forwarding ECBE msg to CBSP ......................................................................
Improve error handling when forwarding ECBE msg to CBSP
Change-Id: Ie411409b3af8f7dd6913b522ea9ed3b58736dc9f --- M src/message_handling.c M src/smscb_peer_fsm.c 2 files changed, 17 insertions(+), 6 deletions(-)
Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved dexter: Looks good to me, but someone else must approve
diff --git a/src/message_handling.c b/src/message_handling.c index a8c8368..41b854a 100644 --- a/src/message_handling.c +++ b/src/message_handling.c @@ -132,9 +132,16 @@ switch (peer->proto) { case CBC_PEER_PROTO_CBSP: /* skip peers without any current CBSP connection */ - if (!peer->client.cbsp) - return 0; - cbsp = cbcmsg_to_cbsp(peer, cbcmsg); + if (!peer->client.cbsp) { + LOGP(DCBSP, LOGL_NOTICE, "[%s] Tx CBSP: not connected\n", + peer->name); + return -ENOTCONN; + } + if (!(cbsp = cbcmsg_to_cbsp(peer, cbcmsg))) { + LOGP(DCBSP, LOGL_ERROR, "[%s] Tx CBSP: msg gen failed\n", + peer->name); + return -EINVAL; + } cbsp_cbc_client_tx(peer->client.cbsp, cbsp); break; default: diff --git a/src/smscb_peer_fsm.c b/src/smscb_peer_fsm.c index 510c198..cc91e39 100644 --- a/src/smscb_peer_fsm.c +++ b/src/smscb_peer_fsm.c @@ -279,13 +279,17 @@ static void smscb_p_fsm_init(struct osmo_fsm_inst *fi, uint32_t event, void *data) { struct cbc_message_peer *mp = (struct cbc_message_peer *) fi->priv; + int rc;
switch (event) { case SMSCB_E_CREATE: /* send it to peer */ - peer_new_cbc_message(mp->peer, mp->cbcmsg); - /* wait for peers' response */ - osmo_fsm_inst_state_chg(fi, SMSCB_S_WAIT_WRITE_ACK, 10, T_WAIT_WRITE_ACK); + rc = peer_new_cbc_message(mp->peer, mp->cbcmsg); + if (rc == 0) { + /* wait for peers' response */ + osmo_fsm_inst_state_chg(fi, SMSCB_S_WAIT_WRITE_ACK, 10, + T_WAIT_WRITE_ACK); + } break; default: OSMO_ASSERT(0);