smpp: fix return cause

Return cause 38 when default SMPP route is unavailable. This
is better than cause 1.

Change-Id: If3241d50a78fa611981e55fef6ae4c72b0a2a167
diff --git a/src/libmsc/smpp_openbsc.c b/src/libmsc/smpp_openbsc.c
index 24a4653..b3f9bbb 100644
--- a/src/libmsc/smpp_openbsc.c
+++ b/src/libmsc/smpp_openbsc.c
@@ -709,17 +709,18 @@
 {
 	struct osmo_esme *esme;
 	struct osmo_smpp_addr dst;
+	int rc;
 
 	memset(&dst, 0, sizeof(dst));
 	dst.ton = sms->dst.ton;
 	dst.npi = sms->dst.npi;
 	memcpy(dst.addr, sms->dst.addr, sizeof(dst.addr));
 
-	esme = smpp_route(g_smsc, &dst);
-	if (!esme)
-		return GSM411_RP_CAUSE_MO_NUM_UNASSIGNED;
+	rc = smpp_route(g_smsc, &dst, &esme);
+	if (!rc)
+		rc = deliver_to_esme(esme, sms, conn, deferred);
 
-	return deliver_to_esme(esme, sms, conn, deferred);
+	return rc;
 }
 
 struct smsc *smsc_from_vty(struct vty *v)