As of this commit faultd depends on ejdb package.
src/listeners/systemd.c \
src/util/log.c \
src/util/notify_queue.c
-faultd_LDADD = $(LIBSYSTEMD_LIBS) ${AUDIT_LIBS}
+faultd_LDADD = $(LIBSYSTEMD_LIBS) $(AUDIT_LIBS) $(LIBEJDB_LIBS)
AS_IF([test "x$have_audit" = "xno"],
AC_MSG_ERROR([audit not found]))
+PKG_CHECK_MODULES(LIBEJDB,
+ [libejdb >= 1.2.12],
+ have_libejdb=yes,
+ have_libejdb=no)
+AS_IF([test "x$have_libejdb" = "xno"],
+ AC_MSG_ERROR([EJDB version 1.2.12 or newer not found]))
+
AC_CHECK_FUNCS([ \
printf\
])
Source1001: %{name}.manifest
Summary: Fault detection daemon
Group: System/Monitoring
-BuildRequires: pkgconfig(libsystemd)
BuildRequires: pkgconfig(audit)
+BuildRequires: pkgconfig(libejdb)
+BuildRequires: pkgconfig(libsystemd)
%description
faultd monitors system services, detects their abnormal execution and
* limitations under the License.
*/
+#define _GNU_SOURCE 1
+
+#include <ejdb/bson.h>
#include <errno.h>
#include <systemd/sd-id128.h>
return 0;
}
-void faultd_event_serialize_internal(struct faultd_event *ev, void **out)
+void faultd_event_serialize_internal(struct faultd_event *ev, bson *out)
{
/* call from e.g. .serialize in service_failed_event */
/* serialize faultd_event structure */
#ifndef FAULTD_EVENT_H
#define FAULTD_EVENT_H
+#include <ejdb/bson.h>
#include <string.h>
#include <systemd/sd-id128.h>
#include <time.h>
struct faultd_event_ops {
char *(*to_string)(struct faultd_event *);
void (*release)(struct faultd_event *);
- void (*serialize)(struct faultd_event*, void**);
+ void (*serialize)(struct faultd_event*, bson*);
};
struct faultd_event_type {
return ev->ops.to_string(ev);
}
-static inline void faultd_event_serialize(struct faultd_event *ev, void **out)
+static inline void faultd_event_serialize(struct faultd_event *ev, bson *out)
{
ev->ops.serialize(ev, out);
}
static inline void faultd_event_cleanup_internal(struct faultd_event *ev) {}
-void faultd_event_serialize_internal(struct faultd_event *ev, void **out);
+void faultd_event_serialize_internal(struct faultd_event *ev, bson *out);
#endif /* FAULTD_EVENT_H */
*/
#define _GNU_SOURCE 1
+
+#include <ejdb/bson.h>
#include <stdio.h>
#include <errno.h>
#include <malloc.h>
return ret > 0 ? str : NULL;
}
-void dm_event_serialize(struct faultd_event *ev, void **out)
+static void dm_event_serialize(struct faultd_event *ev, bson *out)
{
struct decision_made_event *dm_ev =
to_decision_made_event(ev);
*/
#define _GNU_SOURCE 1
+
+#include <ejdb/bson.h>
#include <stdio.h>
#include <errno.h>
#include <malloc.h>
return ret > 0 ? str : NULL;
}
-void rv_event_serialize(struct faultd_event *ev, void **out)
+static void rv_event_serialize(struct faultd_event *ev, bson *out)
{
struct resource_violation_event *rv_ev =
to_resource_violation_event(ev);
*/
#define _GNU_SOURCE 1
+
+#include <ejdb/bson.h>
#include <stdio.h>
#include <errno.h>
#include <malloc.h>
return ret > 0 ? str : NULL;
}
-void sf_event_serialize(struct faultd_event *ev, void **out)
+static void sf_event_serialize(struct faultd_event *ev, bson *out)
{
struct service_failed_event *sf_ev =
to_service_failed_event(ev);