store_lookup: Let attribute matchers check the attribute name.
store_lookup: Made the attribute matcher a "standalone" matcher.
The attribute matcher will now be applied to host objects directly and then
match against that host's attributes. This further simplifies parse_cmp() and
the general workflow for matchers.
The attribute matcher will now be applied to host objects directly and then
match against that host's attributes. This further simplifies parse_cmp() and
the general workflow for matchers.
store_lookup: Removed the (now unused) service matcher.
store_lookup: Let parse_cmp() use the new name matcher.
store_lookup: Added a matcher matching by object name.
This is a generic matcher applied to hosts (or their services or attributes)
and matches based on the respective object name.
Subsequently, this will replace the more complex host/service/attribute
matchers. Instead, more basic matchers will be available which can then be
combined arbitrarily using the existing logical matchers.
This is a generic matcher applied to hosts (or their services or attributes)
and matches based on the respective object name.
Subsequently, this will replace the more complex host/service/attribute
matchers. Instead, more basic matchers will be available which can then be
combined arbitrarily using the existing logical matchers.
doc: Add asciidoc.conf and sysdb-description.txt to EXTRA_DIST.
Removed obsolete TODO note.
grammar: Simplified compare matcher parser.
data: Added sdb_data_cmp() comparing two data points.
Renamed DBI_TYPE_TO_SC to DBI_TYPE_TO_SDB.
The old name was still from the times the project was called syscollector ;-)
The old name was still from the times the project was called syscollector ;-)
Merged branch 'master' of git://git.tokkee.org/sysdb.
sysdbd: Forcefully terminate the frontend and backend loops.
sysdbd: Simplified main loop management.
autogen.sh: Report an error if yacc or lex are missing.
Thanks to Uli Martens for reporting this.
Thanks to Uli Martens for reporting this.
Replaced old URLs/email addresses with sysdb.io.
t/Makefile: Added valgrind.suppress to EXTRA_DIST.
version-gen.sh: Append .git to default version again.
Release SysDB 0.1.0.
\o/
\o/
doc/asciidoc.conf: Use html5 in custom macros as well.
doc/: Use HTML5 instead of XHTML1.1 for HTML manpages.
doc/: Removed now unused CSS.
doc/: Added local rules to hook HTML manpages into 'make (install-)html'.
configure: Check if AM_PROG_AR is defined.
It's not defined when using old versions of automake.
It's not defined when using old versions of automake.
sysdbd.conf(5): Link to all plugin manpages.
configure, doc: Added ADOCFLAGS.
This allows the user to specify additional flags for AsciiDoc.
This allows the user to specify additional flags for AsciiDoc.
doc: Use asciidoc instead of a2x and added asciidoc.conf.
This allows to specify custom macros, which is currently used to turn
references to other manpages into links in the HTML output. In general, it
will make it easier to apply customizations.
This allows to specify custom macros, which is currently used to turn
references to other manpages into links in the HTML output. In general, it
will make it easier to apply customizations.
doc/sysdb-man.css: Applied tokkee.org-like style.
doc/Makefile: Removed the dependency on docbook-xsl.css.
Also, get rid of the ugly hack to "create" it.
Also, get rid of the ugly hack to "create" it.
doc: Added a minimalistic custom CSS for manpages.
tests: Suppress valgrind errors found in gcov_exit.
They don't matter for us.
They don't matter for us.
strbuf_test: Added some tests based on sdb_strbuf_cap().
These are mostly for checking memory handling.
These are mostly for checking memory handling.
strbuf utils: Added sdb_strbuf_cap().
This function returns the "capacity" of the string buffer. It's useful mostly
for testing, debugging, etc.
This function returns the "capacity" of the string buffer. It's useful mostly
for testing, debugging, etc.
strbuf utils: Fixed resizing in append.
Previously, resizing happened "too early" which may possibly generate
avoidable memory churn.
Previously, resizing happened "too early" which may possibly generate
avoidable memory churn.
strbuf_test: Added some more tests.
Changed some test to be table-based and verify the result of the incremental
append test.
Changed some test to be table-based and verify the result of the incremental
append test.
strbuf_test: Cleaned up the code a bit.
Made golden_data arrays private to the respective function where possible and
removed "sdb_strbuf" from test names.
Made golden_data arrays private to the respective function where possible and
removed "sdb_strbuf" from test names.
t/: Run all unit tests through valgrind.
This is implemented through a wrapper script which will run its arguments
through valgrind if the first parameter matches "unit/". It is passed in to
'make test' using automake's TESTS_ENVIRONMENT variable.
This is implemented through a wrapper script which will run its arguments
through valgrind if the first parameter matches "unit/". It is passed in to
'make test' using automake's TESTS_ENVIRONMENT variable.
dbi_test: Don't allocate any memory in dbi_driver_open_r().
This memory would be lost and appears as irrelevant noise in valgrind memory
checks.
This memory would be lost and appears as irrelevant noise in valgrind memory
checks.
connection_test: Free username strings stored in mock connection objects.
frontend: Simplified error handling.
frontend: Execute commands early on large amounts of incoming traffic.
This will free up buffer space if possible.
This will free up buffer space if possible.
frontend: Handle missing authentication early.
… and limit the max amount of buffered data for unauthenticated connections in
order reduce the impact of anonymous DoS attempts.
… and limit the max amount of buffered data for unauthenticated connections in
order reduce the impact of anonymous DoS attempts.
frontend: Fix invalid command handling when receiving data in chunks.
When skipping over invalid command data, make sure not to skip more data than
what's currently available. Rather, remember how much data needs to be ignored
and do so after actually receiving it.
Added a new test which catches these cases and also provides some more
low-level communication tests.
When skipping over invalid command data, make sure not to skip more data than
what's currently available. Rather, remember how much data needs to be ignored
and do so after actually receiving it.
Added a new test which catches these cases and also provides some more
low-level communication tests.
frontend: Treat CONNECTION_IDLE as an invalid command.
This is only meant for internal use; don't silently ignore it.
This is only meant for internal use; don't silently ignore it.
strbuf: Free memory when it's not longer needed.
While this might generate some churn in some situations, care has been taken
to avoid this as much as possible while providing a (hopefully) good balance
between memory usage and the need to reallocate memory.
While this might generate some churn in some situations, care has been taken
to avoid this as much as possible while providing a (hopefully) good balance
between memory usage and the need to reallocate memory.
ReleaseNotes: Added a summary of the utility functions.
README: Extended installation instructions a bit.
Unified project description across all documentation.
Makefile: Add ReleaseNotes to a dist tarball.
Make libsysdb and libsysdbclient private libraries for now.
The API is not yet stable enough for that purpose.
The API is not yet stable enough for that purpose.
Added initial version of the release notes.
Makefile: Added missing headers to _HEADERS variables.
sysdbd(1): Documented all signals handled by the daemon.
sysdb(7): Added a manpage providing an overview of SysDB.
sysdbql(7): Fixed a typo.
sysdb(1): Added sysdbql(7) to "see also".
sysdbql(7): Document the query language.
documentation: Unified author information.
sysdb(1): Be more verbose about the exit status when using the -c option.
coverage.sh: Refresh build system (and meta information).
integration/test_lib: Manage the sysdbd PID centrally.
This way, we actually get the right PID outside of the wrapper function and
test_lib can make sure the process is terminated on EXIT.
This way, we actually get the right PID outside of the wrapper function and
test_lib can make sure the process is terminated on EXIT.
sysdb: Fixed incompatible pointer type warning reported by clang.
cibuild.sh: Don't run regular tests when using the address sanitizer.
valgrind does not play well with the address sanitizer. Also, there's no need
to rerun the regular tests on asan generated code (which is a test on its
own).
valgrind does not play well with the address sanitizer. Also, there's no need
to rerun the regular tests on asan generated code (which is a test on its
own).
integration tests: Use LD_PRELOAD only when running SysDB tools.
Just as a cleanup.
Just as a cleanup.
tools: Log library versions as well on startup.
doc/Makefile: Added all asciidoc files to EXTRA_DIST and clean up all doc.
integration/test_lib: Pass -U mockuser to sysdb.
getpwuid_r on Travis leaks some memory which causes the valgrind tests to fail
:-/
getpwuid_r on Travis leaks some memory which causes the valgrind tests to fail
:-/
integration tests: Use LD_PRELOAD instead of chrpath.
chrpath requires that the new path be shorter or the same length as the
previous path.
chrpath requires that the new path be shorter or the same length as the
previous path.
integration/simple_query: More explicitly document expected exit codes.
integration/simple_query: Added more types of simple queries.
sysdb: When handling a reply, base further actions on the response code.
This will actually enable the command handler to see whether a log message or
a query response was received.
Also, this ensures that the command handler may correctly detect errors during
query execution and exit with a non-zero code accordingly. The simple_query
integration test was updated to reflect this new, corrected behavior. Thanks
to the test for actually catching this misbehavior! :-)
This will actually enable the command handler to see whether a log message or
a query response was received.
Also, this ensures that the command handler may correctly detect errors during
query execution and exit with a non-zero code accordingly. The simple_query
integration test was updated to reflect this new, corrected behavior. Thanks
to the test for actually catching this misbehavior! :-)
sysdb: When using -c, wait for the server's final response.
There might be some intermediate log messages, which should be printed but
then we need to wait for further replies.
There might be some intermediate log messages, which should be printed but
then we need to wait for further replies.
integration/simple_query.sh: Test a failing command.
sysdb: When using -c, exit non-zero if any command failed.
integration/simple_query.sh: Added some more simple queries.
build system: Disable integration tests if valgrind or chrpath are missing.
README: Updated documentation about (integration) tests.
Merged branch 'master' of git://git.tokkee.org/sysdb.
integration/test_lib.sh: Copy binaries from $TOP_SRCDIR.
D'oh!
D'oh!
integration tests: Run all invocations through valgrind's memcheck.
… covering, both, sysdb and sysdbd. For that to work, copy the binaries and
libraries to the temp directory and change the rpath to point to the temp
directory. This ensures the test is independent of any configure flags and
installation directories.
Let the tests fail if a leak (or other error) was detected by valgrind.
… covering, both, sysdb and sysdbd. For that to work, copy the binaries and
libraries to the temp directory and change the rpath to point to the temp
directory. This ensures the test is independent of any configure flags and
installation directories.
Let the tests fail if a leak (or other error) was detected by valgrind.
simple_query.sh: Store output in a variable before analyzing it.
This ensures that we actually get and check the right exit code.
This ensures that we actually get and check the right exit code.
integration tests: Kill the right process when shutting down sysdbd.
Also, wait for it to terminate.
Also, wait for it to terminate.
doc: Added documentation for all existing plugins.
Added one manpage for each plugin.
Added one manpage for each plugin.
doc: (Re)generate and install the default asciidoc CSS stylesheet.
.gitignore: Ignore asciidoc generated HTML output.
doc: Build and install HTML documentation as well.
For now, build HTML variants of the manpages but without any index file or
similar.
For now, build HTML variants of the manpages but without any index file or
similar.
sysdbd.conf(5): Documented the LoadPlugin and PluginDir options.
sysdbd: Don't leak memory when aborting from the main loop.
client: Fixed a memory leak in case connection setup fails.
t/integration/: Added variables for sysdbd/sysdb/sysdb.conf.
t/coverage.sh: Don't use --disable-shared.
Else, mock_plugin.so won't be available during 'make test'.
Else, mock_plugin.so won't be available during 'make test'.
t/Makefile: Added integration test script to EXTRA_DIST.
t/integration/simple_query: Added test doing a simple query.
t/integration/mock_plugin: Added plugin for integration tests.
t/integration: Added simple framework for integration tests.
Added a test using very simple configuration snippets.
Added a test using very simple configuration snippets.
sysdbd: Return with status=1 in case of an initialization or config error.
frontend: Make UNIX sockets the default listener implementation.
sysdbd: Improved startup logging.
Don't log success until all initialization is actually done. Also, don't
enable the connection logger until before entering the frontend main loop.
Don't log success until all initialization is actually done. Also, don't
enable the connection logger until before entering the frontend main loop.
sysdbd.conf: Added 'PluginDir' config option.
core: Make the plugin directory configurable.
dbi utils: Added compat layer for DBI < 0.9.