From 8d3e76d078cf1fd9d295391735ca4208eaa5f3de Mon Sep 17 00:00:00 2001 From: Uros Majstorovic Date: Thu, 7 Sep 2017 17:40:47 +0200 Subject: fixed rbuf start --- code/core/rbuf.c | 39 ++++++++++++++++++--------------------- 1 file changed, 18 insertions(+), 21 deletions(-) (limited to 'code/core/rbuf.c') diff --git a/code/core/rbuf.c b/code/core/rbuf.c index 93d6fc6..67c9f8d 100644 --- a/code/core/rbuf.c +++ b/code/core/rbuf.c @@ -68,35 +68,32 @@ ssize_t ecp_rbuf_pld_send(ECPConnection *conn, unsigned char *payload, size_t pa return rv; } -int ecp_rbuf_conn_create(ECPConnection *conn, ECPRBSend *buf_s, ECPRBMessage *msg_s, unsigned int msg_s_size, ECPRBRecv *buf_r, ECPRBMessage *msg_r, unsigned int msg_r_size) { +int ecp_rbuf_create(ECPConnection *conn, ECPRBSend *buf_s, ECPRBMessage *msg_s, unsigned int msg_s_size, ECPRBRecv *buf_r, ECPRBMessage *msg_r, unsigned int msg_r_size) { int rv; - rv = ecp_rbuf_send_create(conn, buf_s, msg_s, msg_s_size); - if (rv) return rv; + if (buf_s) { + rv = ecp_rbuf_send_create(conn, buf_s, msg_s, msg_s_size); + if (rv) return rv; + + rv = ecp_rbuf_send_start(conn); + if (rv) { + ecp_rbuf_send_destroy(conn); + return rv; + } + } - rv = ecp_rbuf_recv_create(conn, buf_r, msg_r, msg_r_size); - if (rv) { - ecp_rbuf_send_destroy(conn); - return rv; + if (buf_r) { + rv = ecp_rbuf_recv_create(conn, buf_r, msg_r, msg_r_size); + if (rv) { + if (buf_s) ecp_rbuf_send_destroy(conn); + return rv; + } } return ECP_OK; } -void ecp_rbuf_conn_destroy(ECPConnection *conn) { +void ecp_rbuf_destroy(ECPConnection *conn) { ecp_rbuf_send_destroy(conn); ecp_rbuf_recv_destroy(conn); } - -int ecp_rbuf_conn_start(ECPConnection *conn, ecp_seq_t seq) { - int rv = ecp_rbuf_send_start(conn); - if (rv) return rv; - - if (!conn->out) { - rv = ecp_rbuf_recv_start(conn, seq); - if (rv) return rv; - } - - return ECP_OK; -} - -- cgit v1.2.3