osmith has submitted this change. ( 
https://gerrit.osmocom.org/c/osmo-msc/+/41038?usp=email )

Change subject: gsm48_cc_tx_setup_set_transaction_id: split out
......................................................................

gsm48_cc_tx_setup_set_transaction_id: split out

Move the code for setting the transaction ID to a separate function to
start making gsm48_cc_tx_setup shorter and easier to read. Return -1 on
error instead of rc from mncc_release_ind() as it returns 0 on success.

Make some tweaks while at it:
* Set LOGL_ERROR for the "TX Setup with assigned transaction" error.
* Add a log message for the "could not get a free transaction ID" case.
* Minor formatting tweaks.

Change-Id: I715f12d09570211a98b667c56960309bd326e8d8
---
M src/libmsc/gsm_04_08_cc.c
1 file changed, 32 insertions(+), 23 deletions(-)

Approvals:
  Jenkins Builder: Verified
  fixeria: Looks good to me, but someone else must approve
  pespin: Looks good to me, approved




diff --git a/src/libmsc/gsm_04_08_cc.c b/src/libmsc/gsm_04_08_cc.c
index b82c018..3a78b6d 100644
--- a/src/libmsc/gsm_04_08_cc.c
+++ b/src/libmsc/gsm_04_08_cc.c
@@ -836,37 +836,46 @@
        msc_a_tx_assignment_cmd(trans->msc_a);
 }

+static int gsm48_cc_tx_setup_set_transaction_id(struct gsm_trans *trans)
+{
+       int id;
+
+       /* Transaction ID must not be assigned */
+       if (trans->transaction_id != TRANS_ID_UNASSIGNED) {
+               LOG_TRANS(trans, LOGL_ERROR, "TX Setup with assigned 
transaction. This is not allowed!\n");
+               mncc_release_ind(trans->net, trans, trans->callref,
+                                GSM48_CAUSE_LOC_PRN_S_LU,
+                                GSM48_CC_CAUSE_RESOURCE_UNAVAIL);
+               trans->callref = 0;
+               return -1;
+       }
+
+       /* Get free transaction ID */
+       id = trans_assign_trans_id(trans->net, trans->vsub, TRANS_CC);
+       if (id < 0) {
+               LOG_TRANS(trans, LOGL_ERROR, "TX Setup: could not get a free 
transaction ID!\n");
+               mncc_release_ind(trans->net, trans, trans->callref,
+                                GSM48_CAUSE_LOC_PRN_S_LU,
+                                GSM48_CC_CAUSE_RESOURCE_UNAVAIL);
+               trans->callref = 0;
+               return -1;
+       }
+
+       trans->transaction_id = id;
+       return 0;
+}
+
 static int gsm48_cc_tx_setup(struct gsm_trans *trans, void *arg)
 {
        struct msgb *msg;
        struct gsm48_hdr *gh;
        struct gsm_mncc *setup = arg;
-       int rc, trans_id;
+       int rc;
        struct gsm_mncc_bearer_cap bearer_cap;

-       /* transaction id must not be assigned */
-       if (trans->transaction_id != TRANS_ID_UNASSIGNED) {
-               LOG_TRANS(trans, LOGL_DEBUG, "TX Setup with assigned 
transaction. "
-                       "This is not allowed!\n");
-               /* Temporarily out of order */
-               rc = mncc_release_ind(trans->net, trans, trans->callref,
-                                     GSM48_CAUSE_LOC_PRN_S_LU,
-                                     GSM48_CC_CAUSE_RESOURCE_UNAVAIL);
-               trans->callref = 0;
+       rc = gsm48_cc_tx_setup_set_transaction_id(trans);
+       if (rc < 0)
                goto error;
-       }
-
-       /* Get free transaction_id */
-       trans_id = trans_assign_trans_id(trans->net, trans->vsub, TRANS_CC);
-       if (trans_id < 0) {
-               /* no free transaction ID */
-               rc = mncc_release_ind(trans->net, trans, trans->callref,
-                                     GSM48_CAUSE_LOC_PRN_S_LU,
-                                     GSM48_CC_CAUSE_RESOURCE_UNAVAIL);
-               trans->callref = 0;
-               goto error;
-       }
-       trans->transaction_id = trans_id;

        gsm48_start_cc_timer(trans, 0x303, GSM48_T303);


--
To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/41038?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings?usp=email

Gerrit-MessageType: merged
Gerrit-Project: osmo-msc
Gerrit-Branch: master
Gerrit-Change-Id: I715f12d09570211a98b667c56960309bd326e8d8
Gerrit-Change-Number: 41038
Gerrit-PatchSet: 2
Gerrit-Owner: osmith <osm...@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanits...@sysmocom.de>
Gerrit-Reviewer: osmith <osm...@sysmocom.de>
Gerrit-Reviewer: pespin <pes...@sysmocom.de>

Reply via email to