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
diff --git a/src/libmsc/gsm_04_11.c b/src/libmsc/gsm_04_11.c
index 0cd1b65..88a6685 100644
--- a/src/libmsc/gsm_04_11.c
+++ b/src/libmsc/gsm_04_11.c
@@ -280,8 +280,7 @@
 }
 
 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 @@
 	 * 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 @@
 			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 @@
 /* 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 @@
 	/* 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 @@
 			  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 @@
 
 	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);