summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorƁukasz Stelmach <l.stelmach@samsung.com>2017-05-09 12:57:04 +0200
committerKrzysztof Opasiak <k.opasiak@samsung.com>2017-05-10 20:49:58 +0200
commit551bb180997e53282dbef29425f6622a56855101 (patch)
treecfc29ccd5de0f01245a514bb2bcd26cbf7bb2882
parent7e61b14646c563e469aae8fa1a85e044976b47cc (diff)
downloadfaultd-sandbox/kopasiak/rebased_with_coding_style.tar.gz
faultd-sandbox/kopasiak/rebased_with_coding_style.tar.bz2
faultd-sandbox/kopasiak/rebased_with_coding_style.zip
Use bson as the event serialisation formatsandbox/kopasiak/rebased_with_coding_style
As of this commit faultd depends on ejdb package.
-rw-r--r--Makefile.am2
-rw-r--r--configure.ac7
-rw-r--r--packaging/faultd.spec3
-rw-r--r--src/core/event.c5
-rw-r--r--src/core/event.h7
-rw-r--r--src/event_types/decision_made_event.c4
-rw-r--r--src/event_types/resource_violation_event.c4
-rw-r--r--src/event_types/service_failed_event.c4
8 files changed, 27 insertions, 9 deletions
diff --git a/Makefile.am b/Makefile.am
index f5b2ca8..5cf9734 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -47,5 +47,5 @@ faultd_SOURCES = \
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)
diff --git a/configure.ac b/configure.ac
index 97e68f0..e3c5ecd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -43,6 +43,13 @@ PKG_CHECK_MODULES(AUDIT,
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\
])
diff --git a/packaging/faultd.spec b/packaging/faultd.spec
index 88d0779..72de608 100644
--- a/packaging/faultd.spec
+++ b/packaging/faultd.spec
@@ -6,8 +6,9 @@ Source0: %{name}-%{version}.tar.xz
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
diff --git a/src/core/event.c b/src/core/event.c
index 67b347d..358b80c 100644
--- a/src/core/event.c
+++ b/src/core/event.c
@@ -16,6 +16,9 @@
* limitations under the License.
*/
+#define _GNU_SOURCE 1
+
+#include <ejdb/bson.h>
#include <errno.h>
#include <systemd/sd-id128.h>
@@ -126,7 +129,7 @@ int faultd_event_init_internal(struct faultd_event_type *ev_type,
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 */
diff --git a/src/core/event.h b/src/core/event.h
index c796098..388d18e 100644
--- a/src/core/event.h
+++ b/src/core/event.h
@@ -19,6 +19,7 @@
#ifndef FAULTD_EVENT_H
#define FAULTD_EVENT_H
+#include <ejdb/bson.h>
#include <string.h>
#include <systemd/sd-id128.h>
#include <time.h>
@@ -33,7 +34,7 @@ struct faultd_event;
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 {
@@ -115,7 +116,7 @@ static inline char *faultd_event_to_string(struct faultd_event *ev)
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);
}
@@ -125,6 +126,6 @@ int faultd_event_init_internal(struct faultd_event_type *ev_type,
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 */
diff --git a/src/event_types/decision_made_event.c b/src/event_types/decision_made_event.c
index b293a01..b472a5f 100644
--- a/src/event_types/decision_made_event.c
+++ b/src/event_types/decision_made_event.c
@@ -17,6 +17,8 @@
*/
#define _GNU_SOURCE 1
+
+#include <ejdb/bson.h>
#include <stdio.h>
#include <errno.h>
#include <malloc.h>
@@ -96,7 +98,7 @@ static char *dm_event_to_string(struct faultd_event *ev)
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);
diff --git a/src/event_types/resource_violation_event.c b/src/event_types/resource_violation_event.c
index 548eb8f..cb02f7e 100644
--- a/src/event_types/resource_violation_event.c
+++ b/src/event_types/resource_violation_event.c
@@ -17,6 +17,8 @@
*/
#define _GNU_SOURCE 1
+
+#include <ejdb/bson.h>
#include <stdio.h>
#include <errno.h>
#include <malloc.h>
@@ -81,7 +83,7 @@ static char *rv_event_to_string(struct faultd_event *ev)
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);
diff --git a/src/event_types/service_failed_event.c b/src/event_types/service_failed_event.c
index 8b0bc59..58ddc15 100644
--- a/src/event_types/service_failed_event.c
+++ b/src/event_types/service_failed_event.c
@@ -17,6 +17,8 @@
*/
#define _GNU_SOURCE 1
+
+#include <ejdb/bson.h>
#include <stdio.h>
#include <errno.h>
#include <malloc.h>
@@ -79,7 +81,7 @@ static char *sf_event_to_string(struct faultd_event *ev)
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);