utils unixsock: Avoid memory allocations in common cases.
data: Let sdb_data_parse() accept a const string and copy it if necessary. Given that we need a copy for regex values anyway, this is more consistent.
unixsock, data: Moved sdb_unixsock_parse_cell() to sdb_data_parse(). The function parses a string into a datum. For date-time values, floating point seconds since the epoch are supported only. Added unit tests.
Include config.h in source files. Else, we don't get any definitions required for enforcing standard compliance.
core/data: Make string and binary data not constant. This will allow for more flexibility. However, it also requires to create a copy of data queried using libdbi.
Fixed memory errors identified by LLVM's AddressSanitizer. Test performed as: ./configure CC=clang \ CFLAGS="-O0 -g -fsanitize=address -fno-omit-frame-pointer" \ LDFLAGS=-fsanitize=address make clean all test See also http://clang.llvm.org/docs/AddressSanitizer.html
unixsock utils: Retry reading from socket if the call was interrupted.
Moved core/error to utils/error. Later, we'll use the module from the daemon and client.
utils unixsock: Explicitely enable line-buffering. The module is based on that, so say it explicitely.
Moved error / time from utils to core. This is more appropriate.
Removed newline at the end of sdb_log()'ed strings. The actual logging callback should take care of handling that appropriately.
Moved sdb_strerror() from utils/string.h to utils/error.h.
Renamed error recording / logging functions. sdb_error_set() now is sdb_log(); the sdb_error_start(), _append(), _finish() triple is now called sdb_error_set(), _append(), _log(). These names better describe what's actually going on.
Use the sdb_error* function throughout the project.
Renamed the project to SysDB (System DataBase). This name more closely resembles the actual intent / goal of the project. The prefix for defines / function / etc. has been changed to sdb_.
utils dbi + unixsock: Pass user-data object to data processing callbacks. This may be used to access, for example, state information throughout each call.
utils unixsock: Added sc_unixsock_client_process_lines(). This function may be used to process data returned from the socket line by line. The function will split each line into columns. The data-types of each column may be specified by the caller. This is similar to the DBI query abstraction function (sc_dbi_exec_query()) in that in takes care of all the annoying data parsing and conversion stuff.
utils unixsock: Added wrappers for clearerr(), feof(), and ferror().
utils unixsock: Added sc_unixsock_client_shutdown(). This function is a wrapper around shutdown(3). After shutting down send / receive operations, the client will automatically re-connect on the next send() / recv() call.
utils unixsock: Fixed EOF handling in recv().