Prepare NEWS file for next release
[libmodbus.git] / NEWS
blob5d68133d2e30bd0bd6829e928e104737b7247805
1 # NEWS
3 ## libmodbus x.x.x
5 - Fix float endianness issue introduced in v3.1.8 (49af73d).
6   Thank you @ghorwin for your excellent work on the subject.
7   Closes #665, #694, #757, #770.
8 - Don't build with debug flag by default anymore.
9 - Check request length in `modbus_reply` when used in `memcpy`.
10   Thank you Nozomi Networks Labs Advisory for the report.
11 - Fix insecure data handling. CID 416366: INTEGER_OVERFLOW found with Coverity
12   Scan.
13 - Remove useless cast in setsockopt call (closes #721)
14 - Link against socket and nsl libs when building on SunOS. Thank you @lanurmi.
15 - Update documentation about tcp-pi requiring 1 KiB of extra memory (closes #715).
16   Thank you @psychon.
17 - Documentation improvements by @cedricboudinet and @mhei.
18 - Revert TCP checks for recovery (closes #711).
19 - Don't use loop initial declaration (closes #752).
20 - Fix wrong generated version for double number in win32 (closes #675).
21 - Don't use gai_strerror if not available.
22 - Add checks for netinet/ip.h and gai_strerror
23 - Log error in read input registers if debug (closes #755).
24 - Fix errno value on timeout with TCP connect (closes #736, #756).
25   Thank you @kyllingstad for the issue and @psychon for the fix.
26 - Free addrinfo struct on getaddrinfo() errors.
27 - Fix doc of modbus_mapping_new_start_address (#615).
29 ## libmodbus 3.1.10 (2022-12-07)
31 Urgent release to fix a regression.
33 - Fix baud rate handling with RTU under Linux
34 - Fix modbus_disable_quirks signature
36 ## libmodbus 3.1.9 (2022-12-03)
38 - Remove Travis CI
39 - Move content about migration to libmodbus.org
40 - Avoid negative value in FD_SET call
41 - Test socket against positive value instead of -1
42 - Improvements to autotools by @ndim
43 - Fix doc links by @jordanjohnson56
44 - Test the protocol id for 0 by @metapsychologe
45 - Fix double negative in tests
46 - New quirks handler (closes #38 #533)
47 - Fix bitwise OR in documentation
48 - Improve doc about slave ID in RTU
49 - Add .clang-format and format code (closes #394)
50 - Remove constraints on baud rate values
51 - Accept IP or device in arg of unit test progs
52 - Avoid compilation issue with VS2022 with strdup
53 - Display created files in configure.js
54 - Use strcpy_s under Windows
55 - Replace inet_addr by inet_pton calls
56 - Replace inet_ntoa by inet_ptop
57 - Update configure.ac/config.h.win32 for new inet functions
58 - Instructions to build libmodbus in a VS project
59 - Fix connection check for Windows RTU (closes #660, #662)
60 - Add CIFuzz Github action
61 - Convert a few int to unsigned int (#402)
63 ## libmodbus 3.1.8 (2022-08-17)
65 - Major rewrite of documentation with Material for mkdocs
66 - Reduce memory use of TCP PI backend (closes #621)
67 - Fixed MODBUS_ERROR_RECOVERY_LINK not working on Windows (@embeddedmz)
68 - Replace Travis CI by GitHub CI
69 - Fix linker error for Windows (VCLinkerTool)
70 - Address check in single register / coil responses added (#463)
71 - Swap CRC bytes in request data but not at CRC computing (#397)
72 - Fix float endianness issue on big endian architecture
73 - Fix comment about EMBUNKEXC (closes #566)
74 - Fix network library detection on Haiku
75 - Fix typos (closes #620)
77 ## libmodbus 3.1.7 (2022-01-09)
79 - modbus_reply: fix copy & paste error in sanity check (fixes #614)
80 - Add SECURITY.md (closes #613)
81 - Fix typo in comment (closes #588)
82 - Replace obsolete AC_PROG_CC_STDC by AC_PROG_CC
83 - Fix position of CC flags in documentation (closes #599)
84 - Remove duplicate ';' (closes #602)
85 - Add the baud rate of 256k for Windows (closes #603)
86 - cosmetic changes in man page standardizing itemization
87 - Fix many typos
88 - Replace .dir-locals.el (Emacs) by .editorconfig
89 - Include the test LICENSE in tarball
90 - Install the NEWS and AUTHORS files
91 - Update README.md
92 - docs: fix simple typo, reponse -> response
93 - Add modbus\_[get|set]\_indication_timeout to doc build
94 - Fix warning issues
95 - Move malloc before starting unit tests
96 - Fixed MODBUS*GET*\* macros in case of negative values
97 - SPDX: change LGPL-2.1+ to LGPL-2.1-or-later
99 Thank you to @yegorich, @i-ky, @jobol, @timgates42, @anton-bondarev,
100 @richardash1981, @stefannilsson, @Zugschlus, @qqq89513 and @mhei.
102 ## libmodbus 3.1.6 (2019-07-31)
104 - Fix awful typo in fix for VD-1301 vulnerability.
105     Thank you @karlp.
107 ## libmodbus 3.1.5 (2019-07-29)
109 - Fix URL
110 - Add appveyor.com config
111 - Update libmodbus.txt
112 - Change arg value from int to const uint16_t in modbus_write_register
113 - Mark raw_req argument as const in modbus_send_raw_request (closes #479)
114 - Add unit tests for VD-1301 and VD-1302 vulnerabilities
115 - Fix VD-1301 and VD-1302 vulnerabilities
116 - Create CODE_OF_CONDUCT.md
117 - modbus_mapping_t is now a named typedef (to allow forward declaration)
118 - Rename type as flags for consistency between functions
119 - Add missing SOCK_CLOEXEC flag on socket creation
120 - Remove wrong and harmful checks in configure.ac
121 - Oops fix OR on RS485 settings (1c5d969)
122 - Only set SER_RS485_ENABLED bit of existing RS485 settings
123 - Add .vscode/ to .gitignore
124 - Fix wrong function name
125 - Remove a duplicated semi-colon
126 - Fix a small typo in test message
127 - Fix modbus_reply for TCP when unit id == 0 (fixes #376)
128 - New functions to define the indication timeout (#95)
129 - Remove CYGWIN condition to provide bswap16 fallback (#383)
130 - typo fix
131 - Use builtin bswap16 of gcc 4.8 (#377)
132 - Handle out-of-memory conditions more gracefully
133 - [doc] Add entry points for accept/listen in libmodbus index
134 - Fix typo
135 - Refine issue template for Github
136 - Move WINVER definition before other includes (#350)
137 - Add new function modbus_get_slave()
138 - Fix LIBMODBUS_VERSION_HEX encoding (closes #345)
139 - tcp_modbus_accept mustn't close socket on error (closes #333)
141 ## libmodbus 3.1.4 (2016-05-28)
143 - C_PROG_RANLIB is rendered obsolete by LT_INIT
144 - Improve ifdef around bswap_16 for **CYGWIN**
145 - Improve Cygwin support. Thanks to StalderT.
146 - Another round of DRY in modbus_reply()
147 - Rename raw_rep to raw_rsp in unit-test-client
148 - Fix wrong function name in debug message
149 - Fix handling of invalid function code (closes #315)
150 - Add debug message on unknown function and new unit test
151 - DRY in modbus_reply by improving response_exception()
152 - Fix typo in 3053bd0adb
153 - CID 69145 - Argument cannot be negative in unit-test-server
154 - CID 69142 - Unchecked return value in unit-test-server
155 - Fix CID 69140 - Bad bit shift operation (coverity) in tests
156 - Rewrite and rename README as README.md in tests/
157 - Github's contributing and issue template files
158 - Fix small leak (64 bytes in TCP) in unit-test-client
159 - Add unit-tests.sh to tarball
160 - Add ./configure.scan to .gitignore
161 - Move setting of option inside the relevant conditional group
162 - Add links to new modbus*\*\_float*\* functions in index
163 - Slight change to modbus_report_slave_id doc.
165 ## libmodbus 3.1.3 (2016-05-11)
167 - New bswap macros for Max OSX by Jakob Bysewski.
168 - Fix "wildcard address" in TCP IPv6 by Shoichi Sakane.
169 - Introduce offsets in modbus mappings with modbus_mapping_new_start_address.
170     Thanks to Michael Heimpold and Stéphane Raimbault.
171 - Fix address range in random-test-client.
172     Thanks to Martin Galvan.
173 - Add an option to disable tests compilation by Yegor Yefremov.
174 - Define MSG_DONTWAIT to MSG_NONBLOCK on AIX (#294).
175     Thanks to Fabrice Cantos.
176 - Fix building when byteswap.h is not defined by Tomasz Mon.
177 - Add some more macros for data manipulation and documentation.
178 - Remove duplicate install of modbus.h (closes #290).
179     Thanks to Daniel Sutcliffe.
180 - Move MIGRATION and README.md to dist_doc_DATA target.
181 - Change order of few functions in modbus RTU code.
182 - Add entries for modbus*rtu*[get|set]\_delay in documentation index.
183 - Implemented runtime configurable RTS delay by Jimmy Bergström.
184 - Add an entry in libmodbus index page for modbus_rtu_set_custom_rts.
185 - Add support for user defined RTS toggle function by Jimmy
186     Bergström.
187 - Added ILLEGAL_DATA_ADDRESS tests for modbus_write_register[|s].
188     Thanks to Andrey Skvortsov.
189 - Update documentation of modbus_rtu_set_rts
190 - Fix rts signal switch time by Hiromasa Ihara.
191 - Improve new_rtu and set_slave documentation (related to #276).
192 - Fix late check of ctx in modbus_reply[|_exception] (closes #269).
193 - Wait the server for 1 second before running tests (help Travis).
194 - A libmodbus context isn't thread safe and won't be (closes #246).
195 - Fix buffer overflow in modbus_mask_write_register (#265).
196 - Minor adjustments to README about AsciiDoc.
197 - Export MODBUS_MAX_ADU_LENGTH and documentation (ref #241).
198 - Explicit check against Modbus broadcast address.
199 - Do not reply on broadcast requests (fixes #153). Thanks to Michael.
200 - Add Travis support.
201 - Run unit tests with standard: make check (closes #205, closes #238).
202     This patch has been developed by Andrey Skvortsov, Michael Heimpold
203     and Stéphane Raimbault.
204 - modbus_send_raw_request: limit request length (fixes #207).
205     Thanks to Hanno Neuer for spotting this security flaw.
206 - Add new contributors to AUTHORS
207 - Introduce SPDX license identifiers. Thanks to Michael Heimpold.
209 ## libmodbus 3.1.2 (2015-02-13)
211 If you still want to listen any addresses in your TCP IPv4 server, you must now
212 set the IP address to NULL in modbus_new_tcp before listening. Now,
213 modbus_tcp_listen only listen the IP address set in the Modbus context (see
214 documentation).
216 This release introduces API changes on modbus_get_byte_timeout,
217 modbus_get_response_timeout, modbus_set_byte_timeout,
218 modbus_set_response_timeout to ease writing of language bindings.
220 - Rewrite documentation building system
221 - Fix timeouts in unit tests
222 - Don't flush on illegal address errors in single write functions
223 - Fix compilation on compilers not supporting c99 mode.
224     Thanks to Michael Heimpold.
225 - Update license for the tests in Debian packaging (#221)
226 - Move check of device earlier to avoid a free call
227 - Unit test for baud rate check and error message.
228 - Fix crash modbus_new_rtu when baud is 0.
229     Thank you to Daniel Schürmann.
230 - Removed function prototype without implementation
231     Thank you Andrej Skvortzov.
232 - Switch test programs to a BSD license
233 - Fix remote buffer overflow vulnerability on write requests
234 - Avoid twice connect() in source code (closes #194)
235 - Fix compilation with MinGW (GCC 4.8.1) under Win7 (closes #163)
236     Thank you MarjanTomas and SwissKnife.
237 - Fix TCP IPv4 modbus_connect() on win32 (closes #100 and #165)
238     Thank you Petr Gladkiy and Marjan Tomas.
239 - Fix 24a05ebd3c0 - win32: init of modbus_tcp_pi_listen (#187)
240 - INADDR\_\* macros are defined in host byte order
241 - Filter of IP addresses in IPv4 server (closes #190)
242 - Allow to listen any hosts in IPv6 (closes #32)
243 - Define and public export of MODBUS_MAX_PDU_LENGTH (closes #167)
244 - Truncate data from response in report_slave_id to new max arg (closes #167)
245 - Fix response timeout modification on connect (closes #80)
246 - New API to set/get response and byte timeouts.
247     New unit tests and updated documentation.
248 - Export Modbus function codes supported by libmodbus
249 - Fix bandwidth-server-one (closes #152)
250 - Check debug flag in RTU code
251 - Remove warnings caused by shadowed 'index' variable.
252     Thanks to Åke Forslund.
253 - Use accept4 in TCP PI if available
254 - Add documentation for tcp[_pi]\_accept (closes #31)
255 - Fix mistake in modbus_tcp_listen documentation
256 - Add documentation for modbus_tcp_pi_listen
257 - Fix for MinGW and Windows (#144, #169, #175, #180, #181, #187)
258     Thanks to Marjan Tomas.
259 - Many other fixes (#134, #157, #158, #183, #184) and improvements.
261 ## libmodbus 3.1.1 (2013-10-06)
263 More robust to exploits, more compliant and better handling of connect/close
264 sequences. Windows support still broken.
266 - New unit tests
267 - Fix remote buffer overflow vulnerability (closes #25, #105)
268 - Explain how to define response timeouts when many RTU slaves
269 - Fix receiving of incorrect queries in write_single and mask_write_register
270     Thanks to James Nutaro.
271 - Check return value of autoreconf.
272     Thanks to Lauri Nurmi
273 - Constant for broacast and test ordering
274 - Fix the fix of device string check
275 - Various changes to try to improve *broken* Windows support
276 - Try to fix MinGW compilation
277 - Portable use of bswap_32
278 - Improve support of MacOS X
279 - Fix socket value on init/close
280 - Returns -1 on invalid mode in modbus_rtu_set_rts
281 - Protect all public functions against invalid context
282 - Sleep for delay of response timeout before reconnect (closes #77).
283     Thanks to Karl Palsson.
284 - Baud rate until 4,000,000 (POSIX), 1,000,000 (Windows) (closes #93)
285 - New modbus_get|set_float_dcba to get|set float in inversed byte order
286 - Remove unsupported -Wtype-limits for GCC < 4.3.5 (closes #109)
287 - Enable out-of-source build. Thanks to Yegor Yefremov.
288 - Fix alignment problem on ARMv5 platform
289 - Improvement to Debian package. Thanks to Alexander Klauer.
290 - Improve support of VS 2005. Thanks to Petr Gladkiy.
291 - Add documentation for modbus_mask_write_register (closes #91).
292     Thanks to Martijn de Gouw.
293 - Avoid C99 declaration in win32 section code (closes #92).
294     Thanks to oldfaber and endrelovas.
295 - Add a windows scripting host configure file.
296     Thanks to oldfaber and Stéphane Raimbault.
297 - Fix typo in modbus_strerror documentation. Thanks to Mirko Rajkovaca.
298 - Rename reserved C++ keywords of modbus_mask_write_register.
299     Thanks Tobias Doerffel.
300 - Another quick workaround for deficient OS (closes #63)
301 - Add support for Mask Write Register
302 - Fix missing close on socket in random-test-server.
303     Thanks to Damian Zieliński.
304 - Use nonblocking sockets on Win32 and OS X/iOS too.
305     Thanks to Julian Raschke.
306 - Fix all compilations warnings spotted by new compilation flags
307 - Major update of build system
308 - Calculate RTS activation time by send length
309 - Dynamic memory allocation of device name (closes #11)
310 - Add unit tests for modbus_mapping_new
311 - Add Visual Studio 2008 project files by oldfaber
312 - Fix missing argument in synopsis section of modbus_rtu_set_serial_mode
313 - Fix wrong constant names to create version number
314 - More compilation fixes for Windows by oldfaber.
315 - Fix wrong constant names to create version number.
316     Thanks to Denis Davydov.
318 ## libmodbus 3.1.0 (2012-06-22)
320 Major changes to handle many slaves in RTU mode, non blocking connections and
321 RTS flow control.
323 - Fixes for Microsoft Visual C++ compiler
324 - Fixes for Windows. Thanks to oldfaber
325 - Return value of \_modbus_tcp_pi_connect() on failure (closes #61)
326 - Avoid ioctl call on non-RS485 ports. Thanks to Michael Haberler
327 - Display node and service in PI and port in IPv4 at connection
328 - Return -1 on getaddrinfo error and print error in debug mode
329 - More robust way to establish the connection in non blocking mode
330 - TCP - Socket in non blocking mode by default. Thanks to Thomas Stalder
331 - Apply CLOEXEC flag for TCP protocol independent too (IPv6)
332 - New RTU receive() to ignore confirmation from other slaves (closes #18)
333 - Move RTU filtering in CRC check to avoid useless call to modbus_reply
334 - Unique transaction identifier by TCP connection
335 - Use accept4 with SOCK_CLOEXEC when available (Linux)
336 - Open fd and socket with the CLOEXEC flag when available
337 - Exception response on report slave ID wasn't detected (closes #27)
338 - Provides a way to disable the byte timeout (Alex Stapleton)
339 - Added slave ID check for response messages (Alex Stapleton)
340 - RTS flow control with modbus_rtu_set_rts and modbus_rtu_get_rts
341     functions by Torello Querci <tquerci@gmail.com> and Stéphane Raimbault.
343 ## libmodbus 3.0.8 (2019-07-31)
345 - Fix awful typo in fix for VD-1301 vulnerability.
346     Thank you @karlp.
348 ## libmodbus 3.0.7 (2019-07-29)
350 - Backport fixes for VD-1301 and VD-1302 vulnerabilities
351 - Move WINVER definition before other includes (closes #350)
352 - Replace signed int by unsigned
354 ## libmodbus 3.0.6 (2014-02-21)
356 - Backport fix remote buffer overflow vulnerability on write requests
357 - Replace deprecated INCLUDES by AM_CPPFLAGS
359 ## libmodbus 3.0.5 (2013-10-06)
361 - Fix remote buffer overflow vulnerability
362 - Fix receiving of incorrect queries in write_single
364 ## libmodbus 3.0.4 (2012-05-08)
366 - autogen.sh creates symlinks instead of copies
367 - Add missing m4 directory (closes #103)
368 - Fix alignment problem on ARMv5 platform
369     Thanks to Alexander Dahl
370 - Remove useless test on error_recovery argument
371     Thanks to Carlos Tangerino
373 ## libmodbus 3.0.3 (2012-05-25)
375 - Fix another Visual C++ 2008/2010 deficiency (closes #53)
376 - Add -lsocket to compile on QNX
377 - Fix TCP PI init under Windows.
378     Thanks to oldfaber.
379 - Fix a missing free in random-test-client
380     Thanks again to Stefan Finzel.
381 - Fix OMG bug in modbus_mapping_free not freeing memory.
382     Thanks to Stefan Finzel for the bug report.
383 - Fix semicolon typo and unistd.h include under Windows.
384     Thanks to Andrew Kravchuk.
386 ## libmodbus 3.0.2 (2012-01-16)
388 - Update Debian package
389 - Documentation fixes and additions
390 - Add missing C++ macros in public headers.
391     Thanks to Bernhard Agthe.
392 - Protects modbus_mapping_free against NULL argument.
393     Thanks to Andrea Mattia
394 - Fix check on file doc/libmodbus.7 in acinclude.m4 (closes #28)
395 - Close file descriptor when the settings don't apply in RTU.
396     Original patch provided by Thomas Stalder.
397 - unit-test.h is now generated to avoid config.h dependency.
398 - Request for Windows Sockets specification version 2.2 instead of 2.0
399     Thanks to Pavel Mazniker for the report.
401 ## libmodbus 3.0.1 (2011-07-18)
403 - Avoid useless serial_mode integer when TIOCSRS485 isn't supported
404 - Fix compilation failure on Windows (RS485 support) by Tobias Doerffel
405     <tobias.doerffel@gmail.com>
406 - Properly check TIOCSRS485 define by Matthijs Kool
407 - Rename package to libmodbus5 to fix lintian warning
409 ## libmodbus 3.0.0 (2011-07-11)
411 - Revert libmodbus licence from LGPLv3 to LGPLv2.1 to avoid
412     incompatibility with GPLv2 program. This change has been approved
413     by Tobias Doerffel, Florian octo Forster and Hannu Vuolasaho.
414 - Enable RS485 support only when available
415 - Export modbus_set/get_serial_mode functions on all platforms
416 - API change for read/write multiple registers function:
417     - modbus_read_and_write_registers -> modbus_write_and_read_registers
418         The function name was confusing because the write operation is performed
419         before the read. Take care to swap the arguments in the migration process.
420 - Documentation of modbus*write_and_read_registers, modbus_mapping_new/free,
421     report_slave_id. modbus_get_byte_from_bits, modbus_set_bits_from_byte(s),
422     modbus*[gs]et_float, modbus_reply and modbus_reply_exception.
423 - Enhanced report slave ID
424 - New RPM spec file to package documentation and development files
426 ## libmodbus 2.9.4 (2011-06-05)
428 - IPv6 support
429     Make the TCP implementation "protocol independent" by Florian Forster
430     and Stéphane Raimbault.
431 - Fix compilation on Windows 7 (x64) with MinGW/MSYS and GCC 4.5
432     Reported by Patsy Kaye.
433 - Documentation of libmodbus functions with AsciiDoc (man and HTML) by Stéphane
434     Raimbault
435 - Avoid an iteration in flush function
436 - New functions to send and receive raw requests (modbus_send_raw_request,
437     modbus_receive_confirmation)
438 - Fix flush function of TCP backend on Windows
439 - API changes for server/slave:
440     - modbus_receive doesn't take socket/fd argument anymore
441     - new function modbus_set_socket to set socket/fd
442 - API changes for timeout functions:
443     - modbus_get_timeout_begin -> modbus_get_response_timeout
444     - modbus_set_timeout_begin -> modbus_set_response_timeout
445     - modbus_get_timeout_end -> modbus_get_byte_timeout
446     - modbus_set_timeout_end -> modbus_set_byte_timeout
447 - Fix longstanding limitation of server to wait forever
448 - New functions modbus_set/get_serial_mode by Manfred Gruber and Stéphane
449     Raimbault for RS485 communications
450 - Improved recovery mode (see modbus_set_error_recovery documentation) for
451     data link and protocol errors.
452 - Fix compilation issue with Microsoft Visual Studio 2008.
453     Reported by Allan Cornet.
455 ## libmodbus 2.9.3 (2011-01-14)
457 - Major rewriting of the message reading (no more timeouts on exception)
458     by Stéphane Raimbault
459 - New function to reply to an indication with an exception message
460     modbus_reply_exception()
461 - New function modbus_get_header_length(modbus_t \*ctx)
462 - New functions to manipulate data:
463     - MODBUS_GET_INT32_FROM_INT16
464     - MODBUS_GET_INT16_FROM_INT8
465     - MODBUS_SET_INT16_TO_INT8
466 - Fix GH-2. Read/write were swapped in \_FC_READ_AND_WRITE_REGISTERS
467 - Install an ignore handler for SIGPIPE on \*BSD
468     Original patch by Jason Oster.
469 - Fix closing of Win32 socket.
470     Reported by Petr Parýzek.
471 - Fix unit identifier not copied by the TCP server.
472     Reported by Antti Manninen.
473 - Fix missing modbus_flush() in unit tests
474 - Fixes for OpenBSD by Barry Grumbine and Jason Oster
476 ## libmodbus 2.9.2 (2010-12-05)
478 - Win32 support by Tobias Doerffel
479 - Split source code around RTU and TCP (backends)
480 - Rename modbus*[listen|accept] to modbus_tcp*[listen|accept]
481 - Remove slave argument from modbus_new_rtu()
482 - Check received function code
483 - Fix segfault in bandwidth-server-many-up on inet_ntoa() call
484 - Fix unit test of report slave ID in RTU
485 - Fix GH-3. Remove inclusion of config.h in modbus.h
486 - Correctly detect if we are cross-compiling for win32 by Kirill Smelkov.
487 - Fix setting of the broadcast address
489 ## libmodbus 2.9.1 (2010-08-16)
491 - Brand new API (see MIGRATION notes)!
492 - Remove the internal function set_message_length_tcp
493 - Restore slave ID (server ID) argument in functions
494 - Error conventions of POSIX systems and error recover
495 - Parity setting is now a single char ('N', 'E' or 'O')
496 - Report slave ID server side
497 - OpenBSD support by Anibal Limón.
498 - New read and write registers function by Hannu Vuolasaho.
499 - Versioning infrastructure
500     Inspired by the Clutter project and the work done by Florian Forster.
501 - Fix the broadcast constant (255 -> 0)
502     Reported by David Olivari.
503 - Fix #463299 - New functions to define the timeouts of begin and end of trame
504     Original patch by Sisyph (eric-paul).
505 - Fix #591142 - Slave id check should be disabled in TCP connection
506     Reported by aladdinwu.
508 ## libmodbus 2.1.0 (2010-03-24)
510 - New API to read and write float values by Stéphane Raimbault and Florian
511     Forster.
512 - New API for slave server (see MIGRATION)
513 - New slave server able to handle multiple connections
514 - Slave only replies to broadcast queries or queries with its slave ID
515 - Improved Modbus protocol conformance
516 - modbus_param_t is smaller (2 int removed)
517 - Better error management and SIGPIPE signal is blocked
518 - Faster
519 - Fix #333455 - Cygwin IPTOS_LOWDELAY not supported on cygwin
520     Reported by Jeff Laughlin and Yishin Li.
521 - Fix #375926 - modbus.c:164: error: `MSG_DONTWAIT' undeclared
522     Reported and tested by Yishin Li.
523 - Fix #378981 - CRC error on RTU response doesn't return negative value
524     Reported by Henrik Munktell.
525 - Fix report slave ID request
526     Patch (bzr) provided by Paul Fertser.
527 - Fix #425604 - Conditional jump or move depends on uninitialised value(s)
528     Occurs on first occurrence of slave timeout.
529     Reported by Henrik Munktell.
530 - Fix #457200 - FreeBSD support
531     Patch provided by Norbert Koch.
533 Other changes:
535 - The code is now published and developed on <http://github.com/stephane/libmodbus>
536 - Waf support has been removed
538 ## libmodbus 2.0.3 (2009-03-22)
540 - Fix CRC error when a slave RTU send a response.
541     Thanks to Justin Carroll to have reported and tested my patch.
542 - Remove an assignment in compute_response_length()
543 - Remove duplicate counter in read_io_status()
544 - Fix #274511 reported by 'Kylesch'
545     Invalid error check in modbus_init_listen_tcp
547 ## libmodbus 2.0.2 (2008-08-10)
549 - Fix a bug reported by email by Davide Pippa
550     The function modbus_receive must check the number of values
551     indicated in the response accordingly to the query.
552 - Fix #241006 reported by Jesus Hernandez Tapia
553     modbus_check_response() crashes on an invalid exception code
554 - Reduce the number of function calls (read_reg_response and
555     preset_response have been removed)
556 - Add a new unit test for bad response
557 - Catch the timeout even if the length is equal to a exception trame
558 - Test only msg_length_computed on change
559 - Many comments and cleanups
561 ## libmodbus 2.0.1 (2008-07-02)
563 - Include libmodbus.spec in the tarball
564 - Fix #241006 reported by Jesus Hernandez Tapia
565     modbus_check_response() crashes on an invalid exception code
567 ## libmodbus 2.0.0 (2008-05-18)
569 - Slave API
570     <https://blueprints.launchpad.net/libmodbus/+spec/slave-api>
571 - No more glib dependency
572     <https://blueprints.launchpad.net/libmodbus/+spec/glib-dependency>
573 - Unit testing and many test programs
574 - Waf build support
575     <https://blueprints.launchpad.net/libmodbus/+spec/waf-support>
576 - MacOS X support by Matthew Butch
577     <https://blueprints.launchpad.net/libmodbus/+spec/macosx-support>
578 - Unit testing (unit-test-slave and unit-test-master)
579 - Port number is now defined at initialisation by Dirk Reusch
580 - Better memory management (uint8_t \*data and packing of
581     modbus_param_t)
582 - Better error management
583 - Declare many static functions and const arrays
584 - Enhance an integer division
585 - The GNU licences LGPL and GPL are in version 3
586 - Debian and RPM packages (#224496)
587 - Many cleanups
588 - Fix #159443 reported by Stefan Bisanz
589     Index of incoming data in force multiple coils function
590 - Fix #161989 reported by Konstantinos Togias
591     Serial device paths more than 10 chars long (eg. /dev/ttyUSB0) don't
592     fit to modbus_param_t -> device char[11] var.
593 - Fix #188189 reported by Chris Hellyar
594     Compute_response_size() no entry for read_input_status()
595 - Fix #191039 reported by Todd Denniston
596     modbus.h is not installed at prefix.
597 - Fix #211460 reported by Todd Denniston
598     With TCP, automatic reconnect on error may not be desired.
599 - Fix #224485 reported by Todd Denniston
600     libmodbus does not link with c++ code.
601 - Fix #224496 reported by Todd Denniston
602     It is easier to install on rpm based systems with a spec file.
604 ## libmodbus 1.2.5 (2008-05-18)
606 - Fix #224485 reported by Todd Denniston
607     libmodbus does not link with c++ code.
609 ## libmodbus 1.2.4 (2008-03-14)
611 - Fix #191039 reported by Todd Denniston
612     modbus.h is not installed at prefix.
614 ## libmodbus 1.2.3 (2008-02-03)
616 - Fix #188189 reported by Chris Hellyar
617     Compute_response_size() no entry for read_input_status()
618 - Fix #181887 reported by Jesus Hernandez Tapia.
619     Slave address in build_request_packet_tcp() is hardcoded as 0xFF.
621 ## libmodbus 1.2.2 (2007-11-12)
623 - Fix #161989 reported by Konstantinos Togias
624     Serial device paths more than 10 chars long (eg. /dev/ttyUSB0) don't
625     fit to modbus_param_t -> device char[11] var.
626 - Structure is also bit better 'packed' to conserve memory (see the
627     trunk for a real enhancement).
629 ## libmodbus 1.2.1 (2007-11-02)
631 - Fix #159443 reported by Stefan Bisanz
632     Index of incoming data in force multiple coils function
633 - Deleted useless code in check_crc16()
634 - Untabify source code
635 - Changed author's email to Stéphane Raimbault
637 ## libmodbus 1.2.0 (2007-05-10)
639 - FIX Compilation GCC-4.0
640 - Project name in autogen.sh