pespin has uploaded this change for review. ( 
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(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-cbc refs/changes/32/28532/1

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);

--
To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/28532
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-cbc
Gerrit-Branch: master
Gerrit-Change-Id: Ie411409b3af8f7dd6913b522ea9ed3b58736dc9f
Gerrit-Change-Number: 28532
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <[email protected]>
Gerrit-MessageType: newchange

Reply via email to