aboutsummaryrefslogtreecommitdiffstats
path: root/src/libmsc/gsm_04_11.c
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@gnumonks.org>2017-08-07 14:01:10 +0100
committerNeels Hofmeyr <neels@hofmeyr.de>2017-08-26 21:17:06 +0200
commite42f43e10bf0a433591422b2e82f2857cead7de0 (patch)
tree70f3533aafb7903d544cfc1bcb6027acba8fa05b /src/libmsc/gsm_04_11.c
parent1ae69da1f4cf17787da8f0c6a3ec7e827d101020 (diff)
libmsc: remove 'deferred' parameter in sms_route_mt_sms()
No need to cache the sms object, just cache what we need into the smpp_cmd structure. This simplifies what that I introduced in 93ffbd0029d1 ("libmsc: send RP-ACK to MS after ESME sends SMPP DELIVER-SM-RESP"). Change-Id: Iba5f864f9bb963baff95969e306b1b7cff00c1e3
Diffstat (limited to 'src/libmsc/gsm_04_11.c')
-rw-r--r--src/libmsc/gsm_04_11.c19
1 files changed, 8 insertions, 11 deletions
diff --git a/src/libmsc/gsm_04_11.c b/src/libmsc/gsm_04_11.c
index 0cd1b653f..88a668537 100644
--- a/src/libmsc/gsm_04_11.c
+++ b/src/libmsc/gsm_04_11.c
@@ -280,8 +280,7 @@ static int gsm340_gen_sms_deliver_tpdu(struct msgb *msg, struct gsm_sms *sms)
}
static int sms_route_mt_sms(struct gsm_subscriber_connection *conn,
- struct gsm_sms *gsms, uint8_t sms_mti,
- bool *deferred)
+ struct gsm_sms *gsms, uint8_t sms_mti)
{
int rc;
@@ -295,7 +294,7 @@ static int sms_route_mt_sms(struct gsm_subscriber_connection *conn,
* delivery of the SMS.
*/
if (smpp_first) {
- rc = smpp_try_deliver(gsms, conn, deferred);
+ rc = smpp_try_deliver(gsms, conn);
if (rc == GSM411_RP_CAUSE_MO_NUM_UNASSIGNED)
/* unknown subscriber, try local */
goto try_local;
@@ -324,7 +323,7 @@ try_local:
return GSM411_RP_CAUSE_MO_NUM_UNASSIGNED;
}
- rc = smpp_try_deliver(gsms, conn, deferred);
+ rc = smpp_try_deliver(gsms, conn);
if (rc == GSM411_RP_CAUSE_MO_NUM_UNASSIGNED) {
rate_ctr_inc(&conn->network->msc_ctrs->ctr[MSC_CTR_SMS_NO_RECEIVER]);
} else if (rc < 0) {
@@ -365,7 +364,7 @@ try_local:
/* process an incoming TPDU (called from RP-DATA)
* return value > 0: RP CAUSE for ERROR; < 0: silent error; 0 = success */
static int gsm340_rx_tpdu(struct gsm_trans *trans, struct msgb *msg,
- uint32_t gsm411_msg_ref, bool *deferred)
+ uint32_t gsm411_msg_ref)
{
struct gsm_subscriber_connection *conn = trans->conn;
uint8_t *smsp = msgb_sms(msg);
@@ -486,10 +485,9 @@ static int gsm340_rx_tpdu(struct gsm_trans *trans, struct msgb *msg,
/* FIXME: This looks very wrong */
send_signal(0, NULL, gsms, 0);
- rc = sms_route_mt_sms(conn, gsms, sms_mti, deferred);
+ rc = sms_route_mt_sms(conn, gsms, sms_mti);
out:
- if (!deferred)
- sms_free(gsms);
+ sms_free(gsms);
return rc;
}
@@ -542,7 +540,6 @@ static int gsm411_rx_rp_ud(struct msgb *msg, struct gsm_trans *trans,
uint8_t dst_len, uint8_t *dst,
uint8_t tpdu_len, uint8_t *tpdu)
{
- bool deferred = false;
int rc = 0;
if (src_len && src)
@@ -559,8 +556,8 @@ static int gsm411_rx_rp_ud(struct msgb *msg, struct gsm_trans *trans,
DEBUGP(DLSMS, "DST(%u,%s)\n", dst_len, osmo_hexdump(dst, dst_len));
- rc = gsm340_rx_tpdu(trans, msg, rph->msg_ref, &deferred);
- if (rc == 0 && !deferred)
+ rc = gsm340_rx_tpdu(trans, msg, rph->msg_ref);
+ if (rc == 0)
return gsm411_send_rp_ack(trans, rph->msg_ref);
else if (rc > 0)
return gsm411_send_rp_error(trans, rph->msg_ref, rc);