libnagios headers: Janitor patch; Pre-revamp cleanup is Such Fun(tm)

We do rename the CMD_HAS* macros to RUNCMD_HAS* here, but since
they aren't used by any of the larger modules anyway, we might as
well do it before people start using them.

Signed-off-by: Andreas Ericsson <ae@op5.se>
lib/nsutils: Welcome to the world

This breaks apart the current lib/worker.c and removes some of the
not-really-compatibility macros from lib/lnag-utils.h and puts them
in a file of their own, so we can implement a sane naming standard
for the functions and macros that actually relate to worker
communications.

While at it, we give the newly-homed functions new names, with their
old names as aliases, and provide deprecation notices for them so
our module authors know they'll be gone in 4.1.0.

Signed-off-by: Andreas Ericsson <ae@op5.se>
core: Publish and augment qh_strerror()

It's generally useful to have other functions be able to grok the
qh-returned error codes and print useful error messages from them,
so let's make that possible.

Signed-off-by: Andreas Ericsson <ae@op5.se>
core: Handle command file worker without help from the wproc api

It really is a special case, so handling it manually means we can
work a lot more freely with the wproc and worker api's.

Signed-off-by: Andreas Ericsson <ae@op5.se>
core: Remove wproc_destroy() from the public scope

This is the only place linking the wproc stuff to the worker api.
Removing it gives us a lot more freedom in terms of how we can
modify both worker and wproc api.

Signed-off-by: Andreas Ericsson <ae@op5.se>
core: Use check-result source as a char pointer if no engine is set

This is probably what I should've done from the start. Since each
check has to come in through some sort of interface anyway, marking
it with a const string at the entry point would've been a lot easier.

Gods damn past me :-/

Signed-off-by: Andreas Ericsson <ae@op5.se>
lib/worker: Move spawn_worker() to the wproc tester program

It's the only caller, and we really shouldn't expose or have to
maintain our structures only for the sake of a testing program.

Signed-off-by: Andreas Ericsson <ae@op5.se>
lib/worker.c: Remove 'struct request'

It's not public and not used, so off it goes.

Signed-off-by: Andreas Ericsson <ae@op5.se>
base/workers: Fix eventhandler timeout settings

The workers expect to get the timeout in relative time. If we
send it in absolute time the value will overflow when the worker
adds the current time to it, meaning the job times out directly.

Signed-off-by: Andreas Ericsson <ae@op5.se>
lib/worker: Rename send_kvvec() to worker_send_kvvec()

Getting and using some sort of namespace for the worker code is
nifty. This is at least a step in the right direction. Since the
library is intertwined with the default core worker, that's gonna
be pretty hard, so we'll simply have to take what we can and run
with it.

The patch is bigger than it should have been, since we have to
keep send_kvvec() in both the library and the headers until it's
had its grace deprecation period.

Signed-off-by: Andreas Ericsson <ae@op5.se>
lib/worker: Add and use routines to parse messages from buffers

This hides the previously public KV_SEP and PAIR_SEP macros from
public viewing and replaces them with opaque interfaces, which means
our callers no longer need to know the internals of how workers
communicate with one another (although it's publicly documentated
so people can write workers in other languages).

Signed-off-by: Andreas Ericsson <ae@op5.se>
Rename set_socket_options() to worker_setsockopts()

Same deprecation dance as with send_kvvec() -> worker_send_kvvec()

Signed-off-by: Andreas Ericsson <ae@op5.se>
doxy.conf: Help doxygen handle the NAGIOS_DEPRECATED() macro

It doesn't do a very good job of it on its own.

Signed-off-by: Andreas Ericsson <ae@op5.se>
core: Make nagios_check_engine stop using the worker_process type

It's kinda silly to ship the entire type when it only feeds back
a string from it anyway, when we can just ship the string as-is
and save ourselves some trouble.

Signed-off-by: Andreas Ericsson <ae@op5.se>
Make the worker_job and worker_process structures opaque

worker_job is really destined for transparency, but for now there's
no real need so we keep it private for the time being.

This means we can modify the worker manager structures at will and
thus paves the way for extending the job-running api as much as we
like.

Signed-off-by: Andreas Ericsson <ae@op5.se>
lib/wproc: Fix some compiler warnings

printf() int vs long thingies.

Signed-off-by: Andreas Ericsson <ae@op5.se>
lib/worker: Stop using the deprecated set_socket_options()

Deprecation warnings are neat.

Signed-off-by: Andreas Ericsson <ae@op5.se>