summaryrefslogtreecommitdiffstats
path: root/util/db.c
diff options
context:
space:
mode:
authorEric Leblond <eric@regit.org>2013-03-20 00:03:35 +0100
committerEric Leblond <eric@regit.org>2013-05-21 19:55:18 +0200
commit1d84cdeaa56fe003c4beb0452c8bc476ecfd75a8 (patch)
treeeeb829221d3964ddc55187a1a1a4c0ec3130e0f1 /util/db.c
parent5d3a5e5c2e16555a19e794341ed72cf2415b07fc (diff)
db: use offset instead of direct pointer.
Use an offset approach to get the start of values printing area. It is more generic and will be use soon.
Diffstat (limited to 'util/db.c')
-rw-r--r--util/db.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/util/db.c b/util/db.c
index 91834da..14d9481 100644
--- a/util/db.c
+++ b/util/db.c
@@ -66,6 +66,7 @@ static int sql_createstmt(struct ulogd_pluginstance *upi)
unsigned int i;
char *table = table_ce(upi->config_kset).u.string;
char *procedure = procedure_ce(upi->config_kset).u.string;
+ char *stmt_val = NULL;
if (mi->stmt)
free(mi->stmt);
@@ -106,7 +107,7 @@ static int sql_createstmt(struct ulogd_pluginstance *upi)
else
sprintf(mi->stmt, "%s (", procedure);
- mi->stmt_val = mi->stmt + strlen(mi->stmt);
+ stmt_val = mi->stmt + strlen(mi->stmt);
for (i = 0; i < upi->input.num_keys; i++) {
if (upi->input.keys[i].flags & ULOGD_KEYF_INACTIVE)
@@ -115,19 +116,20 @@ static int sql_createstmt(struct ulogd_pluginstance *upi)
strncpy(buf, upi->input.keys[i].name, ULOGD_MAX_KEYLEN);
while ((underscore = strchr(buf, '.')))
*underscore = '_';
- sprintf(mi->stmt_val, "%s,", buf);
- mi->stmt_val = mi->stmt + strlen(mi->stmt);
+ sprintf(stmt_val, "%s,", buf);
+ stmt_val = mi->stmt + strlen(mi->stmt);
}
- *(mi->stmt_val - 1) = ')';
+ *(stmt_val - 1) = ')';
- sprintf(mi->stmt_val, " values (");
+ sprintf(stmt_val, " values (");
} else if (strncasecmp(procedure,"CALL", strlen("CALL")) == 0) {
sprintf(mi->stmt, "CALL %s(", procedure);
} else {
sprintf(mi->stmt, "SELECT %s(", procedure);
}
- mi->stmt_val = mi->stmt + strlen(mi->stmt);
+
+ mi->stmt_offset = strlen(mi->stmt);
ulogd_log(ULOGD_DEBUG, "stmt='%s'\n", mi->stmt);
@@ -266,7 +268,7 @@ static void __format_query_db(struct ulogd_pluginstance *upi)
unsigned int i;
- char * stmt_ins = di->stmt_val;
+ char *stmt_ins = di->stmt + di->stmt_offset;
for (i = 0; i < upi->input.num_keys; i++) {
struct ulogd_key *res = upi->input.keys[i].u.source;