summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configure.in9
-rw-r--r--input/flow/Makefile.am2
-rw-r--r--input/packet/Makefile.am2
-rw-r--r--input/packet/ulogd_inppkt_NFLOG.c2
-rw-r--r--libipulog/Makefile.am2
-rw-r--r--output/mysql/Makefile.am2
-rw-r--r--output/mysql/ulogd_output_MYSQL.c48
7 files changed, 35 insertions, 32 deletions
diff --git a/configure.in b/configure.in
index f586426..fc758e2 100644
--- a/configure.in
+++ b/configure.in
@@ -31,6 +31,9 @@ AC_CHECK_FUNCS(socket strerror)
AC_CHECK_HEADER([libnetfilter_log/linux_nfnetlink_log.h], [AC_MSG_RESULT([found])],
[AC_MSG_ERROR([libnetfilter_log Version 0.0.11 or later needed])])
+AC_CHECK_HEADER([libnetfilter_conntrack/libnetfilter_conntrack.h], [AC_MSG_RESULT([found])],
+ [AC_MSG_ERROR([libnetfilter_conntrack Version 0.0.11 or later needed])])
+
DATABASE_DIR=""
DATABASE_LIB=""
DATABASE_LIB_DIR=""
@@ -71,7 +74,7 @@ if test x$mysqldir = x
then
AC_MSG_WARN(MySQL backend not used)
else
- AC_DEFINE(HAVE_MYSQL)
+ AC_DEFINE([HAVE_MYSQL], [], [Description])
MYSQLINCLUDES=${mysqldir}/include${mysqldir_suffix}
MYSQLLIBS=${mysqldir}/lib${mysqldir_suffix}
@@ -165,7 +168,7 @@ if test x$pgsqldir = x
then
AC_MSG_WARN(PGSQL backend not used)
else
- AC_DEFINE(HAVE_PGSQL)
+ AC_DEFINE([HAVE_PGSQL], [], [Description])
for i in include include/postgresql include/pgsql
do
if test -f ${pgsqldir}/$i/libpq-fe.h
@@ -216,4 +219,4 @@ AC_SUBST(HAVE_PCAP_H)
AM_CONDITIONAL(HAVE_MYSQL, test x$mysqldir != x)
AM_CONDITIONAL(HAVE_PGSQL, test x$pgsqldir != x)
-AC_OUTPUT(doc/Makefile conffile/Makefile libipulog/Makefile input/Makefile input/packet/Makefile input/flow/Makefile filter/Makefile filter/raw2packet/Makefile filter/packet2flow/Makefile output/Makefile output/pcap/Makefile output/mysql/Makefile output/pgsql/Makefile src/Makefile Makefile Rules.make)
+AC_OUTPUT(doc/Makefile libipulog/Makefile input/Makefile input/packet/Makefile input/flow/Makefile filter/Makefile filter/raw2packet/Makefile filter/packet2flow/Makefile output/Makefile output/pcap/Makefile output/mysql/Makefile output/pgsql/Makefile src/Makefile Makefile Rules.make)
diff --git a/input/flow/Makefile.am b/input/flow/Makefile.am
index 32af5b3..235dc9b 100644
--- a/input/flow/Makefile.am
+++ b/input/flow/Makefile.am
@@ -1,6 +1,6 @@
INCLUDES = $(all_includes) -I$(top_srcdir)/include
-CFLAGS=-fPIC -Wall
+AM_CFLAGS=-fPIC -Wall
pkglib_LTLIBRARIES = ulogd_inpflow_NFCT.la # ulogd_inpflow_IPFIX.la
diff --git a/input/packet/Makefile.am b/input/packet/Makefile.am
index 1792bb6..a09a126 100644
--- a/input/packet/Makefile.am
+++ b/input/packet/Makefile.am
@@ -1,6 +1,6 @@
INCLUDES = $(all_includes) -I$(top_srcdir)/include
-CFLAGS=-fPIC -Wall
+AM_CFLAGS=-fPIC -Wall
LIBS=
pkglib_LTLIBRARIES = ulogd_inppkt_NFLOG.la ulogd_inppkt_ULOG.la
diff --git a/input/packet/ulogd_inppkt_NFLOG.c b/input/packet/ulogd_inppkt_NFLOG.c
index 430cdd9..7e9a00a 100644
--- a/input/packet/ulogd_inppkt_NFLOG.c
+++ b/input/packet/ulogd_inppkt_NFLOG.c
@@ -191,7 +191,7 @@ interp_packet(struct ulogd_pluginstance *upi, struct nflog_data *ldata)
struct nfulnl_msg_packet_hdr *ph = nflog_get_msg_packet_hdr(ldata);
struct nfulnl_msg_packet_hw *hw = nflog_get_packet_hw(ldata);
void *payload;
- int payload_len = nflog_get_payload(ldata, payload);
+ int payload_len = nflog_get_payload(ldata, &payload);
char *prefix = nflog_get_prefix(ldata);
struct timeval ts;
u_int32_t mark = nflog_get_nfmark(ldata);
diff --git a/libipulog/Makefile.am b/libipulog/Makefile.am
index 92ff39b..56cc41a 100644
--- a/libipulog/Makefile.am
+++ b/libipulog/Makefile.am
@@ -1,5 +1,5 @@
-CFLAGS=-fPIC
+AM_CFLAGS=-fPIC
noinst_LIBRARIES = libipulog.a
diff --git a/output/mysql/Makefile.am b/output/mysql/Makefile.am
index 2efeda8..0e5a827 100644
--- a/output/mysql/Makefile.am
+++ b/output/mysql/Makefile.am
@@ -1,6 +1,6 @@
INCLUDES = $(all_includes) -I$(top_srcdir)/include
-LIBS=
+LIBS=-lmysqlclient_r
pkglib_LTLIBRARIES = ulogd_output_MYSQL.la
diff --git a/output/mysql/ulogd_output_MYSQL.c b/output/mysql/ulogd_output_MYSQL.c
index 2193420..a0e21db 100644
--- a/output/mysql/ulogd_output_MYSQL.c
+++ b/output/mysql/ulogd_output_MYSQL.c
@@ -157,8 +157,7 @@ static int interp_mysql(struct ulogd_pluginstance *upi)
if (!res || !IS_VALID(*res)) {
/* no result, we have to fake something */
- sprintf(mi->stmt_ins, "NULL,");
- mi->stmt_ins = mi->stmt + strlen(mi->stmt);
+ mi->stmt_ins += sprintf(mi->stmt_ins, "NULL,");
continue;
}
@@ -187,14 +186,14 @@ static int interp_mysql(struct ulogd_pluginstance *upi)
addr.s_addr = ntohl(res->u.value.ui32);
*(mi->stmt_ins++) = '\'';
tmpstr = inet_ntoa(addr);
-#ifdef OLD_MYSQL
+ #ifdef OLD_MYSQL
mysql_escape_string(mi->stmt_ins, tmpstr,
strlen(tmpstr));
-#else
+ #else
mysql_real_escape_string(mi->dbh, mi->stmt_ins,
tmpstr,
strlen(tmpstr));
-#endif /* OLD_MYSQL */
+ #endif /* OLD_MYSQL */
mi->stmt_ins = mi->stmt + strlen(mi->stmt);
sprintf(mi->stmt_ins, "',");
break;
@@ -211,14 +210,18 @@ static int interp_mysql(struct ulogd_pluginstance *upi)
break;
case ULOGD_RET_STRING:
*(mi->stmt_ins++) = '\'';
-#ifdef OLD_MYSQL
- mysql_escape_string(mi->stmt_ins, res->u.value.ptr,
- strlen(res->u.value.ptr));
-#else
- mysql_real_escape_string(mi->dbh, mi->stmt_ins,
- res->u.value.ptr, strlen(res->u.value.ptr));
-#endif
- mi->stmt_ins = mi->stmt + strlen(mi->stmt);
+ if (res->u.value.ptr) {
+ #ifdef OLD_MYSQL
+ mi->stmt_ins += mysql_escape_string(mi->stmt_ins,
+ res->u.value.ptr,
+ strlen(res->u.value.ptr));
+ #else
+ mi->stmt_ins += mysql_real_escape_string(
+ mi->dbh, mi->stmt_ins,
+ res->u.value.ptr,
+ strlen(res->u.value.ptr));
+ #endif
+ }
sprintf(mi->stmt_ins, "',");
break;
case ULOGD_RET_RAW:
@@ -334,13 +337,10 @@ static int mysql_get_columns(struct ulogd_pluginstance *upi)
* never free()s the memory we allocate here. FIXME. */
/* Cleanup before reconnect */
- if (upi->input.keys) {
+ if (upi->input.keys)
free(upi->input.keys);
- upi->input.keys = NULL;
- upi->input.num_keys = 0;
- }
- upi->input.num_keys = mysql_field_count(mi->dbh);
+ upi->input.num_keys = mysql_num_fields(result);
upi->input.keys = malloc(sizeof(struct ulogd_key) *
upi->input.num_keys);
if (!upi->input.keys) {
@@ -351,8 +351,7 @@ static int mysql_get_columns(struct ulogd_pluginstance *upi)
memset(upi->input.keys, 0, sizeof(struct ulogd_key) *
upi->input.num_keys);
- i = 0;
- while ((field = mysql_fetch_field(result))) {
+ for (i = 0; field = mysql_fetch_field(result); i++) {
char buf[ULOGD_MAX_KEYLEN+1];
char *underscore;
int id;
@@ -366,9 +365,10 @@ static int mysql_get_columns(struct ulogd_pluginstance *upi)
/* add it u list of input keys */
strncpy(upi->input.keys[i].name, buf, ULOGD_MAX_KEYLEN);
- i++;
}
-
+ /* MySQL Auto increment ... ID :) */
+ upi->input.keys[0].flags |= ULOGD_KEYF_INACTIVE;
+
mysql_free_result(result);
return 0;
}
@@ -390,7 +390,7 @@ static int open_db(struct ulogd_pluginstance *upi, char *server,
if (!mysql_real_connect(mi->dbh, server, user, pass, db, port, NULL, 0))
return -1;
-
+
return 0;
}
@@ -472,7 +472,7 @@ static int configure_mysql(struct ulogd_pluginstance *upi,
db_ce(upi->config_kset).u.string);
if (ret < 0)
return ret;
-
+
/* Third: Determine required input keys for given table */
ret = mysql_get_columns(upi);