diff --git a/src/modbus-private.h b/src/modbus-private.h index e65269b..784a7f9 100644 --- a/src/modbus-private.h +++ b/src/modbus-private.h @@ -76,8 +76,8 @@ typedef struct _modbus_backend { int (*build_response_basis) (sft_t *sft, uint8_t *rsp); int (*prepare_response_tid) (const uint8_t *req, int *req_length); int (*send_msg_pre) (uint8_t *req, int req_length); - ssize_t (*send) (int s, const uint8_t *req, int req_length); - ssize_t (*recv) (int s, uint8_t *rsp, int rsp_length); + ssize_t (*send) (modbus_t *ctx, const uint8_t *req, int req_length); + ssize_t (*recv) (modbus_t *ctx, uint8_t *rsp, int rsp_length); int (*check_integrity) (modbus_t *ctx, uint8_t *msg, const int msg_length); int (*connect) (modbus_t *ctx); diff --git a/src/modbus-rtu.c b/src/modbus-rtu.c index 443a907..34441a1 100644 --- a/src/modbus-rtu.c +++ b/src/modbus-rtu.c @@ -156,14 +156,14 @@ int _modbus_rtu_send_msg_pre(uint8_t *req, int req_length) return req_length; } -ssize_t _modbus_rtu_send(int s, const uint8_t *req, int req_length) +ssize_t _modbus_rtu_send(modbus_t *ctx, const uint8_t *req, int req_length) { - return write(s, req, req_length); + return write(ctx->s, req, req_length); } -ssize_t _modbus_rtu_recv(int s, uint8_t *rsp, int rsp_length) +ssize_t _modbus_rtu_recv(modbus_t *ctx, uint8_t *rsp, int rsp_length) { - return read(s, rsp, rsp_length); + return read(ctx->s, rsp, rsp_length); } /* The check_crc16 function shall return the message length if the CRC is diff --git a/src/modbus-tcp.c b/src/modbus-tcp.c index f206391..04af558 100644 --- a/src/modbus-tcp.c +++ b/src/modbus-tcp.c @@ -130,17 +130,17 @@ int _modbus_tcp_send_msg_pre(uint8_t *req, int req_length) return req_length; } -ssize_t _modbus_tcp_send(int s, const uint8_t *req, int req_length) +ssize_t _modbus_tcp_send(modbus_t *ctx, const uint8_t *req, int req_length) { /* MSG_NOSIGNAL Requests not to send SIGPIPE on errors on stream oriented sockets when the other end breaks the connection. The EPIPE error is still returned. */ - return send(s, req, req_length, MSG_NOSIGNAL); + return send(ctx->s, req, req_length, MSG_NOSIGNAL); } -ssize_t _modbus_tcp_recv(int s, uint8_t *rsp, int rsp_length) { - return recv(s, rsp, rsp_length, 0); +ssize_t _modbus_tcp_recv(modbus_t *ctx, uint8_t *rsp, int rsp_length) { + return recv(ctx->s, rsp, rsp_length, 0); } int _modbus_tcp_check_integrity(modbus_t *ctx, uint8_t *msg, const int msg_length) diff --git a/src/modbus.c b/src/modbus.c index 793acc6..df1f43b 100644 --- a/src/modbus.c +++ b/src/modbus.c @@ -156,7 +156,7 @@ static int send_msg(modbus_t *ctx, uint8_t *req, int req_length) /* In recovery mode, the write command will be issued until to be successful! Disabled by default. */ do { - rc = ctx->backend->send(ctx->s, req, req_length); + rc = ctx->backend->send(ctx, req, req_length); if (rc == -1) { _error_print(ctx, NULL); if (ctx->error_recovery && @@ -346,7 +346,7 @@ static int receive_msg(modbus_t *ctx, int msg_length_computed, p_msg = msg; while (s_rc) { - read_rc = ctx->backend->recv(ctx->s, p_msg, length_to_read); + read_rc = ctx->backend->recv(ctx, p_msg, length_to_read); if (read_rc == 0) { errno = ECONNRESET; read_rc = -1;