Introduce {server,bankd}_conn_send_rspro()

Change-Id: I8cae6f67567dcbf4b6d62fb5a76f5b7134b16f5d
This commit is contained in:
Harald Welte 2019-03-09 13:38:50 +01:00
parent 3dcdd20343
commit a844bb07d8
6 changed files with 21 additions and 7 deletions

View File

@ -47,6 +47,11 @@ static void bankd_updown_cb(struct ipa_client_conn *conn, int up)
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 @@ static void bdc_st_established_onenter(struct osmo_fsm_inst *fi, uint32_t prev_s
/* 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)

View File

@ -36,6 +36,6 @@ struct bankd_client {
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);

View File

@ -140,7 +140,7 @@ static int srvc_handle_rx(struct rspro_server_conn *srvc, const RsproPDU_t *pdu)
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);

View File

@ -55,11 +55,18 @@ static void push_and_send(struct ipa_client_conn *ipa, struct msgb *msg_tx)
/* 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 @@ static void srvc_st_established_onenter(struct osmo_fsm_inst *fi, uint32_t prev_
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)

View File

@ -36,4 +36,6 @@ struct rspro_server_conn {
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);

View File

@ -632,7 +632,7 @@ static int srvc_handle_rx(struct rspro_server_conn *srvc, const RsproPDU_t *pdu)
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);