FIX: Order Cancel/Replace Request and Order Cancel Reject

Signed-off-by: Marat Stanichenko <mstanichenko@gmail.com>
FIX: OrigClOrdID field is added

Such a FIX field is used to identify the order which is
being cancelled or replaced

Signed-off-by: Marat Stanichenko <mstanichenko@gmail.com>
FIX: Increase header and body buffer's size

So far we haven't developed a reliable algorithm to obtain
header or body buffer's size. Current values are not enough
for such messages as Order Cancel/Replace

Signed-off-by: Marat Stanichenko <mstanichenko@gmail.com>
FAST orderbook: set glasks and glbids to NULL explicitly

Once a particular order book is finalized (ob_fini() is called)
we must not refer to internal structures anymore as they are
released. Hence ob_init() is to make sure that internal structures
are initialized before a user is allowed to refer to them.

Otherwise we are exposed to illegal memory access:

ob_fini();
ob_init();

refer to glasks/glbids will lead to SIGSEGV

Signed-off-by: Marat Stanichenko <mstanichenko@gmail.com>
Merge pull request #35 from mstanichenko/mstanichenko

FIX and FAST updates
include extra libraries as run-time dependencies of libtrading.so
fix_session_cfg_new: function to construct a fix configuration.

This kind of function is helpful when writing bindings to libtrading
from other languages where it's easier to treat C structs as opaque
pointers.
Merge pull request #36 from StefanKarpinski/sk/Makefile

include extra libraries as run-time dependencies of libtrading.so
Merge pull request #37 from StefanKarpinski/sk/fix_session_cfg_new

fix_session_cfg_new: function to construct a fix configuration.
FAST parser: Wait for socket data in a 'raw' mode

We should be aware of non-blocking sockets and wait
for data to come before reading bytes. There is no
performance consideration in a 'raw'-mode so waiting
is acceptable here

$ ./tools/fast/fast_parser -p raw -m xxx.xxx.xxx.xxx:xxx -l xxx.xxx.xxx.xxx -o file
Parser: Cannot read data (Resource temporarily unavailable)

Reported-by: Marek Sulovsky <mareksulovsky@gmail.com>
Signed-off-by: Marat Stanichenko <mstanichenko@gmail.com>
Merge pull request #38 from mstanichenko/mstanichenko

FAST parser: Wait for socket data in a 'raw' mode
MOEX FORTS market certification program

This is a primitive and very simple program
that was used to certify the library on
Moscow Exchange FORTS market

Signed-off-by: Marat Stanichenko <mstanichenko@gmail.com>
Merge pull request #40 from mstanichenko/cert

MOEX FORTS market certification program
FIX: Order Cancel Request message support

- Supported order cancel request for FIX

- FIX tags that are required for execution report are added

Signed-off-by: Bojan Janjic <bojan@inquanto.com>
[ mstanichenko@gmail.com: cleanups ]
Signed-off-by: Marat Stanichenko <mstanichenko@gmail.com>
Signed-off-by: Pekka Enberg <penberg@iki.fi>
Allow user to patch in custom sendmsg and recv implementations.

Default versions just calling the system sendmsg and recv functions
are supplied, leaving the library behaviorally identical by default.
Merge pull request #41 from StefanKarpinski/sk/io_hooks

Allow user to patch in custom sendmsg and recv implementations.
FIX: prevent an infinite loop when a garbled message is parsed

The only message in the incoming buffer which happens to be garbled
leads to the infinite loop

Reported-by: Pekka Enberg <penberg@iki.fi>
Signed-off-by: Marat Stanichenko <mstanichenko@gmail.com>
Signed-off-by: Pekka Enberg <penberg@iki.fi>
Fix memory leak in soupbin3_session_new()

Spotted by Clang Static Analyzer.

Signed-off-by: Pekka Enberg <penberg@iki.fi>
Fix memory leak in fast_session_new()

Spotted by Clang Static Analyzer.

Signed-off-by: Pekka Enberg <penberg@iki.fi>
Eliminate dead store in parse_int()

Spotted by Clang Static Analyzer.

Signed-off-by: Pekka Enberg <penberg@iki.fi>