diff --git a/src/modbus-tcp.c b/src/modbus-tcp.c index 1f5d453..01661e9 100644 --- a/src/modbus-tcp.c +++ b/src/modbus-tcp.c @@ -346,7 +346,10 @@ int _modbus_tcp_flush(modbus_t *ctx) return -1; } - rc = recv(ctx->s, devnull, MODBUS_TCP_MAX_ADU_LENGTH, 0); + if (rc == 1) { + /* There is data to flush */ + rc = recv(ctx->s, devnull, MODBUS_TCP_MAX_ADU_LENGTH, 0); + } #endif if (ctx->debug && rc != -1) { printf("\n%d bytes flushed\n", rc);