[PATCH] ulogd2 / DBI / table name

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi!

I've tried to use the DBI plugin of ulogd2 for NFCT based accounting,
and despite using table="conntrack", it always insisted in using the
table "ulog" for deriving the keys/columns to be stored.

I've hacked up a quick fix, and it seems to work as expected (though no
proper null temrmination after strncpy).

As I've been absent from ulogd and netfilter hacking for some time, I
tohught I'd post it here rather than pushing something to the git
repo...

Regards,
	Harald

-- 
- Harald Welte <laforge@xxxxxxxxxxxxx>                 http://netfilter.org/
============================================================================
  "Fragmentation is like classful addressing -- an interesting early
   architectural error that shows how much experimentation was going
   on while IP was being designed."                    -- Paul Vixie
diff --git a/output/dbi/ulogd_output_DBI.c b/output/dbi/ulogd_output_DBI.c
index 88730e6..4b3ec16 100644
--- a/output/dbi/ulogd_output_DBI.c
+++ b/output/dbi/ulogd_output_DBI.c
@@ -102,7 +102,8 @@ static void str_tolower(char *s)
 static int get_columns_dbi(struct ulogd_pluginstance *upi)
 {
 	struct dbi_instance *pi = (struct dbi_instance *) upi->private;
-	char query[256] = "SELECT * FROM ulog\0";
+	char *table = table_ce(upi->config_kset).u.string;
+	char query[256];
 	unsigned int ui;
 
 	if (!pi->dbh) {
@@ -110,6 +111,8 @@ static int get_columns_dbi(struct ulogd_pluginstance *upi)
 		return 1;
 	}
 
+	snprintf(query, 256, "SELECT * FROM %s", table);
+
 	ulogd_log(ULOGD_DEBUG, "%s\n", query);
 	pi->result = dbi_conn_query(pi->dbh,query);
 	if (!pi->result) {

[Index of Archives]     [Netfitler Users]     [LARTC]     [Bugtraq]     [Yosemite Forum]

  Powered by Linux