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