user_shell: Dispatch all events via main_fsm.c

... avoid calling server_conn_send_rspro() directly from user code.

Change-Id: I7f589ea1b1610e6d716ed0d9f4078b185bc6401d
diff --git a/src/client/user_shell.c b/src/client/user_shell.c
index 9c804c6..c8f1b5f 100644
--- a/src/client/user_shell.c
+++ b/src/client/user_shell.c
@@ -74,21 +74,30 @@
 static void handle_stdin_command(struct stdin_state *ss, char *cmd)
 {
 	struct bankd_client *bc = ss->bc;
-	RsproPDU_t *pdu;
-	BankSlot_t bslot;
-	uint8_t buf[1024];
 	int rc;
 
-	bank_slot2rspro(&bslot, &bc->bankd_slot);
-
 	OSMO_ASSERT(ss->rx_msg);
 
 	if (!strcasecmp(cmd, "RESET")) {
 		/* reset the [remote] card */
-		pdu = rspro_gen_ClientSlotStatusInd(bc->srv_conn.clslot, &bslot,
-						    true, false, false, true);
-		server_conn_send_rspro(&bc->bankd_conn, pdu);
+		struct frontend_phys_status pstatus = {
+			.flags = {
+				.reset_active = true,
+				.vcc_present = false,
+				.clk_active = false,
+				.card_present = true,
+			},
+			.voltage_mv = 0,
+			.fi = 0,
+			.di = 0,
+			.wi = 0,
+			.waiting_time = 0,
+		};
+		osmo_fsm_inst_dispatch(bc->main_fi, MF_E_MDM_STATUS_IND, &pstatus);
 	} else {
+		struct frontend_tpdu ftpdu;
+		uint8_t buf[1024];
+
 		/* we assume the user has entered a C-APDU as hex string. parse + send */
 		rc = osmo_hexparse(cmd, buf, sizeof(buf));
 		if (rc < 0) {
@@ -101,8 +110,9 @@
 		}
 
 		/* Send CMD APDU to [remote] card */
-		pdu = rspro_gen_TpduModem2Card(bc->srv_conn.clslot, &bslot, buf, rc);
-		server_conn_send_rspro(&bc->bankd_conn, pdu);
+		ftpdu.buf = buf;
+		ftpdu.len = rc;
+		osmo_fsm_inst_dispatch(bc->main_fi, MF_E_MDM_TPDU, &ftpdu);
 	}
 }