When reading data from the EON Steel, we'd generally continue reading until we saw that a response was done by seeing a packet that wasn't full. That broke for the case of the data boundary matching the packet boundary, fixed by the commit "suunto eon steel: fix file reading special case". However, that commit only fixed it for the case of reading a file, where the result has a size that is known up-front. And most other situations really don't matter, because the result size is fixed and fits in a single packet, so it all works. However, there are still a few cases that could trigger the problem, notably reading the directory contents. So change the send_receive() logic to actually read the expected size from the receive header in the first packet of the reply. This means that we need to re-organize the packet reception code a bit, but the end result is that we are much more careful about data sizes, This also changes the packet logging to be much more readable, by logging just the actual data, and not the (uninteresting) per-packet header, or the stale data at the end of the packet. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Overview ======== Libdivecomputer is a cross-platform and open source library for communication with dive computers from various manufacturers. The official web site is: http://www.libdivecomputer.org/ The sourceforge project page is: http://sourceforge.net/projects/libdivecomputer/ Installation ============ On UNIX-like systems (including Linux, Mac OS X, MinGW), use the autotools based build system. Run the following commands from the top directory (containing this file) to configure, build and install the library and utilities: $ ./configure $ make $ make install If you downloaded the libdivecomputer source code directly from the git source code repository, then you need to create the configure script as the first step: $ autoreconf --install To uninstall libdivecomputer again, run: $ make uninstall Support ======= Please send bug reports, feedback or questions to the mailing list: http://libdivecomputer.org/cgi-bin/mailman/listinfo/devel or contact me directly: jef@libdivecomputer.org License ======= Libdivecomputer is free software, released under the terms of the GNU Lesser General Public License (LGPL). You can find a copy of the license in the file COPYING.
Description
Languages
C
98.3%
M4
1.2%
Makefile
0.5%