Introduce {server,bankd}_conn_send_rspro()
Change-Id: I8cae6f67567dcbf4b6d62fb5a76f5b7134b16f5d
diff --git a/src/bankd_client_fsm.c b/src/bankd_client_fsm.c
index 425bf38..ce7d20e 100644
--- a/src/bankd_client_fsm.c
+++ b/src/bankd_client_fsm.c
@@ -47,6 +47,11 @@
osmo_fsm_inst_dispatch(bc->bankd_fi, up ? BDC_E_TCP_UP: BDC_E_TCP_DOWN, 0);
}
+int bankd_conn_send_rspro(struct bankd_client *bc, RsproPDU_t *rspro)
+{
+ return ipa_client_conn_send_rspro(bc->bankd_conn, rspro);
+}
+
/***********************************************************************
* bankd connection FSM: Remsim Client connection to Bankd
***********************************************************************/
@@ -92,7 +97,7 @@
/* FIXME: Send ClientConnReq */
pdu = rspro_gen_ConnectClientReq(&bc->srv_conn.own_comp_id, bc->srv_conn.clslot);
- ipa_client_conn_send_rspro(bc->bankd_conn, pdu);
+ bankd_conn_send_rspro(bc, pdu);
}
static void bdc_st_established(struct osmo_fsm_inst *fi, uint32_t event, void *data)
diff --git a/src/client.h b/src/client.h
index 5756190..dae53a2 100644
--- a/src/client.h
+++ b/src/client.h
@@ -36,6 +36,6 @@
struct osmo_fsm_inst *bankd_fi;
};
-void ipa_client_conn_send_rspro(struct ipa_client_conn *ipa, RsproPDU_t *rspro);
+int bankd_conn_send_rspro(struct bankd_client *bc, RsproPDU_t *pdu);
int bankd_read_cb(struct ipa_client_conn *conn, struct msgb *msg);
int bankd_conn_fsm_alloc(struct bankd_client *bc);
diff --git a/src/remsim_client.c b/src/remsim_client.c
index 3bbf638..bf549c5 100644
--- a/src/remsim_client.c
+++ b/src/remsim_client.c
@@ -140,7 +140,7 @@
osmo_fsm_inst_dispatch(g_client->bankd_fi, BDC_E_ESTABLISH, NULL);
/* send response to server */
resp = rspro_gen_ConfigClientRes(ResultCode_ok);
- ipa_client_conn_send_rspro(srvc->conn, resp);
+ server_conn_send_rspro(srvc, resp);
break;
default:
fprintf(stderr, "Unknown/Unsupported RSPRO PDU type: %u\n", pdu->msg.present);
diff --git a/src/rspro_client_fsm.c b/src/rspro_client_fsm.c
index 894b98a..8ad79d4 100644
--- a/src/rspro_client_fsm.c
+++ b/src/rspro_client_fsm.c
@@ -55,11 +55,18 @@
/* msg_tx is now queued and will be freed. */
}
-void ipa_client_conn_send_rspro(struct ipa_client_conn *ipa, RsproPDU_t *rspro)
+int ipa_client_conn_send_rspro(struct ipa_client_conn *ipa, RsproPDU_t *rspro)
{
struct msgb *msg = rspro_enc_msg(rspro);
- OSMO_ASSERT(msg);
+ if (!msg)
+ return -1;
push_and_send(ipa, msg);
+ return 0;
+}
+
+int server_conn_send_rspro(struct rspro_server_conn *srvc, RsproPDU_t *rspro)
+{
+ return ipa_client_conn_send_rspro(srvc->conn, rspro);
}
enum server_conn_fsm_state {
@@ -210,7 +217,7 @@
pdu = rspro_gen_ConnectClientReq(&srvc->own_comp_id, srvc->clslot);
else
pdu = rspro_gen_ConnectBankReq(&srvc->own_comp_id, 1, 8 /* FIXME */);
- ipa_client_conn_send_rspro(srvc->conn, pdu);
+ server_conn_send_rspro(srvc, pdu);
}
static void srvc_st_established(struct osmo_fsm_inst *fi, uint32_t event, void *data)
diff --git a/src/rspro_client_fsm.h b/src/rspro_client_fsm.h
index 03f7ad6..ea88333 100644
--- a/src/rspro_client_fsm.h
+++ b/src/rspro_client_fsm.h
@@ -36,4 +36,6 @@
uint16_t server_port;
};
+int ipa_client_conn_send_rspro(struct ipa_client_conn *ipa, RsproPDU_t *rspro);
+int server_conn_send_rspro(struct rspro_server_conn *srvc, RsproPDU_t *rspro);
int server_conn_fsm_alloc(void *ctx, struct rspro_server_conn *srvc);
diff --git a/src/simtrace2-remsim_client.c b/src/simtrace2-remsim_client.c
index f46b7e6..e9568fa 100644
--- a/src/simtrace2-remsim_client.c
+++ b/src/simtrace2-remsim_client.c
@@ -632,7 +632,7 @@
osmo_fsm_inst_dispatch(g_client->bankd_fi, BDC_E_ESTABLISH, NULL);
/* send response to server */
resp = rspro_gen_ConfigClientRes(ResultCode_ok);
- ipa_client_conn_send_rspro(srvc->conn, resp);
+ server_conn_send_rspro(srvc, resp);
break;
default:
fprintf(stderr, "Unknown/Unsupported RSPRO PDU type: %u\n", pdu->msg.present);