From 05dd8b5b23da04add3bac2e82dce20a310198351 Mon Sep 17 00:00:00 2001 From: "/C=DE/ST=Berlin/L=Berlin/O=Netfilter Project/OU=Development/CN=laforge/emailAddress=laforge@netfilter.org" Date: Tue, 29 Nov 2005 08:43:51 +0000 Subject: fixes --- configure.in | 9 +++++--- input/flow/Makefile.am | 2 +- input/packet/Makefile.am | 2 +- input/packet/ulogd_inppkt_NFLOG.c | 2 +- libipulog/Makefile.am | 2 +- output/mysql/Makefile.am | 2 +- output/mysql/ulogd_output_MYSQL.c | 48 +++++++++++++++++++-------------------- 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); -- cgit v1.2.3