The C client previously set a very short read timeout because it was required
by the plugin. To compensate for this on the client side, we would try to
read several times in a loop. Since the plugin no longer uses the C client for
networking, we can do away with the loops and set a proper timeout.
- Swaped names of openUDP and aopenUDP.
- openUDP is now the "automatic" version, requiring only the X-Plane IP address.
- aopenUDP is now the "advanced" version, requiring both the X-Plane port and a client port.
- Added support for passing NULL to sendTEXT.
Fix Bug- readUDP loop in getDREF Response only ran once no matter what.
This wasn’t enough time for the plugin to send a response.
Note: You can try increasing the timeout, but the plugin has to have a
socket with a timeout of 1ms or less. If the timeout is higher than
that a lag is introduced.
- Fixed a buffer overflow in sendCTRL.
- Fixed incorrect inderection in readUDP.
- Removed unused usleep function.
- Removed redundant include of WS2tcpip.h
- Fixed widespread error where sendUDP's return value was not being checked correctly.
- Updated signature of openUDP to place optional parameters at the end
- Fixed bug in CTRL command where the buffer length was not correctly set.
- Fixed setCONN to correctlly reset the client's socket.
- Removed parseCTRL and readCTRL.
- Tweaked variable type, order and naming.
- Improved validation and error reporting.
- Updated Interface Control Document to reflect adition of aircraft number to CTRL command.
- Removed readPOSI and parsePOSI functions. These were only used by the plugin, which no longer uses them.
- Tweaked types, argument order, and names to improve concision and consistency with other functions.
- Improved validation and error reporting.
- printError is now a varags function, and will print format strings for the message.
- Removed several internal DREF functions from the header file.
- Significantly improved error reporting in DREF functions.
- Removed dynamic allocation for responses. Clients are now expected to provide fully allocated storage for getDREFs. An error message will be printed if the provided structure is too small.
- Fixesnasa/XPlaneConnect#30
- Tweaked signatures to improve consistency and safety.
- Improved error logging.
- Removed parseDATA. When merged into readDATA, the meat of parseDATA is only a few lines of code.
- Tweaked function signatures to more accurately reflect internal behavior.
- Changed behavior of setCONN to use the inbound port of the socket passed to it.
- Greatly enhanced error reporting for setCONN and pauseSim.
- Tweaked variable names to be more concise.
- Moved variable declarations from top of function to point of use.
- Replaced memcpy with strncpy where appropriate.
- Removed socket reuse options on *nix builds.
- Improved error reporting.
- Most failures when opening and closing sockets now cause the client to die.
- sendUDP now ignores the length byte.
- Defined a new struct that contains the information sent by the CTRL command
- Added some additional validation to parseCTRL.
- Changed the return type of parseCTRL and removed now redundant pointer parameters.
- Propagated return type change throughout the plugin code base.
- Added Visual Studio solution for C client example.
- Fixed inconsistent indentation in C client example.
- Changed default behavior in MATLAB client's sendCTRL function to leave unchanged instead of setting default values.
- Fixed sendPOSI and sendDATA sections of the MATLAB example.
- Fixed port number in the C and C++ setCONN tests.
- Temporarily disabled the sending of a CONF message from the plugin in response to setCONN. The CONF message causes crashes on Windows 8 when setCONN is called multiple times.
- Removed code that attempted to free result slots in parseRequest before overwritting them with new allocations. The CTests suite currently calls parseRequest with a multidimensional array allocated on the stack, resulting in an attempt to free stack memory. A better solution may be to simply check whether the existing result slots are long enough.
- As of this commit, all tests in the CTests suite are passing on Windows 8 for X-Plane 9, X-Plane 10 23bit and X-Plane 10 64bit.
- Fixed incorrect message buffer size in sendCTRL function.
- Fixed a bug in sendCTRLTest where not all DREF sizes were being set.
- Increased message buffer size in sendReadTest to account for assumptions made by sendUDP.
- Fixed a bug in updateLog where the log message would sometimes start with several null characters, causing the log message to be effectively ignored by fprintf.
- The xpcPlugin Visual Studio solution now supports 32 bit and 64 bit builds.
- Logging performed by the plugin now works correctly on Windows.
- Long log messages are now truncated to 500 characters. Previously, messages over 500 characters would be omitted, and an error message logged in their place.
- Several files which were incorrectly added to source control have been deleted.
This commit:
- updates the XCode project to 6.1.1
- updates the reference to the xpcExample source file
- modifies the project so that some of the files that are copied across during the build phase are
only done during deployment.
Signed-off-by: Elvis Dowson <elvis.dowson@gmail.com>
- The result of a call to realloc was erroneously thrown away, creating a potential memory leak.
- Values were being copied to an array on the stack, then memcpy'ed into an array on the heap. Since the heap array is freshly allocated, it should be completely safe to memcpy the data directly into it.
- The inner loop was copying the same value several times, rather than copying several values in series.