summaryrefslogtreecommitdiffstats
path: root/output/sqlite3/ulogd_output_SQLITE3.c
diff options
context:
space:
mode:
Diffstat (limited to 'output/sqlite3/ulogd_output_SQLITE3.c')
-rw-r--r--output/sqlite3/ulogd_output_SQLITE3.c20
1 files changed, 14 insertions, 6 deletions
diff --git a/output/sqlite3/ulogd_output_SQLITE3.c b/output/sqlite3/ulogd_output_SQLITE3.c
index 0a9ad67..6aeb7a3 100644
--- a/output/sqlite3/ulogd_output_SQLITE3.c
+++ b/output/sqlite3/ulogd_output_SQLITE3.c
@@ -33,6 +33,7 @@
#include <stdlib.h>
#include <string.h>
#include <arpa/inet.h>
+#include <netinet/in.h>
#include <ulogd/ulogd.h>
#include <ulogd/conffile.h>
#include <sqlite3.h>
@@ -145,6 +146,10 @@ sqlite3_interp(struct ulogd_pluginstance *pi)
}
switch (f->key->type) {
+ case ULOGD_RET_BOOL:
+ ret = sqlite3_bind_int(priv->p_stmt, i, k_ret->u.value.b);
+ break;
+
case ULOGD_RET_INT8:
ret = sqlite3_bind_int(priv->p_stmt, i, k_ret->u.value.i8);
break;
@@ -158,7 +163,7 @@ sqlite3_interp(struct ulogd_pluginstance *pi)
break;
case ULOGD_RET_INT64:
- ret = sqlite3_bind_int(priv->p_stmt, i, k_ret->u.value.i64);
+ ret = sqlite3_bind_int64(priv->p_stmt, i, k_ret->u.value.i64);
break;
case ULOGD_RET_UINT8:
@@ -174,17 +179,20 @@ sqlite3_interp(struct ulogd_pluginstance *pi)
break;
case ULOGD_RET_IPADDR:
- case ULOGD_RET_UINT64:
- ret = sqlite3_bind_int64(priv->p_stmt, i, k_ret->u.value.ui64);
+ if (k_ret->len == sizeof(struct in_addr))
+ ret = sqlite3_bind_int(priv->p_stmt, i,
+ k_ret->u.value.ui32);
+ else
+ ret = sqlite3_bind_null(priv->p_stmt, i);
break;
- case ULOGD_RET_BOOL:
- ret = sqlite3_bind_int(priv->p_stmt, i, k_ret->u.value.b);
+ case ULOGD_RET_UINT64:
+ ret = sqlite3_bind_int64(priv->p_stmt, i, k_ret->u.value.ui64);
break;
case ULOGD_RET_STRING:
ret = sqlite3_bind_text(priv->p_stmt, i, k_ret->u.value.ptr,
- strlen(k_ret->u.value.ptr), SQLITE_STATIC);
+ strlen(k_ret->u.value.ptr), SQLITE_STATIC);
break;
default: